Apple 公司透露了Swift 4 的发布进程,Swift 4 将会在2017 年4 月发布。此次发布的焦点在于Swift 4 提供了对于核心语言和标准库的重大改进,同时也实现了对之前源代码的兼容性。Ted Kremenek 是Apple 公司Swift 团队的新负责人,他取代的是曾经的项目负责人Chris Lattner,他解释说,ABI(应用程序二进制接口)兼容性的实现一开始是在设计准则之中的,现如今将要推迟发布。
Swift 4 做了许多重大改变,因此 Swift 4 与 Swift 3 并没有十分良好的代码兼容性。然而,Swift 语言一经推出,它的编译器就支持兼容性模式,使用-swift-version-3
编译选项就能编译大多数 Swift 3 的源码,在 Swift 4 中还修复了错误代码也能在旧编译器中编译通过的漏洞。-swift-version-4
编译选项将会支持所有在 Swift 4 设计准则中提到的新特性。重要的是,Swift 的编译器将会在刚刚提到的编译选项中支持以下特性,它能够将框架和已经编译好的模块链接在一起,只要它们是使用同样的编译器选项编译出来的。
Kremenek 还提到,在相关原理被改正之前,Swift 推迟了对ABI 稳定性问题的解决,这样做能够避免ABI 不稳定的风险。
Swift 的创始人 Chris Lattner 是这样评论 Kremenek 的声明的:
看到了之前提出的年计划,我就认为这是一个很务实的决定。ABI 的稳定性对于 Apple 公司比对于大多数的开发者来说更重要,因此我很高兴看到你把社区的需求(改进编译时间、编译器稳定性等等)放到了第一位,对于 Swift 来说,保证长久成功的关键就是去做正确的事情。
推迟了改进 ABI 稳定性的目标并不意味着这项工作就此停止,Lattner 希望能够将 ABI 稳定性在 Swift 5 的早期开发阶段列入计划。Kremenek 将会尽快发布一个关于改进 ABI 稳定性的报表,上边会显示所有有关 ABI 稳定性的未完成任务以及当前的任务状态。
进入第二阶段的变更更有可能被纳入到发布版本里。例如,任何新的语法规则或 API 无疑要比当前的好,任何影响源代码兼容性的改进必须要对现有代码提供迁移方案等等。直到软件发布经理创建了最终的代码分支,所有的开发内容才会出现在master
代码主分支中,预计这项工作将于 2017 年初夏完成。从那时起,只有特定的修复内容会加入到最终的发布版本中。
查看英文原文: Swift 4 Enters Final Stage, Defers ABI Stability
感谢薛命灯对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们。
评论