新聞

Apple主導開發的Swift程式語言編譯器開發規則出現調整,更多核心元件將可直接用Swift實作。Swift編譯器開發者Erik Eckstein於Swift論壇宣布,從現在起,Swift編譯器主分支中被列為必要的部分,也可改以Swift撰寫,包括語法解析器、抽象語法樹、型別檢查器,以及必要的SIL處理流程。該變更主要影響Swift編譯器本身的開發方式,並非一般開發者可直接使用的新語法或新功能。

編譯器是把程式碼轉成電腦可執行內容的工具,Swift過去雖然已在部分編譯器元件使用Swift,但範圍主要限於較不會影響標準函式庫正確產生程式碼的部分,例如部分最佳化流程。在本次放寬後,Swift可用於更核心的編譯流程,讓Swift專案能夠用自己的語言來開發更多編譯器功能。

而這項調整也改變了Swift編譯器的建置條件,Swift專案過去要求,在沒有Swift主機端編譯器的情況下,也能只靠C++主機端工具鏈完成自我編譯(bootstrapping),也就是先建置出可用的Swift編譯器,再用來建置後續版本。按照新的方向,往後要建置Swift編譯器,系統上必須已有Swift工具鏈。

Erik Eckstein說明,若新平臺還沒有可用的Swift主機端工具鏈,仍可先用Swift 6.4編譯器完成自我編譯。Swift 6.4會是最後一個不需要Swift主機端編譯器也能完成初始建置的版本,在新平臺上建出Swift 6.4編譯器後,該編譯器就能作為後續版本建置所需的Swift工具鏈。

論壇中有開發者詢問C++語法解析器是否很快會被淘汰,Erik Eckstein回應,變更僅代表部分元件可以被取代,不代表現有C++實作會立刻消失。至於未來Swift編譯器支援哪些舊版Swift主機端編譯器來建置,Erik Eckstein也表示目前尚未有明確政策。