BT

New Early adopter or innovator? InfoQ has been working on some new features for you. Learn more

Swift 5 Sets its Goals, Defines New Evolution Process

| by Sergio De Simone Follow 4 Followers on Aug 20, 2017. Estimated reading time: 2 minutes |

Expected to be released in late 2018, Swift 5 will bring ABI stability and further work on API resilience and memory ownership. A new evolution process will help ensure Swift 5 development keeps its focus on the planned goals.

After being postponed in previous releases of Swift, ABI stability is now a requirement for Swift 5. ABI stability, which is crucial for third party framework developers as well as to broaden Swift adoption inside of Apple, cannot be further delayed, writes Apple engineer and Swift maintainer Ted Kremenek, and will be the central focus for Swift 5.

To get ABI stability under control, a number of low-level implementation details must be finalized, including generics features used in the standard library such as conditional conformances and recursive protocol requirements; API resilience, which ensures a library API can evolve while keeping its ABI stable; and memory ownership.

We should also note that the official definition of ABI stability for Swift 5 does not include module stability, which is considered a stretch goal that might not make it into the next release of the language. Module stability concerns the format of module files, which defines how the compiler represents the public interfaces of a framework. Thus, module stability is only required when developing code depending on a binary module and its unavailability will not affect the ability to load a shared library at runtime.

Another major goal for Swift 5 is source stability, which will allow the Swift 5 compiler to accept code written with previous versions of Swift. To this end, source-breaking changes will only be accepted if the actual syntax can be shown to cause problems, the new syntax is clearly better, and there is an automated migration path for existing code. Source stability will include Swift 4 and might also include Swift 3 code.

Additional improvements to the language are planned in the area of string ergonomics to make strings easier to use and faster, improvements to the standard library, and laying the ground for a new concurrency model.

Last but not least, the evolution process for Swift 5 has been redefined to reduce the risk that too many evolution proposals could dilute the focus on ABI stability. In particular, starting March 1, 2018, each new proposal will need a working implementation, including test cases. Any proposal lacking a working implementation may be submitted but will not be considered for review.

Rate this Article

Adoption Stage
Style

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

Discuss

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


Recover your password...

Follow

Follow your favorite topics and editors

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

Like

More signal, less noise

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

Notifications

Stay up-to-date

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

BT