Apple公司透露了Swift 4的發(fā)布進(jìn)程,Swift 4將會在2017年4月發(fā)布。此次發(fā)布的焦點在于Swift 4提供了對于核心語言和標(biāo)準(zhǔn)庫的重大改進(jìn),同時也實現(xiàn)了對之前源代碼的兼容性。Ted Kremenek是Apple公司Swift團(tuán)隊的新負(fù)責(zé)人,他取代的是曾經(jīng)的項目負(fù)責(zé)人Chris Lattner,他解釋說,ABI(應(yīng)用程序二進(jìn)制接口)兼容性的實現(xiàn)一開始是在設(shè)計準(zhǔn)則之中的,現(xiàn)如今將要推遲發(fā)布。
Swift 4做了許多重大改變,因此Swift 4與Swift 3并沒有十分良好的代碼兼容性。然而,Swift語言一經(jīng)推出,它的編譯器就支持兼容性模式,使用-swift-version-3編譯選項就能編譯大多數(shù)Swift 3的源碼,在Swift 4中還修復(fù)了錯誤代碼也能在舊編譯器中編譯通過的漏洞。-swift-version-4編譯選項將會支持所有在Swift 4設(shè)計準(zhǔn)則中提到的新特性。重要的是,Swift的編譯器將會在剛剛提到的編譯選項中支持以下特性,它能夠?qū)⒖蚣芎鸵呀?jīng)編譯好的模塊鏈接在一起,只要它們是使用同樣的編譯器選項編譯出來的。
Kremenek還提到,在相關(guān)原理被改正之前,Swift推遲了對ABI穩(wěn)定性問題的解決,這樣做能夠避免ABI不穩(wěn)定的風(fēng)險。
Swift的創(chuàng)始人Chris Lattner是這樣評論Kremenek的聲明的:
看到了之前提出的年計劃,我就認(rèn)為這是一個很務(wù)實的決定。ABI的穩(wěn)定性對于Apple公司比對于大多數(shù)的開發(fā)者來說更重要,因此我很高興看到你把社區(qū)的需求(改進(jìn)編譯時間、編譯器穩(wěn)定性等等)放到了第一位,對于Swift來說,保證長久成功的關(guān)鍵就是去做正確的事情。
推遲了改進(jìn)ABI穩(wěn)定性的目標(biāo)并不意味著這項工作就此停止,Lattner希望能夠?qū)BI穩(wěn)定性在Swift 5的早期開發(fā)階段列入計劃。Kremenek將會盡快發(fā)布一個關(guān)于改進(jìn)ABI穩(wěn)定性的報表,上邊會顯示所有有關(guān)ABI穩(wěn)定性的未完成任務(wù)以及當(dāng)前的任務(wù)狀態(tài)。
進(jìn)入第二階段的變更更有可能被納入到發(fā)布版本里。例如,任何新的語法規(guī)則或API無疑要比當(dāng)前的好,任何影響源代碼兼容性的改進(jìn)必須要對現(xiàn)有代碼提供遷移方案等等。直到軟件發(fā)布經(jīng)理創(chuàng)建了最終的代碼分支,所有的開發(fā)內(nèi)容才會出現(xiàn)在master代碼主分支中,預(yù)計這項工作將于2017年初夏完成。從那時起,只有特定的修復(fù)內(nèi)容會加入到最終的發(fā)布版本中。
查看英文原文:Swift 4 Enters Final Stage, Defers ABI Stability