It is also important to note that non-standalone frameworks, i.e. This would make it possible to take advantage of given compile-time optimizations at the expense of binary compatibility. This mechanism is called library evolution in Swift jargon and essentially boils down to allowing frameworks to opt-out of ABI stability on a per-type basis. This goal was accomplished only partially with Swift 5.0, so apps did not need to include the Swift runtime anymore starting with iOS 12.2, but developers had to wait until Swift 5.1 and iOS 13 for the creation of distributable binary frameworks to become real.Īpple paid special attention to preventing the requirements of ABI stability from impairing any performance improvements that future, non-ABI-compliant language features might provide. Two major implications of ABI stability are the possibility of not bundling a copy of the Swift runtime with each shipping application, and the possibility of enabling the distribution of binary frameworks by third-party developers and Apple itself. ABI stability aims to make it possible for code compiled with different Swift compilers to work together, thus bringing some level of binary compatibility to the language in the face of changes to the language syntax. While module stability is by far the most impactful new feature in Swift 5.1, the latest version of Apple's language includes a number of new language constructs, such as property wrappers and opaque return types, and a number of standard library extensions.Īs you may recall, Swift first reached ABI stability with version 5.0.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |