Swift 3.1 Enters its Final Development Stage

| by Sergio De Simone Follow 14 Followers on Dec 13, 2016. Estimated reading time: 1 minute |

Apple’s Swift team has made public their release plan for Swift 3.1, expected to be available in the Spring of 2017 and source-compatible with Swift 3.0, writes Apple’s language and runtimes manager Ted Kremenek.

According to Kremenek, Swift 3.1 will be source compatible with Swift 3.0:

It is a strong goal that the vast majority of sources that built with the Swift 3.0 compiler continue to build with the Swift 3.1 compiler. The exception will be bug fixes to the compiler that cause it to reject code that should never have been accepted in the first place. These cases should be relatively rare in practice.

Specifically, Swift 3.1 will not have a compatibility flag as Swift 4 is expected to have, so it should work “out-of-the-box”. Furthermore, the concept of source compatibility for Swift 3.1 explicitly includes the Apple SDKs for macOS, iOS, etc., meaning that they can only include source compatible changes. All changes that break source compatibility will be carefully evaluated to weigh the benefits they bring against the source compatibility goal, explains Apple engineer Ewa Matejska. In particular, bug fixes in the compiler that might break some “fringe case” will be foreseeably accepted, while changes to existing APIs should provide significant benefits.

Swift 3.1 will also mark a change in the way snapshots are produced by attempting to make new snapshots available daily. This should provide a finer granularity for the Swift community to test new features and ensure more release regularity in comparison with previous releases.

Swift 3.1 will be branched on January 16, 2017 from master. From that moment on, the master branch will be devoted to Swift 4 development and there is no guarantee that any changes to master could be part of the final Swift 3.1, although some notable change might still land in it based on the judgement of the release manager.

The scope of version 3.1 of Swift is deliberately limited to bringing a few enhancements to the core language and to the Swift Package Manager, as well as to improving the language support for Linux.

Rate this Article

Adoption Stage

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread
Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread


Login to InfoQ to interact with what matters most to you.

Recover your password...


Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.


More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.


Stay up-to-date

Set up your notifications and don't miss out on content that matters to you