Hello, Swift community.
SE-0377 added the borrowing
and consuming
parameter modifiers to Swift. It was reviewed and accepted in late 2022, too late to be included in Swift 5.8.
The modifiers added by SE-0377 are semantically critical for non-copyable types, but they also serve an important role as an optimization tool for copyable types. However, the authors of SE-0377 are concerned that it is too easy to accidentally subvert this optimization by introducing implicit copies, and they've submitted a proposal to change the behavior of these modifiers on copyable types by requiring all copies of so-modified parameters to be explicit. This makes these parameters behave roughly like they had non-copyable type. You can see the exact proposed changes here.
Because this is a major change to the behavior of SE-0377, and because SE-0377 has not yet been released, the Language Workgroup has decided to run this proposal as a revision of SE-0377 rather than run a new proposal and leave the SE-0377 proposal in a superseded state reflecting no released version of the Swift tools. SE-0377 is therefore back in review, from now until May 29th, 2023.
Reviews are an important part of the Swift evolution process. All review feedback should be either on this forum thread or, if you would like to keep your feedback private, directly to me as the review manager via the forum messaging feature or email. When contacting the review manager directly, please put "SE-0377" in the subject line.
What goes into a review?
The goal of the review process is to improve the proposal under review through constructive criticism and, eventually, determine the direction of Swift. When writing your review, here are some questions you might want to answer in your review:
- What is your evaluation of the proposal?
- Is the problem being addressed significant enough to warrant a change to Swift?
- Does this proposal fit well with the feel and direction of Swift?
- If you have used other languages or libraries with a similar feature, how do you feel that this proposal compares to those?
- How much effort did you put into your review? A glance, a quick reading, or an in-depth study?
More information about the Swift evolution process is available at
https://github.com/apple/swift-evolution/blob/main/process.md
Thank you for contributing to Swift.
John McCall
Review Manager