[Accepted] SE-0260: Library Evolution for Stable ABIs

The review of SE-0260: Library Evolution for Stable ABIs has concluded.

Stable library evolution has been a goal of the Swift project since its earliest days. SE-0260 builds on years of design and implementation effort, and it is as much an announcement of the success of that work as it is a proposal to change the language. Most of the formal content of the proposal is carved deep into the bones of the language; it could not be made any other way without grave consequences. All of this is to say that the basic outcome of this review is at least a little preordained.

Still, there are details that are worth debating. There were two basic categories of discussion in the review:

  • Several reviewers provided concrete feedback on specific aspects of the new attributes and compilation modes proposed by SE-0260. On balance, the Core Team is satisfied with the language rules and names as proposed.

  • There was quite a lot of debate about the exact process of developing and evolving stable libraries and the exact guarantees that Swift is making here. While SE-0260 lays out the most basic rules for stable libraries, there are many details like these that remain unsettled and which may have significant consequences for the evolution of the implementation. The Core Team feels that these details can be worked out in later proposals, and that any limitations on the implementation will provide adequate incentive to ensure that they are.

Accordingly, SE-0260 is accepted.

As always, thank you for helping to make Swift a better language.

John McCall
Review Manager

14 Likes