
2026/08/19 1:23
Mojo がオープンソースになりました
RSS: https://news.ycombinator.com/rss
要約▶
日本語翻訳:
Mojo プログラミング言語は、LLVM に特定の例外を除き Apache 2.0 ライセンス下で正式に完全にオープンソース化されました。これは開発から4年目とバージョン1.0 のリリースを経て達成された大きなマイルストーンです。この移行により、モジュール化された GitHub リポジトリ(https://github.com/modular/modular.git)を通じて、コンパイラ全体、ツールチェーン、およびコードリポジトリがすべて公衆にアクセス可能になりました。以前は標準ライブラリなど一部の機能へのアクセスのみが可能で、クローズドなコンパイラに頼らなければなりましたが、今ではコンパイル全体のビルドプロセスを利用できるようになりました。Apache 2.0 ライセンスと LLVM の例外を組み合わせたことは、アプリケーションを開発する開発者やバイナリディストリビューションを作成する開発者のために柔軟性を確保しています。現在、コンパイラへの直接コントリビューションは受け入れておらず、年末までには開始されると予想されていますが、コミュニティはすでにフォーラムでコードの使用について議論に参加できます。ユーザーは Bazel コンフィグレーション(例:
./bazelw run --config=build-mojo KGEN:mojo)を使用してコンパイラをローカル環境でビルドするか、時間を節約するために --config=prebuilt-mojo フラグを使用してプリビルトのナイトリーバイナリをダウンロードできます。ただし、特殊な MAX カーネルのカスタマイズには引き続きプリビルトのコンパイラが必要です。この変化は、高度なユースケース向けの専門的なサポートパスウェイを維持しつつ、採用における障壁を大幅に低下させます。本文
Mojo: Apache 2.0 ライセンスでの完全オープンソース化発表
Modular らは、Mojo ランゲージを Apache 2.0 ライセンス(LLVM の除外条項付き)のもとで完全にオープンソース化することを嬉しくお知らせします。 モジュラー GitHub リポジトリには、Mojo コンパイラやツールキット、さらにランゲージ構築に必要な全コードが既に公開されています。
Mojo ランゲージ:大きな賭け
Mojo は、従来の言語を超えた革新的な汎用プログラミングランゲージです。最新のコンパイラ研究や言語理論の知見を取り入れ、GPU や AI アクセラレータ、先進的な計算資源の可能性を解放します。
- 歴史
- 過去 4 年間、開発はオープンなコミュニティの力を借りて進められていました。
- しかし、コンパイラ自体は閉鎖されていました。
- マイルストーン 1.0
- 先週、ソースコードの安定性を含むバージョン 1.0 を達成しました。
- オープンソース公開
- 今日から、コンパイラ全体とツールチェーンを正式にオープンソース化します。
Apache 2:許可型ライセンスの採用
Apache 2.0 ライセンスはプログラミング言語およびコンパイラ分野における**「ゴールドスタンダード」**です。
- 柔軟性: アプリケーション利用に対して大きな自由度を提供します。
- LLVM の拡張: このライセンスにより、Mojo からコンパイルされたバイナリの構築・配布がさらに自由になります。
- 目標: Mojo をあなたが想像できる限り多くのアプリケーションで導入・使用できるようにしたいと考えています。
オープンソース化の背景と意図
この取り組みは意図的な戦略です。
- 設計チーム: 小規模かつ密接に連携する体制こそが、言語の「魂」を見出すのに最適でした。
- コミュニティへの転換: より広いコミュニティからのフィードバックなしでは「エコーチェンバー(同質化)」から抜け出せないという教訓も学びました。
これを受け、以下の順次公開を行いました:
- Mojos の標準ライブラリのオープンソース化
- 数万行に及ぶ Mojo 記述によるカーネルコード、ツール、サポート機能のリリース
- コミュニティフィードバックとパブリックな設計提案を基にした開発継続
- 最終的にコンパイラの開源へ
Mojo が成熟するにつれて、このプロセスはさらに開放されてまいります。
コンパイラの入手と構築方法
Mojo ランゲージの全コードは、主となるモジュラー GitHub リポジトリで利用可能です。
1. ローカルにリポジトリをクローン
git clone https://github.com/modular/modular.git cd modular
2. ソースからコンパイラをビルドし実行
Bazel を使用することで、Mojo 標準ライブラリを含む必要なものをダウンロードまたは構築する単一のビルドコマンドが用意されています。Bazel は Mojo および MAX の複雑なビルドプロセスとキャッシュ管理も担当します。
./bazelw run --config=build-mojo KGEN:mojo -- run hello.mojo
注: フラグ
は、ビルドシステムにローカルソースコードからすべてを再構築することを指示します。--config=build-mojo
3. テストの実行
コンパイラまたはライブラリコードの改修後、フルスイートのテストを実行したい場合は以下のコマンドを使用してください:
./bazelw test --config=build-mojo mojo/stdlib/test/...
4. プリビルトバイナリの使用
コンパイラ開発を行わずに利用する場合、ビルド時間を節約するためにプリビルト版を使用できます。
- フラグ:
を指定します。--config=prebuilt-mojo - 動作: ビルドシステムが最新のナイタリー(Nightly)バイナリ配布を自動ダウンロードします。
- 注意点: MAX カーネルまたはモデルのカスタマイズを行う場合は、現時点ではプリビルトの Mojo コンパイラではなくソースからのビルドが必要です。
コントリビューションに関する事項
Mojo 標準ライブラリは 2024 年以来コントリビューションを受け付けており、言語の進化に貢献した皆様へ感謝申し上げます。
しかし、特に AI コーディングが主流となる今の時代において、コントリビューションの扱い方を慎重に検討する必要があります。そのため、コンパイラおよびツールへのコントリビューションはまだ受け入れていません。
今後の計画について:
- 今年末までに、コンパイラとツールへのコントリビューションを受け付けるよう目標としています。
- より詳細な情報は、準備が整った時点で共有いたします。
コミュニティへの呼びかけ
ソースコードを読みながらご質問や取り組みを共有したい場合は、ぜひ当社のフォーラムに参加してください。
- クローンしたソースコードを用いて何を作っているか教えてください!
- 世界中の方々と Mojos を一緒に育てていくことに大いに期待しております。