-
Notifications
You must be signed in to change notification settings - Fork 10.5k
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!
@_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_name
instdlib/
with@abi
. Because the API digester has a better understanding of@abi
than@_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_name
that I might have missed. (Remember,@abi
is not designed to replace uses of@_silgen_name
to assign an arbitrary string symbol, likeswift_stdlib_getDescription
.)