命令列工具
swiftlang/swift avatar
swiftlang/swift

swiftlang/swift:從編譯器原始碼構建可安裝的 Swift 工具鏈

Swift 是一門高效能系統程式語言,語法簡潔現代,預設保證記憶體安全,並可無縫存取現有的 C 與 Objective-C 程式碼與框架。

70,347 個 Star10,820 個 ForkSwiftApache-2.0

秒懂

它是什麼?
面向編譯器貢獻者和需要本地工具鏈的 macOS 開發者,重點看構建指令碼、Xcode 安裝、清理選項和文件邊界。
適合誰用?
面向編譯器貢獻者和需要本地工具鏈的 macOS 開發者,重點看構建指令碼、Xcode 安裝、清理選項和文件邊界。 適合願意按倉庫文件部署並承擔配置、升級和資料邊界核對的團隊,不適合把 README 宣傳性描述當作現成生產證明的讀者。
可以商用嗎?
可以。Apache-2.0 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫在最近一天內有新的提交。
用什麼語言寫的?
主要是 Swift(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

swift:倉庫邊界與使用入口

swiftlang/swift 是 Swift 程式語言的官方倉庫,其 README 將 Swift 描述為一種高效能系統程式語言,具有簡潔現代的語法,能夠訪問現有的 C 和 Objective-C 程式碼及框架,並且預設提供記憶體安全。README 特別強調 Swift 並非 C 的衍生語言,而是受到 Objective-C 和其他語言啟發的獨立語言,它包含流程控制、資料結構、函式等核心特性,也提供物件、協議、閉包和泛型等高階構造。同時,Swift 採用模組化設計,消除了標頭檔案及其帶來的程式碼重複。這些描述均來自 README,倉庫後設資料中的 stars、forks 和 open issues 數字只反映倉庫的受歡迎程度和活躍度,並不直接證明語言本身的質量或效能。

swift 的第 1 個核驗點,應圍繞倉庫中已經出現的名稱、路徑或命令展開。構建 Swift 時應先照 Getting Started 指引確認 Xcode 與系統依賴,再執行 ./swift/utils/build-toolchain com.example,檢查生成的 swift-LOCAL-YYYY-MM-DD-a-osx.tar.gz 與帶 -symbols 的歸檔。用 --dry-run 先觀察步驟,構建後把工具鏈解壓到 ~/Library/Developer/Toolchains/,在 Xcode Toolchains 設定中選擇它,並用一個小型 Swift 程式確認編譯器來源。若 Xcode 更新,先測試 --reconfigure;若快取或中間產物損壞,再比較 --clean 前後的行為。README 沒有給出非 macOS 的安裝同等路徑,不能據此承諾跨平臺工具鏈安裝。(本節對應的觀察重點是“倉庫定位與語言特性”,記錄結果時不要用其他專案的結論替代。)

swift:貢獻流程與行為準則

README 明確歡迎並鼓勵對 Swift 的貢獻,要求貢獻者檢視 swift.org 上的 Contributing to Swift 指南,並在提交拉取請求前測試修改,遵循專案的程式碼貢獻指南。為了營造包容的社群環境,Swift 採用了 Contributor Covenant 定義的行為準則,該準則被許多開源社群使用,README 認為它很好地表達了專案的價值觀。具體的貢獻步驟需要參考外部指南,倉庫內也提供了 FirstPullRequest.md 文件來指導首次提交。需要注意的是,README 沒有提及程式碼審查的具體流程、貢獻者協議或 CLA 要求,這些都需要檢視 swift.org 或相關文件來確認。

swift 的第 2 個核驗點,應圍繞倉庫中已經出現的名稱、路徑或命令展開。構建 Swift 時應先照 Getting Started 指引確認 Xcode 與系統依賴,再執行 ./swift/utils/build-toolchain com.example,檢查生成的 swift-LOCAL-YYYY-MM-DD-a-osx.tar.gz 與帶 -symbols 的歸檔。用 --dry-run 先觀察步驟,構建後把工具鏈解壓到 ~/Library/Developer/Toolchains/,在 Xcode Toolchains 設定中選擇它,並用一個小型 Swift 程式確認編譯器來源。若 Xcode 更新,先測試 --reconfigure;若快取或中間產物損壞,再比較 --clean 前後的行為。README 沒有給出非 macOS 的安裝同等路徑,不能據此承諾跨平臺工具鏈安裝。(本節對應的觀察重點是“貢獻流程與行為準則”,記錄結果時不要用其他專案的結論替代。)

swift:獲取原始碼與構建起點

對於想要參與編譯器開發或構建 Swift 工具鏈的開發者,README 提供了分場景的指引。如果希望為編譯器貢獻修復和新功能,可以檢視 docs/HowToGuides/FirstPullRequest.md。如果只是想一次性構建編譯器,可以按照 Getting Started guide 進行。如果想要一次性構建工具鏈,則需要先按照 Getting Started guide 直到構建專案部分,然後遵循後續的 Swift Toolchains 章節。README 還提到了一個 FAQ 文件來回答常見問題。這些指引都是相對路徑,實際內容需要訪問倉庫中的具體檔案,但 README 沒有列出構建 Swift 所需的系統依賴或最低版本要求,只提示了在 Troubleshooting 部分可以找到構建問題的解決方案。

swift 的第 3 個核驗點,應圍繞倉庫中已經出現的名稱、路徑或命令展開。構建 Swift 時應先照 Getting Started 指引確認 Xcode 與系統依賴,再執行 ./swift/utils/build-toolchain com.example,檢查生成的 swift-LOCAL-YYYY-MM-DD-a-osx.tar.gz 與帶 -symbols 的歸檔。用 --dry-run 先觀察步驟,構建後把工具鏈解壓到 ~/Library/Developer/Toolchains/,在 Xcode Toolchains 設定中選擇它,並用一個小型 Swift 程式確認編譯器來源。若 Xcode 更新,先測試 --reconfigure;若快取或中間產物損壞,再比較 --clean 前後的行為。README 沒有給出非 macOS 的安裝同等路徑,不能據此承諾跨平臺工具鏈安裝。(本節對應的觀察重點是“獲取原始碼與構建起點”,記錄結果時不要用其他專案的結論替代。)

swift:構建工具鏈的指令碼與選項

Swift 工具鏈通過 utils/build-toolchain 指令碼建立,該指令碼被 swift.org 的持續整合系統用於生成快照,也可用於本地復現構建。一個典型的呼叫方式是執行 ./swift/utils/build-toolchain $BUNDLE_PREFIX,其中 $BUNDLE_PREFIX 是一個字串,會被前置到構建日期,形成工具鏈 Info.plist 的 bundle identifier,例如 com.example.YYYYMMDD。指令碼會在當前目錄生成名為 swift-LOCAL-YYYY-MM-DD-a-osx.tar.gz 的檔案。除了基本構建,該指令碼還支援 --dry-run、--test、--distcc 和 --sccache 等選項,這些選項預設都是關閉的。README 提醒這些選項可能隨時間增加,可以通過 --help 檢視完整列表,但並未說明各選項的具體引數或使用細節。

swift 的第 4 個核驗點,應圍繞倉庫中已經出現的名稱、路徑或命令展開。構建 Swift 時應先照 Getting Started 指引確認 Xcode 與系統依賴,再執行 ./swift/utils/build-toolchain com.example,檢查生成的 swift-LOCAL-YYYY-MM-DD-a-osx.tar.gz 與帶 -symbols 的歸檔。用 --dry-run 先觀察步驟,構建後把工具鏈解壓到 ~/Library/Developer/Toolchains/,在 Xcode Toolchains 設定中選擇它,並用一個小型 Swift 程式確認編譯器來源。若 Xcode 更新,先測試 --reconfigure;若快取或中間產物損壞,再比較 --clean 前後的行為。README 沒有給出非 macOS 的安裝同等路徑,不能據此承諾跨平臺工具鏈安裝。(本節對應的觀察重點是“構建工具鏈的指令碼與選項”,記錄結果時不要用其他專案的結論替代。)

swift:在 macOS 上安裝到 Xcode

對於 macOS 使用者,README 說明了如何將構建好的工具鏈安裝到 Xcode 中。首先,需要將解壓後的工具鏈複製到 /Library/Developer/Toolchains/ 或 ~/Library/Developer/Toolchains/ 目錄,命令示例為 sudo tar -xzf swift-LOCAL-YYYY-MM-DD-a-osx.tar.gz -C / 或 tar -xzf swift-LOCAL-YYYY-MM-DD-a-osx.tar.gz -C ~/。同時,指令碼會生成一個包含除錯符號的歸檔檔案,可以安裝它來對編譯器崩潰進行符號化,命令類似,只是檔名帶有 -symbols。然後,需要在 Xcode 的 Toolchains 設定中選擇本地工具鏈。這些步驟只針對 macOS,README 沒有提及在其他作業系統上如何安裝工具鏈。

swift 的第 5 個核驗點,應圍繞倉庫中已經出現的名稱、路徑或命令展開。構建 Swift 時應先照 Getting Started 指引確認 Xcode 與系統依賴,再執行 ./swift/utils/build-toolchain com.example,檢查生成的 swift-LOCAL-YYYY-MM-DD-a-osx.tar.gz 與帶 -symbols 的歸檔。用 --dry-run 先觀察步驟,構建後把工具鏈解壓到 ~/Library/Developer/Toolchains/,在 Xcode Toolchains 設定中選擇它,並用一個小型 Swift 程式確認編譯器來源。若 Xcode 更新,先測試 --reconfigure;若快取或中間產物損壞,再比較 --clean 前後的行為。README 沒有給出非 macOS 的安裝同等路徑,不能據此承諾跨平臺工具鏈安裝。(本節對應的觀察重點是“在 macOS 上安裝到 Xcode”,記錄結果時不要用其他專案的結論替代。)

swift:構建失敗的排查建議

當構建失敗時,README 建議首先參考 Getting Started 文件中的 Troubleshooting build issues 部分,並確保使用正確版本的 Xcode。如果更換 Xcode 版本後仍遇到錯誤,可以嘗試向 build-script 傳遞 --clean 引數。當新版本 Xcode 釋出時,可以通過 --reconfigure 引數更新構建而不必重新編譯整個專案。這些建議非常具體,但 README 沒有解釋 --clean 和 --reconfigure 背後的原理,也沒有提供更詳細的錯誤診斷方法。如果問題依然存在,可能需要訪問 swift.org 或提交 issue 來獲取幫助,但 README 並沒有直接描述這樣的支援渠道。

swift 的第 6 個核驗點,應圍繞倉庫中已經出現的名稱、路徑或命令展開。構建 Swift 時應先照 Getting Started 指引確認 Xcode 與系統依賴,再執行 ./swift/utils/build-toolchain com.example,檢查生成的 swift-LOCAL-YYYY-MM-DD-a-osx.tar.gz 與帶 -symbols 的歸檔。用 --dry-run 先觀察步驟,構建後把工具鏈解壓到 ~/Library/Developer/Toolchains/,在 Xcode Toolchains 設定中選擇它,並用一個小型 Swift 程式確認編譯器來源。若 Xcode 更新,先測試 --reconfigure;若快取或中間產物損壞,再比較 --clean 前後的行為。README 沒有給出非 macOS 的安裝同等路徑,不能據此承諾跨平臺工具鏈安裝。(本節對應的觀察重點是“構建失敗的排查建議”,記錄結果時不要用其他專案的結論替代。)

swift:許可與文件邊界

倉庫後設資料表明 swiftlang/swift 的許可證為 Apache-2.0,但本次提供的 README 和許可證摘錄沒有給出具體的許可文本,因此無法在此引用具體條款。README 引導使用者訪問 swift.org/documentation/ 瞭解語言使用,訪問倉庫內的 docs/README.md 瞭解編譯器內部設計。除此之外,README 沒有涉及安全漏洞報告流程、支援政策或商業支援選項,也沒有提供版本歷史或釋出週期。對於這些未提及的內容,使用者需要檢視 swift.org 或倉庫的其他檔案來獲取準確資訊。

swift 的第 7 個核驗點,應圍繞倉庫中已經出現的名稱、路徑或命令展開。構建 Swift 時應先照 Getting Started 指引確認 Xcode 與系統依賴,再執行 ./swift/utils/build-toolchain com.example,檢查生成的 swift-LOCAL-YYYY-MM-DD-a-osx.tar.gz 與帶 -symbols 的歸檔。用 --dry-run 先觀察步驟,構建後把工具鏈解壓到 ~/Library/Developer/Toolchains/,在 Xcode Toolchains 設定中選擇它,並用一個小型 Swift 程式確認編譯器來源。若 Xcode 更新,先測試 --reconfigure;若快取或中間產物損壞,再比較 --clean 前後的行為。README 沒有給出非 macOS 的安裝同等路徑,不能據此承諾跨平臺工具鏈安裝。(本節對應的觀察重點是“許可與文件邊界”,記錄結果時不要用其他專案的結論替代。)

編輯結論

面向編譯器貢獻者和需要本地工具鏈的 macOS 開發者,重點看構建指令碼、Xcode 安裝、清理選項和文件邊界。 適合願意按倉庫文件部署並承擔配置、升級和資料邊界核對的團隊,不適合把 README 宣傳性描述當作現成生產證明的讀者。先執行專案對應的最小啟動或構建命令,檢查輸入、輸出、日誌與失敗行為,再決定是否進入正式環境。構建 Swift 時應先照 Getting Started 指引確認 Xcode 與系統依賴,再執行 ./swift/utils/build-toolchain com.example,檢查生成的 swift-LOCAL-YYYY-MM-DD-a-osx.tar.gz 與帶 -symbols 的歸檔。用 --dry-run 先觀察步驟,構建後把工具鏈解壓到 ~/Library/Developer/Toolchains/,在 Xcode Toolchains 設定中選擇它,並用一個小型 Swift 程式確認編譯器來源。若 Xcode 更新,先測試 --reconfigure;若快取或中間產物損壞,再比較 --clean 前後的行為。README 沒有給出非 macOS 的安裝同等路徑,不能據此承諾跨平臺工具鏈安裝。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記