歡迎加入QQ討論群258996829
月之殘骸 頭像
蘋果2袋
2
月之殘骸

Swift 5確立了目標,定義了新的演進過程

發(fā)布時間:2017-08-29 20:34  回復:1  查看:9304   最后回復:2018-01-06 18:18  

Swift 5預計將于2018年發(fā)布,Swift 5將會帶來更好的ABI穩(wěn)定性,并將進一步關注API彈性(resilience)和內存所有權(memory ownership)。新的演進過程將有助于確保Swift 5將開發(fā)重點放在其既定目標上。

ABI穩(wěn)定性在早先的Swift發(fā)布版本中被推遲之后,目前已經成為Swift 5中一個必要的功能。Apple工程師、Swift維護者Teb Kremenek這樣寫道:“對于第三方框架開發(fā)人員來說,ABI穩(wěn)定性是至關重要的,并且為了擴大Swift在Apple公司內部的使用范圍,ABI穩(wěn)定性的實現(xiàn)不能再被推遲了,并且它將會成為Swift 5的重中之重?!比欢?,Swift 5對ABI穩(wěn)定性的官方定義不包括模塊穩(wěn)定性,模塊穩(wěn)定性被認為是一個難以達成的目標,可能不會出現(xiàn)在下個版本的Swift語言中。模塊穩(wěn)定性涉及到模塊文件的格式,它定義了編譯器是如何表示框架中的公共接口的。因此,只有當開發(fā)代碼依賴于一個二進制模塊并且其不可用性不會影響到運行時加載共享庫的時候,模塊穩(wěn)定性才是必需的。為了讓ABI穩(wěn)定性可控,必須要確定出一些底層實現(xiàn)的細節(jié),其中包括標準庫中所使用的通用特性,如條件性符合(conditional conformances)以及協(xié)議遞歸約束(recursive protocol requirements);API彈性,確保庫API能夠在保持其ABI穩(wěn)定性的同時進行演進;另外還有內存所有權(memory ownership)。

Swift 5另外一個主要目標是源穩(wěn)定性(source stability),這使得Swift 5編譯器能夠接受使用之前版本的Swift編寫的代碼。為此,只有當滿足以下三種情況時,才會接受源代碼的更改:當實際語法很明顯會引發(fā)問題時;當新語法明顯更好時;當存在現(xiàn)有代碼自動遷移路徑時。源穩(wěn)定性將會支持Swift 4的代碼,也有可能支持Swift 3的代碼。

對于字符串人機工程學(string ergonomics)領域的額外改進也被列入計劃,它可以使字符串更易于使用,除此之外,還有對標準庫的改進,它為新的并發(fā)模型奠定了基礎。

最后但同樣重要的是,Swift 5的演進過程已經被重新定義,避免過多的演進提案對ABI穩(wěn)定性的專注度造成影響。特別是從2018年3月1日起,每個新提案都需要一個可行的實現(xiàn),其中包括測試用例。缺少可行實現(xiàn)的提案也可以被提交,但是不會被審查通過。

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

星可可 頭像
蘋果0袋
0
星可可   2018-01-06 18:18
還有對標準庫的改進,它為新的并發(fā)模型奠定了基礎
您還未登錄,請先登錄

熱門帖子

最新帖子

?