Mojo 语言开源发布
Modular 宣布 Mojo 编程语言现已完全开源。此次发布包括 Mojo 编译器、工具以及整个工具链的源代码,全部托管在 modular GitHub 仓库中,并采用 Apache 2.0 许可证(包含 LLVM 例외)。
开源策略与许可
Modular 采用了 Apache 2.0 许可证,旨在为 Mojo 在各种应用中的采用提供最大的灵活性。LLVM 扩展的加入进一步促进了由 Mojo 编译的二进制文件的分发。
向开源的过渡是一个分阶段进行的过程,旨在保持设计完整性的同时纳入社区反馈。Modular 的流程遵循以下阶段:
- 标准库: Mojo 标准库首先开源。
- 内核代码: 发布了数十万行由 Mojo 编写的内核代码、工具和支持。
- 编译器: 在实现 Mojo 1.0 和源代码稳定性之后,发布了完整的编译器和工具链。
技术架构与语言特性
Mojo 被设计为一种通用的系统级语言,专门针对 AI 加速器、GPU 和高级计算进行了优化。社区成员和技术贡献者强调了几项关键的架构创新:
- 内存管理: Mojo 利用线性类型和起源系统(origin 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
- 项目