本教程基于Swift官方文档,该系列文章是对该英文文档的顺序翻译,其中包含了作者对Swift语言学习的理解。希望对读者对Swift的学习有所帮助。如有纰漏,恳请各位读者指出。当然有英文阅读能力的同学,请尽量阅读原文。
Swift5的发布,最重要的是带来了ABI的稳定,关于什么是ABI,以及ABI稳定的重要性,可以参考下面的摘要。
- 什么是ABI。
在运行时,Swift程序二进制文件通过ABI
与其他库和组件交互,ABI
定义了很多底层细节:如何调用函数,如何在内存中表示数据,甚至是元数据的位置以及如何访问它。 - 什么是ABI稳定
此前发布的Swift版本中ABI
还没稳定,Swift并没包含在操作系统中,所以每一个应用内部都包含其Swift版本所对应的动态链接库
。
Swift 5将为Swift的标准库提供稳定的ABI
,Swift将包含在操作系统中,新版本的编译器会根据稳定的ABI
来编译生成的应用程序二进制文件。也就是说,以后新发布的编译器也可以编译旧版Swift 5代码,源代码实现兼容。 - ABI稳定带来的便利
- 因为源代码兼容,开发者能够跨多个Swift版本维护单个代码库;
- Swift应用程序包会变得更小;
- Swift语言变化以及变化频率都会有所下降;
- ABI稳定下阶段的目标
关于Swift ABI 稳定规划,Swift 5完成的是第一阶段的源兼容(Source compatibility
),下半部分是二进制framework和运行时兼容(Binary framework & runtime compatibility
),详细描述可见宣言Swift ABI Stability Manifesto。
网友评论