Swift ABI Stability Manifesto
- Authors: Michael Ilseman (compiled through conversations with many others)
Introduction
The Big Picture
One of the top priorities for Swift right now is compatibility across future Swift versions. Compatibility aims at accomplishing two goals:
- Source compatibility means that newer compilers can compile code written in an older version of Swift. This aims to reduce the migration pain that Swift developers face when migrating to a newer Swift version. Without source compatibility, projects face version-lock where all source code in a project and its packages must be written in the same version of Swift. With source compatibility, package authors will be able to maintain a single code base across multiple Swift versions while allowing their users to use a newer version of Swift.