Swift 4.2 的主要目标是为 ABI 稳定性做准备,ABI 将会是 Swift 5 的主要目标。据苹果公司语言和运行时经理 Ted Kremenek 透露,Swift 4.2 将会对 ABI 的底层做出一些与性能有关的改动,目的是在 Swift 5 中正式发布最终版的 ABI 之前,能够从开发者那里获取反馈。
与 Swift 4.2 相关的代码都提交到 swift-4.2-branch,每两周从 master 分支合并一次。从 4 月 20 号开始,在从 master 分支进行最后一次合并之后,swift-4.2-branch 只接受关键的 bug 修复代码。
ABI 稳定性让不同版本 Swift 编译出来的应用程序和类库可以兼容,对于框架开发者来说,这是最基础的一项特性。如果缺乏 ABI 稳定性,那么就需要为不同版本的编译器提供不同版本的框架。ABI 仪表盘上列出了 ABI 最终版需要包含的变更清单,将于 2018 年下半年发布,不过目前并不清楚哪些变更将被包含在 Swift 4.2 中,哪些将被包含在 Swift 5 中。
为了遵守 Swift 4 的诺言,Swift 4.2 会继续保证兼容 4.x 的代码,也就是说,能用 Swift 4.x 编译器编译的代码也可以使用 Swift 4.2 的编译器进行编译。不过,这并不包含因 bug 修复导致的破坏性变更,也就是那些因编译器的 bug 而能够通过编译的错误代码。在兼容模式下,仍然可以使用 Swift 4.2 来编译 Swift 3 的代码。
Swift 4 发布于 2017 年 9 月,目标是改进语言和编译器性能和稳定性,同时保持代码的兼容性。ABI 稳定性原本是 Swift 4 的目标,后来被延期到了 Swift 5 中。