欢迎加入QQ讨论群258996829
月之残骸 头像
苹果1袋
1
月之残骸

Swift 5确立了目标,定义了新的演进过程

发布时间:2017-08-29 20:34  回复:0  查看:530   最后回复:2017-08-29 20:34  

Swift 5预计将于2018年发布,Swift 5将会带来更好的ABI稳定性,并将进一步关注API弹性(resilience)和内存所有权(memory ownership)。新的演进过程将有助于确保Swift 5将开发重点放在其既定目标上。

ABI稳定性在早先的Swift发布版本中被推迟之后,目前已经成为Swift 5中一个必要的功能。Apple工程师、Swift维护者Teb Kremenek这样写道:“对于第三方框架开发人员来说,ABI稳定性是至关重要的,并且为了扩大Swift在Apple公司内部的使用范围,ABI稳定性的实现不能再被推迟了,并且它将会成为Swift 5的重中之重。”然而,Swift 5对ABI稳定性的官方定义不包括模块稳定性,模块稳定性被认为是一个难以达成的目标,可能不会出现在下个版本的Swift语言中。模块稳定性涉及到模块文件的格式,它定义了编译器是如何表示框架中的公共接口的。因此,只有当开发代码依赖于一个二进制模块并且其不可用性不会影响到运行时加载共享库的时候,模块稳定性才是必需的。为了让ABI稳定性可控,必须要确定出一些底层实现的细节,其中包括标准库中所使用的通用特性,如条件性符合(conditional conformances)以及协议递归约束(recursive protocol requirements);API弹性,确保库API能够在保持其ABI稳定性的同时进行演进;另外还有内存所有权(memory ownership)

Swift 5另外一个主要目标是源稳定性(source stability),这使得Swift 5编译器能够接受使用之前版本的Swift编写的代码。为此,只有当满足以下三种情况时,才会接受源代码的更改:当实际语法很明显会引发问题时;当新语法明显更好时;当存在现有代码自动迁移路径时。源稳定性将会支持Swift 4的代码,也有可能支持Swift 3的代码。

对于字符串人机工程学(string ergonomics)领域的额外改进也被列入计划,它可以使字符串更易于使用,除此之外,还有对标准库的改进,它为新的并发模型奠定了基础。

最后但同样重要的是,Swift 5的演进过程已经被重新定义,避免过多的演进提案对ABI稳定性的专注度造成影响。特别是从2018年3月1日起,每个新提案都需要一个可行的实现,其中包括测试用例。缺少可行实现的提案也可以被提交,但是不会被审查通过。

查看英文原文:Swift 5 Sets its Goals, Defines New Evolution Process

您还未登录,请先登录

热门帖子

最新帖子