Hello, Swift community!
The review of SE-0362 ended on July 11th. The Language Workgroup has decided to accept the proposal. This proposal provides a mechanism for adopting upcoming language changes in the next major language version incrementally, which will ease the transition to Swift 6 and future major language versions.
Feedback on the proposal was overall very positive. Reviewers surfaced the following issues with the proposed design:
The SwiftPM manifest API based on
SwiftSettingrather than the target is a better design. This offers more control over when to enable the features, and
SwiftSettingalready represents build settings specific to Swift. The Language Workgroup supports the suggested approach.
- The term “future feature” is hard to pronounce. The term “upcoming feature” doesn’t have the issue of two consecutive works that are very similar, and “upcoming” is just as clear as “future”. The Language Workgroup experienced the difficulty pronouncing “future feature” during our verbal discussion, and we agree that it’s best to use “upcoming feature” instead.
The short-circuiting of parsing call syntax in
#ifshould apply to both || and &&. This was already supported in the implementation, and has been clarified in the proposal text.
The author modified the proposal to incorporate these suggestions, and the review was extended by one week. Feedback on the modifications was light but positive.
Reviewers also surfaced the following concerns about “Swift version” terminology, and the discoverability of upcoming features:
- “Swift tools version” and “Swift language version” are related but distinct concepts that cause a lot of confusion. The proposal was updated to include explanations of these concepts and how they interact.
- The names of upcoming features need to be discoverable and documented outside of the Swift evolution resources. The Language Workgroup will work with the Website Workgroup to document the corresponding names for upcoming features, which Swift tools version they are first supported in, and which language version they are enabled by default in on Swift.org.
Thank you to everyone who participated in the pitch and proposal review! Your valuable contributions help make Swift a better language.