← 文章 / 开源项目
Hacker News 17小时前 · 2026-08-21 14:50:11 · 7 阅读

Mojo 正式开源

我们很高兴地宣布,Mojo🔥 语言现已根据 Apache 2.0 许可证(附带 LLVM 例外条款) 完全开源!Mojo 编译器、工具以及构建该语言所需的一切源代码现已发布在 我们的 modular GitHub 仓库 中。

Mojo 语言是一项大胆的豪赌:一种超越旧语言的全新通用编程语言。Mojo 整合了最新的编译器和编程语言研究成果,旨在释放 GPU、AI 加速器及其他先进计算能力。在过去四年里,Mojo 虽由开放社区开发,但编译器一直保持封闭。上周 Mojo 达到 1.0 版本(实现了源码稳定性),今天我们很兴奋地开源了整个编译器和工具链。

Apache 2:一种宽松的许可证

Apache 2.0 许可证是编程语言和编译器的黄金标准,因为它为在各种应用中使用提供了极大的灵活性。许可证中的 LLVM 例外条款进一步扩展了构建和分发 Mojo 编译二进制文件的自由。我们希望您能够尽可能多的应用场景中采用和使用 Mojo。

我们的开源策略是有意为之——我们发现,由小而紧密的设计团队(而非委员会)来把握一门语言的"灵魂"效果最佳,但同时也需要更广泛社区的反馈,才能走出信息茧房。因此,我们先开源了 Mojo 标准库,随后又发布了用 Mojo 编写的数十万行 kernel 代码、相关工具和配套支持。我们结合社区反馈和公开的设计提案协同推进,如今终于将编译器也开源了。随着 Mojo 不断成熟,我们会继续把更多流程开放出来。

如何获取和构建编译器

Mojo 语言的全部代码现已托管在 modular GitHub 仓库。首先,在本地克隆该仓库:

git clone https://github.com/modular/modular.git

cd modular

然后,只需一条构建命令,就可以从源码编译 Mojo 编译器并运行一个 Mojo 文件:

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

在 Modular,我们使用 Bazel 来管理 Mojo 和 MAX 复杂的构建流程与缓存。这条命令会自动下载或编译构建 Mojo 编译器和标准库所需的全部内容。其中 --config=build-mojo 参数告诉构建系统完全从本地源码开始编译。

这也适用于对 Mojo 标准库的开发:你可以修改编译器或标准库的代码,并通过以下命令运行完整的测试套件:

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

如果你并非在修改编译器本身,可以使用 --config=prebuilt-mojo 参数,构建系统会自动下载最新的 nightly 预编译版本,从而节省编译时间。需要注意的是,如果你要定制 MAX kernel 或模型,目前仍然需要使用预编译版的 Mojo 编译器。

贡献

自 2024 年起,Mojo 标准库便开始接受贡献,我们感谢所有为推动语言发展付出的努力。在当今 AI 编码盛行的时代,我们深刻认识到必须审慎对待贡献方式。因此,目前暂不接受编译器和工具链的贡献。我们计划于今年年底前开放编译器和工具链的接收,届时会公布更多细节。 阅读源码时如有疑问,或想分享你的项目进展,请加入我们的 论坛。克隆源码,并告诉我们你正在用 Mojo 构建什么。我们很高兴向世界开放 Mojo,期待见证它的成长!
原始来源: Hacker News

评论 (0)