Swift 3 將不包含穩(wěn)定的ABI

責任編輯:editor005

作者:Sergio De Simone

2016-05-26 15:34:24

摘自:INFOQ

近日,蘋果公司Swift語言創(chuàng)始人Chris Lattner,在Swift官方郵件組服務上聲明,Swift 3原計劃的目標之一—— ABI的穩(wěn)定性,將會推遲發(fā)布。

近日,蘋果公司Swift語言創(chuàng)始人Chris Lattner,在Swift官方郵件組服務上聲明,Swift 3原計劃的目標之一—— ABI的穩(wěn)定性,將會推遲發(fā)布。

Lattner的原話:

剛開始的時候我們不適宜發(fā)布這些遠大的目標——包括一些重要的為了鎖定標準庫ABI的泛型功能。

因此,Swift Evolution Git 倉庫的ReadMe文件中已經(jīng)去掉了ABI的穩(wěn)定性。

由于原來的ReadMe文件中有相關(guān)說明,ABI的穩(wěn)定性將允許將來Swift版本開發(fā)的應用程序和編譯庫可以在二進制層次上與 Swift 3.0 版本的應用程序和編譯庫相互調(diào)用。這樣,ABI的穩(wěn)定性將保證一定程度的二進制兼容性,即使源語言發(fā)生了變化,并且第三方更容易發(fā)布二進制庫。另外,ABI的穩(wěn)定性將允許刪除需要的Swift標準庫和二進制文件,就像目前情況下通過Xcode創(chuàng)建的iOS和OS X應用程序一樣。

Lattner還解釋說,大約會在2016年8月份左右開始這一特性的討論并且會討論什么時候把它納入Swift語言中。目前尚不清楚ABI的穩(wěn)定性是否會納入Swift 3.1 或 4.0 版本,但是Lattner期望它是一個優(yōu)先級最高的功能。

Lattner的聲明引起了一些不滿, 主要是關(guān)于Swift 3原計劃的大多數(shù)目標是如何被取消的。其他的一些評論強調(diào),Swift剛開源的時候是如何定義Swift 3的初始范圍的,是否是社區(qū)的提議驅(qū)使Swift在ABI穩(wěn)定之前專注于更需要明確的其它方面的開發(fā),蘋果工程師Greg Parker回復說,ABI一旦定義了,就很難去改變,就如OS X和iOS的歷史架構(gòu)轉(zhuǎn)換演示一樣。特別地,他提到,Objective C ABI在極少數(shù)情況下存在的有意或無意的缺陷主要是由于時間的壓力,如用BOOL代替正確的布爾字符,或者由于使用傳統(tǒng)的GCC而使用setjmp-longjmp異常處理機制而不是“零成本”異常處理,等等。所有的一切,他總結(jié):

如果我們在Swift 3就試圖沖破ABI穩(wěn)定性的大門,我們肯定會以有意或無意的缺陷而結(jié)束[…]。能夠花時間去做正確的事情是彌足珍貴的。

查看英文原文:Swift 3 Will Not Have a Stable ABI

鏈接已復制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號