What to expect from Swift 5: All eyes on ABI stability
© Shutterstock / GrandeDuc
Swift 4 will be released later this year but what about Swift 5? Ted Kremenek, Senior Manager, Languages and Runtimes at Apple encourages you to submit your proposals for Swift 5 and reveals the core themes and focus areas for it.
The proposal phase for Swift 4 has ended so it won’t be long until it sees the light of day — according to Ted Kremenek, Senior Manager, Languages and Runtimes at Apple, Swift 4 will be released later this year. If you want to know more about what’s next (Swift 5, of course), read on.
Swift 5 — What to expect
The primary focus of Swift 5 will be ABI stability for the Swift Standard Library. According to the README.md file published on the swift-evolution repository, “ABI stability enables OS vendors to embed a Swift Standard Library and runtime in the OS that is compatible with applications built with Swift 5 or later. Progress towards achieving ABI stability will be tracked at a high level on the ABI Dashboard.”
Kremenek wrote in a message to the swift-evolution mailing list that in Swift 5, ABI stability is a *requirement*.
Whatever ABI we have at the end of Swift 5 is the ABI that we will have. ABI stability is an important inflection point for the maturity of the language, and it cannot be delayed any longer.
Although ABI stability is the center focus of Swift 5, it is only one of two pieces needed to support binary frameworks. The second half is module stability — although it is “a stretch goal for Swift 5,” even without it, the primary value of ABI stability can still be achieved.
ABI stability enables OS vendors to embed a Swift standard library and runtime that is compatible with applications built with older or newer versions of Swift. This would remove the need for apps to distribute their own copy of these libraries on those platforms. It also allows for better decoupling of tools and better integration into the OS.
As noted earlier, ABI stability is necessary, though not sufficient, for binary frameworks. Module format stability is also required and is beyond the scope of this document.
Michael Ilseman, Compiler Engineer at Apple
If you want to read more about ABI stability, read the manifesto written by Michael Ilseman.
Non-goal of Swift 5
According to Kremenek, rolling out a full new concurrency model is a non-goal of Swift 5. Although it is “too large an effort to do alongside ABI stability,” progress on discussing the directions for concurrency must be made.
For more details about the changes to the language evolution process and Swift 5’s focus areas, read the README.md file published on the swift-evolution repository and Kremenek’s message.
Keep in mind that there will be no “stage 1” and “stage 2” for Swift 5’s evolution process. Send your proposal (provided that it fits within the general focus of the release) by March 1, 2018. Although proposals will still be considered after that, the bar will be increasingly high to accept changes for Swift 5.