我们很高兴地宣布,Mojo🔥 语言现已完全开源,以下平台 Apache 2.0许可证(LLVM例外)!Mojo编译器的源代码、工具以及构建语言所需的一切内容现在都已提供 我们的 modular GitHub仓库.
Mojo语言是一个大胆的赌注:一种新颖的通用编程语言,比旧语言更进一步。Mojo整合了最新的编译器和编程语言研究,解锁了GPU、AI加速器及其他先进计算技术。在过去四年里,Mojo 的开发是一个开放社区,但编译器是封闭的。上周 魔力达到1.0 (并且源代码稳定),今天我们很高兴开源整个编译器和工具链。
Apache 2:宽松许可
Apache 2.0 许可证是编程语言和编译器的黄金标准,因为它提供了极大的灵活性,适用于各种应用。LLVM对许可证的扩展进一步扩大了构建和分发从Mojo编译的二进制文件的自由度。我们希望你能够在尽可能多的应用中采用并使用 Mojo。
我们的开源方法是刻意为之:我们发现小型且紧密团结的设计团队(而非委员会)是寻找语言“灵魂”的最佳方式,但来自更广泛社区的反馈对于避免回音室至关重要。因此,我们首先开源了 Mojo 标准库随后发布 数十万行用 Mojo 编写的内核代码、工具和支持。我们共同开发了社区反馈和公开设计提案,现在正在开源编译器。随着 Mojo 不断成熟,我们将继续进一步开放流程。
如何获得并构建编译器
所有 Mojo 语言的代码现已在主线上提供 modular GitHub仓库.首先,在本地克隆该仓库:
bash
git clone https://github.com/modular/modular.git
cd modular
收到
然后,要从源码构建 Mojo 编译器并对 Mojo 文件运行,可以使用一个构建命令:
bash
./bazelw run --config=build-mojo KGEN:mojo -- run hello.mojo
收到
在模块化,我们使用 Bazel 管理 Mojo 和 MAX 复杂的构建流程和缓存。这个命令可以下载或构建所有构建 Mojo 编译器和 Mojo 标准库所需的一切。旗帜 --config=build-mojo 它告诉构建系统从零开始编译所有内容,使用你本地系统的源代码。
这也适用于使用 Mojo 标准库,你可以修改编译器或库代码,并通过以下方式运行完整的测试套件:
bash
./bazelw test --config=build-mojo mojo/stdlib/test/...
收到
如果你不在编译器本身工作,可以使用该旗帜 --config=prebuilt-mojo 构建系统会下载编译器最新的每晚二进制版本,节省编译时间。请注意,如果你在定制 MAX 内核或模型,预构建的 Mojo 编译器仍然是必需的。
贡献
Mojo标准图书馆自2024年起开始接受投稿,我们感谢所有帮助推动语言发展的人。一个教训(尤其是在当今AI编码时代)是,我们需要有意识地处理贡献。因此,我们还不准备接受对编译器和工具的贡献。我们计划在今年年底前接受对编译器和工具的贡献,届时会分享更多细节。