Mojo 言語のオープンソースリリース
Modular は、Mojo プログラミング言語が完全にオープンソースになったことを発表しました。このリリースには、Mojo コンパイラ、ツール、およびツールチェーン全体のソースコードが含まれており、すべて modular GitHub リポジトリにて Apache 2.0 ライセンス(LLVM 例外を含む)の下でホストされています。
オープンソース戦略とライセンス
Modular は、多様なアプリケーションにおける Mojo の採用を最大限に柔軟にするため、Apache 2.0 ライセンスを採用しました。LLVM 拡張の追加により、Mojo からコンパイルされたバイナリの配布がさらに容易になります。
オープンソースへの移行は、設計の完全性を維持しながらコミュニティのフィードバックを取り入れるために設計された段階的なアプローチでした。Modular のプロセスは以下の段階に従いました:
- 標準ライブラリ: Mojo 標準ライブラリが最初にオープンソース化されました。
- カーネルコード: Mojo で書かれた数十万行のカーネルコード、ツール、およびサポートがリリースされました。
- コンパイラ: Mojo 1.0 の達成とソースの安定化を受けて、完全なコンパイラとツールチェーンがリリースされました。
技術アーキテクチャと言語機能
Mojo は、AI アクセラレータ、GPU、および高度な計算に特化して最適化された汎用システム言語として設計されています。コミュニティメンバーや技術的な貢献者は、いくつかの主要なアーキテクチャ上の革新を強調しています:
- メモリ管理: Mojo は、線形型(linear types)とオリジンシステムを利用して、安全な手動メモリ管理を実装しています。このアプローチにより、メモリエラーのリスクを軽減しながら、高性能なポインタの使用が可能になります。
- 型システム: この言語は、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 生成の貢献から保護することを目的としています。
コミュニティの視点
業界の観察者や開発者は、この動きの戦略的な意味合いに注目しています。特に、2026 年 7 月の Qualcomm による Modular の買収に続いて、この動きが注目されています。
"Is this a case of Qualcomm commoditizing their complements? Does Mojo have a potential for disrupting Nvidia's current market position?"
他の開発者は、コンパイラがクローズドソースであったことが以前は大きな参入障壁であったと強調しており、ツールチェーンのオープンソース化は、これまでこの言語を無視してきたシステムエンジニアの間での採用を導入させると期待されています。
Sources
関連
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- プロジェクト