[SE-0461] Replace `@execution(...)` with `@concurrent` and `nonisolated(nonsending)
- Add
@concurrentdeclaration and type attributes to replace@execution(concurrent) - Add new
nonsendingmodifier tononisolateddeclaration modifier - Make it possible to use
nonisolated(nonsending)in type and expression contexts (modeled viaCallerIsolatedTypeRepr) - Replace
@execution(caller)withnonisolated(nonsending)modifier - Remove all of the references to
@executionattribute throughout the codebase - Remove
ExecutionAttributeexperimental flag
https://github.com/swiftlang/swift-syntax/pull/3047 @swift-ci please test
https://github.com/swiftlang/swift-syntax/pull/3047 @swift-ci please test
https://github.com/swiftlang/swift-syntax/pull/3047 @swift-ci please test
Curious: do we not need feature suppression for this new pair of attributes?
We don't need a feature for this since the proposal was been accepted, that's why I've removed ExecutionAttribute feature in this PR.
We don't need a feature for this since the proposal was been accepted
I thought the practice was to ship syntactic features as suppressible for a while for short-term textual interface compatibility.
I don't think we make these backward compatibility guarantees (anymore?) based on conversation with @tshortli about -interface-compiler-version.
These new/old attribute and modifier are not going to be present in old interface files unconditionally anyway.
No, Anthony is right. There is a trailing window of previous development versions of the compiler that textual interfaces must remain compatible with.
For posterity: we discussed this offline and yes, we do need a feature flag here to indicate that new attributes are supported only by new compilers even though we have been inconsistent about this in the past.
https://github.com/swiftlang/swift-syntax/pull/3047 @swift-ci please test
@swift-ci please test source compatibility
https://github.com/swiftlang/swift-syntax/pull/3047 @swift-ci please test source compatibility
https://github.com/swiftlang/swift-syntax/pull/3047 @swift-ci please test macOS platform