Written by: Jesse Squires

It’s almost that time of the year again when Apple will reveal new iPhone models. Invitations were sent to the press earlier this week for an event on September 7 — less than a week away! This likely means a final (or at least GM) release of Xcode 8 and the other platforms, and thus a final (or GM) release of Swift 3.

For me, this is least attractive aspect of Swift — being tied to the release cycles of Xcode, Apple’s platforms, and hardware. Along with radar, these deadlines (and thus the real deadline for Swift 3) present a closed door to the open source community. I think these things could eventually be detrimental to the health of the project, but let’s see how the Swift 4 development cycle goes first! In any case, I think we’re all excited and ready for Swift 3 to be finished! 😄

Starter tasks

SR-2451: [Compiler] Wording for labels in function types suggests that specific label cannot be used

SR-2442: [Compiler] Need better diagnostics for multi-value assignment with missing parentheses

SR-2409: [Compiler] Diagnostic refers to “Objective-C module” even on Linux

Submit a task by sending a pull request or opening an issue.

Commits and pull requests

Tim Bodeit found and fixed a bug that would allow mutating a let constant of a non-class protocol type. There’s an example in the pull request. Also, this is one of the best pull requests I’ve ever seen! 😎

Doug Gregor implemented an amendment to SE-0112 that provides default implementations for all of the CustomNSError requirements.

Ankit Aggarwal added documentation for the SwiftPM manifest file. 👌 Reminder: improving documentation is a great way to get involved!

Proposals

Still nothing to see here!

Mailing lists

The mailing lists are still relatively quiet. I suspect the Core Team, as well as many other teams at Apple, are busy preparing for next week’s event. There are some small threads, but most pitches are being deferred from formal discussion due to being out of scope for Swift 4 stage 1. It’s clear that the Core Team is focused on completing the goals for Swift 4, and avoiding some of the “distractions” that were present the Swift 3 release cycle — namely, the overwhelming feedback and involvement from the open source community. To be clear, this wasn’t a bad thing but it dramatically impacted the roadmap for Swift 3. 😄 It seems like swift-evolution may be quieter during Swift 4.

Finally

And finally — did you hear about the new access control modifier in Swift 4? 😂