Mojo 語言開源發佈

Modular 已宣布 Mojo 編程語言現在已完全開源。此次發佈包含了 Mojo 編譯器、工具以及整個工具鏈的原始碼,全部託管在 modular GitHub 儲存庫中,並採用 Apache 2.0 授權(包含 LLVM 例外條款)。

開源策略與授權

Modular 採用了 Apache 2.0 授權,以在各種應用程式中提供 Mojo 的最大採用靈活性。加入 LLVM 擴展進一步促進了從 Mojo 編譯而成的二進位檔的分發。

向開源的轉型是一個分階段的方法,旨在保持設計完整性的同時納入社群回饋。Modular 的流程遵循以下階段:

  1. 標準函式庫: Mojo 標準函式庫首先開源。
  2. 核心代碼: 發佈了數十萬行以 Mojo 編寫的核心代碼、工具和支援。
  3. 編譯器: 在達成 Mojo 1.0 和原始碼穩定性後,發佈了完整的編譯器和工具鏈。

技術架構與語言特性

Mojo 被設計為一種通用系統語言,特別針對 AI 加速器、GPU 和進階運算進行了優化。社群成員和技術貢獻者強調了幾項關鍵的架構創新:

  • 記憶體管理: Mojo 利用線性類型(linear types)和來源系統(origin system)來實現安全的開發手動記憶體管理。這種方法允許高效能的指標使用,同時降低記憶體錯誤的風險。
  • 類型系統: 該語言具有一流的相依類型系統(dependent type system)和類似於 Zig 的 "comptime" 能力。
  • 所有權模型: Mojo 採用了與 Rust 模型相鄰的所有權系統來管理資源生命週期。
  • LLVM 整合: Mojo 以新穎的方式利用 LLVM,以實現更深層次的硬體層級優化。

從原始碼構建 Mojo 編譯器

開發者現在可以使用 Bazel 在本地構建 Mojo 編譯器。此過程需要複製 modular GitHub 儲存庫並執行特定的構建命令:

./bazelw run --config=build-mojo KGEN:mojo -- run hello.mojo

對於那些不修改編譯器本身的人,可以使用 --config=prebuilt-mojo 旗標來下載最新的 nightly 二進位檔分發版本,以節省編譯時間。要測試 Mojo 標準函式庫或編譯器修改,請使用以下命令:

./bazelw test --config=build-mojo mojo/stdlib/test/...

貢獻指南

雖然原始碼是在寬鬆的授權下提供的,但 Modular 目前尚未接受對編譯器和工具的上游貢獻。該公司目標是在 2026 年底前開始接受貢獻。此限制旨在維持一個緊密的設計團隊,並保護專案免受低品質或 AI 生成的貢獻。

社群觀點

業界觀察家和開發者注意到了此舉的戰略意義,特別是在 Qualcomm 在 2026 年 7 月收購 Modular 之後。

"這是 Qualcomm 將其互補產品商品化的一個案例嗎?Mojo 是否具有顛覆 Nvidia 目前市場地位的潛力?"

其他開發者強調,編譯器之前的閉源性質曾是進入門檻的一大障礙,而工具鏈的開源將有望增加在先前忽略該語言的系統工程師中的採用率。

Sources

相關

  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch
  • 專案