-
Couldn't load subscription status.
- Fork 10.6k
Adopt @abi in the standard library
#79937
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
02b3318 to
ed8e82d
Compare
d0e20f3 to
fddc437
Compare
fddc437 to
b06f1be
Compare
b06f1be to
f93d4c0
Compare
|
@swift-ci please test |
Additional tests for the previous commit “Diagnose CustomAttrs as needed in `@abi`”.
Additional tests for the previous commit “[Legacy parser] No freestanding macros in `@abi`”.
f93d4c0 to
f0d0fcd
Compare
|
With swiftlang/swift-syntax#3062 @swift-ci please test |
This commit enables the ABIAttribute feature in the standard library build and replaces (nearly) every instance of `@_silgen_name(<mangled Swift name>)` in stdlib/public with an `@abi` attribute.
f0d0fcd to
6d29ef8
Compare
|
With swiftlang/swift-syntax#3062 @swift-ci please test |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Concurrency and Distributed changes look good AFAICS, thank you!
|
|
||
| @abi(func type<T, Metatype>(of _: T) -> Metatype) | ||
| @_spi(SwiftStdlibLegacyABI) @available(swift, obsoleted: 1) | ||
| @_silgen_name("$ss4type2ofq_x_tr0_lF") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think I would prefer to just remove these symbols (in Builtin.swift) altogether since no one should be linking them in the first place.
|
As a minor convenience, could we have a policy of using "throws" instead of "rethrows" inside the @abi annotations? This would make it slightly easier to find the remaining "rethrows" calls that need generalizing. |
This PR replaces eligible uses of
@_silgen_nameinstdlib/with@abi. Because the API digester has a better understanding of@abithan@_silgen_name, this also affects the output of API digester tests run on the standard library; it should typically describe changes more accurately than it did before.This PR also includes two commits with macro-related tests that were originally part of #80383 but cannot be merged without a SwiftSyntax change (either swiftlang/swift-syntax#3026 or the changes that will be made if SE-0476 is accepted).
Standard library reviewers: Review the final commit; ignore the others. You might also want to search the standard library for uses of
@_silgen_namethat I might have missed. (Remember,@abiis not designed to replace uses of@_silgen_nameto assign an arbitrary string symbol, likeswift_stdlib_getDescription.)