[swift-evolution] Winding down the Swift 3 release

Chris Lattner clattner at apple.com
Tue May 24 17:11:12 CDT 2016


On May 24, 2016, at 1:28 PM, L. Mihalkovic <laurent.mihalkovic at gmail.com> wrote:
>> 
>>> I regularly read see how stability is a high prioriy goal going forward. But what I have not found yet what the plan is going to be to achieve it without stiffling the standard library? Are there constructs, or rules is place/planned that map how changes of kind A versus B level changes will be keeping/breaking compatibility? (I have not finished all the docs)
>> 
>> Once ABI stability is established, functionality can only be added to the standard library, not removed or have a significant behavior change.  For example, fundamentally changing the index model for collections would be impossible, but adding a new kind of collection would be fine.
> Thank you for taking the time to reply. 
> I am interested in understanding how finer granularity changes like adding methods to protocols, or adding new conformance requirements to existing types will or not impact compatibility. For eg I read about the possibility of upcoming default implementations in protocol. Is that part of the long term binary compatibility plans, or unrelated? I do realize many answers are in the compiler dev-list (read most but not all), the docs and the source code (have yet to read what's loaded at runtime from the binary) but any pointers would be appreciated.
> Thank you again.

This is a nuanced topic.  Jordan and John have started working on a document to describe our “resilience” design, a draft is available here:
https://github.com/apple/swift/blob/master/docs/LibraryEvolution.rst

-Chris



More information about the swift-evolution mailing list