XiaoKL

Swift.Stability-in-Language-1-Whats-different-stability

Stability in Language: 1-What's the different stability

 

1. ABI Stability

 

"ABI stability for Apple OSes means that apps deploying to upcoming releases of those OSes will no longer

need to embed the Swift standard library and “overlay” libraries within the app bundle, shrinking their

download size; the Swift runtime and standard library will be shipped with the OS, like the Objective-C runtime." Ref[1]

 

"Swift 5.0 introduced a stable binary interface on Apple platforms. This meant that apps built with the Swift 5.0

compiler can use the Swift runtime and standard library built into the operating system, and that existing apps

will remain compatible with new versions of the Swift runtime in future operating system releases." Ref[2]

 

 

2. Module Stability

 

"Module stability allows Swift modules built with different compiler versions to be used together in one app." Ref[2]

 

"Module stability currently requires library evolution support; typically you will enable both features when

building a binary framework for distribution." Ref[2]

 

3. Library evolution support 

"Library evolution support allows developers of binary frameworks to make additive changes to the API

of their framework while remaining binary compatible with previous versions." Ref[2]

 

 

 

 


Reference

1. ABI Stability and More

https://www.swift.org/blog/abi-stability-and-more/

 

2. Library Evolution in Swift

https://www.swift.org/blog/library-evolution/

 

3. [SR-14195] Swift emits an invalid module interface when a public type has the same name as a module

https://github.com/apple/swift/issues/56573

 

4. Enabling Module Stability in Swift Package Manager Projects

https://swiftrocks.com/enabling-module-stability-in-swift-package-manager-projects

 

posted on 2022-06-16 15:24  XiaoKL  阅读(37)  评论(0编辑  收藏  举报

导航