当前位置:新闻中心行业动态 → 正文

Swift 4 ABI稳定性的征途

责任编辑:editor004 作者: Sergio De Simone |来源:企业网D1Net  2017-02-10 11:46:38 本文摘自:INFOQ

最近发布在swift-evolution邮件杂志上的《Swift ABI稳定性宣言》旨在汇编所有需要解决的问题,然后宣布Swift ABI具有稳定性。

《Swift ABI稳定性宣言》的作者——苹果公司工程师Michael Ilseman写道,ABI稳定性的目标包含以下两个主要部分:

定义一个模块文件,这个模块文件包含了Swift编译器关于把公共框架的API与在运行时加载的可执行代码捆绑在一起的描述的标准化表示。 定义一系列影响低级别细节的约定,例如如何调用函数,如何在内存中表示数据和元数据等。

Ilseman特别指出需要致力于以下六个方面:

数据布局,主要是定义如何在内存中布置struct和class实例。 类型元数据,要求有特定的内存布局或API查询。 name mangling,主要是定义编译器如何分别标识外部符号,例如类型和函数。 函数调用约定,主要是定义如何将参数传入/传出函数,以及该保留哪些寄存器等。 Swift runtime,主要是提供动态转换、引用计数、反射等的基本机制,属于ABI的一部分。 标准库,它的API是ABI的一部分,应用程序和库都会调用它。

ABI稳定性是Swift 4计划的优先级最高的功能之一,对第三方框架开发人员至关重要。正如InfoQ报道所指出,Swift 3因为无法定义锁定ABI之前需要定义的一些方面,所以没有实现ABI的稳定性。在最近的Accidental TechS播客采访中,前苹果工程师兼Swift创始人Chris Lattner表示,ABI稳定性对于应用程序开发人员来说并不重要,但“对苹果公司来说非常重要”,并且它是公司内部采用Swift的关键因素:

要真正地在苹果公司全面采用Swift,Swift团队必须实现一些特定目标。ABI稳定性是阻止框架开发人员采用Swift的首要因素。这是一件非常重要的事情,也是ABI稳定性总是排在很高优先等级的原因之一。

实际上,目前仍然不完全清楚Swift 4 ABI是否能被宣称为具有稳定性。Lattner说,这可能受两个因素的影响,它们是ABI稳定性包含的工作量以及它可能不是Swift社区最重要的事情。

如果他们什么时候决定专注于Swift 4中其他比ABI稳定性更重要的方面,我也不会感到惊讶。

Lattner指出了一些Swift社区中排在更高优先级别的问题:比如使编译器更具可靠性,更准确的错误提示,加快编译速度,以及使Swift更适用于大型项目。

查看英文原文:The Road to Swift 4 ABI Stability

关键字:Swift

本文摘自:INFOQ

x Swift 4 ABI稳定性的征途 扫一扫
分享本文到朋友圈
当前位置:新闻中心行业动态 → 正文

Swift 4 ABI稳定性的征途

责任编辑:editor004 作者: Sergio De Simone |来源:企业网D1Net  2017-02-10 11:46:38 本文摘自:INFOQ

最近发布在swift-evolution邮件杂志上的《Swift ABI稳定性宣言》旨在汇编所有需要解决的问题,然后宣布Swift ABI具有稳定性。

《Swift ABI稳定性宣言》的作者——苹果公司工程师Michael Ilseman写道,ABI稳定性的目标包含以下两个主要部分:

定义一个模块文件,这个模块文件包含了Swift编译器关于把公共框架的API与在运行时加载的可执行代码捆绑在一起的描述的标准化表示。 定义一系列影响低级别细节的约定,例如如何调用函数,如何在内存中表示数据和元数据等。

Ilseman特别指出需要致力于以下六个方面:

数据布局,主要是定义如何在内存中布置struct和class实例。 类型元数据,要求有特定的内存布局或API查询。 name mangling,主要是定义编译器如何分别标识外部符号,例如类型和函数。 函数调用约定,主要是定义如何将参数传入/传出函数,以及该保留哪些寄存器等。 Swift runtime,主要是提供动态转换、引用计数、反射等的基本机制,属于ABI的一部分。 标准库,它的API是ABI的一部分,应用程序和库都会调用它。

ABI稳定性是Swift 4计划的优先级最高的功能之一,对第三方框架开发人员至关重要。正如InfoQ报道所指出,Swift 3因为无法定义锁定ABI之前需要定义的一些方面,所以没有实现ABI的稳定性。在最近的Accidental TechS播客采访中,前苹果工程师兼Swift创始人Chris Lattner表示,ABI稳定性对于应用程序开发人员来说并不重要,但“对苹果公司来说非常重要”,并且它是公司内部采用Swift的关键因素:

要真正地在苹果公司全面采用Swift,Swift团队必须实现一些特定目标。ABI稳定性是阻止框架开发人员采用Swift的首要因素。这是一件非常重要的事情,也是ABI稳定性总是排在很高优先等级的原因之一。

实际上,目前仍然不完全清楚Swift 4 ABI是否能被宣称为具有稳定性。Lattner说,这可能受两个因素的影响,它们是ABI稳定性包含的工作量以及它可能不是Swift社区最重要的事情。

如果他们什么时候决定专注于Swift 4中其他比ABI稳定性更重要的方面,我也不会感到惊讶。

Lattner指出了一些Swift社区中排在更高优先级别的问题:比如使编译器更具可靠性,更准确的错误提示,加快编译速度,以及使Swift更适用于大型项目。

查看英文原文:The Road to Swift 4 ABI Stability

关键字:Swift

本文摘自:INFOQ

电子周刊
回到顶部

关于我们联系我们版权声明隐私条款广告服务友情链接投稿中心招贤纳士

企业网版权所有 ©2010-2024 京ICP备09108050号-6 京公网安备 11010502049343号

^