打开Mojo语言标准库。 Mojo 工具包 24.2 更新

Mojo 编程语言的开发人员已开始将该项目的开发成果转换为开源软件。第一个开源的是标准库代码,现在可以在 Apache 2.0 许可证下使用,但 LLVM 项目的例外情况允许与 GPLv2 许可证下的代码混合。除了发布代码之外,开发过程还转向开放性以及通过向 GitHub 提交拉取请求来传达第三方更改的能力。编译器源代码计划在内部架构设计完成后开放。

该存储库有两个带有 Mojo 标准库代码的分支:主分支,与 Mojo 的最新稳定版本同步;夜间分支,反映当前的开发流程并与 Mojo 的夜间构建同步。鼓励希望加入开发并分享其更改的参与者使用夜间分支。同时,一些库模块尚未开放,但一段时间后,剩余的封闭代码也计划移至开放存储库。需要额外稳定性的快速开发模块、计划重构的模块以及由于与专有项目的连接而需要额外审查和返工的模块的代码仍然关闭。

同时,Mojo SDK 24.2 和 MAX Engine 24.2 也相继发布。Mojo SDK 支持在本地系统上编译项目,MAX Engine 则提供了一个机器学习开发平台。Mojo SDK 包含使用 Mojo 语言开发应用程序所需的组件,包括编译器、运行时环境、用于构建和运行程序的交互式 REPL shell、调试器、支持输入自动完成、代码格式化和语法高亮的 Visual Studio Code (VS Code) 代码编辑器插件,以及用于构建和运行 Mojo notebook 的 Jupyter 集成模块。MAX Engine 则为 SDK 提供了补充,其中包含用于开发和调试使用各种格式(TensorFlow、PyTorch、ONNX 等)机器学习模型的应用程序的工具。Mojo SDK 和 MAX Engine 的构建版本均已针对该平台进行了优化。 Linux и macOS.

Mojo 24.2 中一些最显着的变化包括:

  • 结构和其他名义类型现在可以隐式映射到特征。例如,隐式实现 __str__() 方法的任何结构都对应于 Stringable 特征,并且可以与 str() 函数一起使用。
  • Python 兼容性工具添加了对将基于关键字的参数传递给 Python 函数的支持。例如,“plt.plot((5, 10), (10, 15), color=”红色”)”
  • 添加了对将可变数量的参数传递给函数(通过关键字分配指定)的支持。例如,“print_nicely(a=7, y=8)”。
  • DynamicVector 类型已重命名为 List 并移至 collections.list 模块。添加了基于任意数量的值生成列表的功能,例如“varnumbers = List[Int](1)”。
  • print() 函数中添加了命名参数 sep 和 end,通过它们可以设置分隔符和最终输出值。例如,执行 print("Hello", "Mojo", sep=", ", end="!!!\n") 将导致输出“prints Hello, Mojo!!!”。

Mojo 项目由 LLVM 项目的创始人兼首席架构师、Swift 编程语言的创建者 Chris Lattner 领导。 Mojo的语法基于Python语言,类型系统接近C/C++。该项目被誉为一种通用语言,它通过系统编程能力扩展了Python的功能,适用于广泛的任务,并将研究开发和快速原型设计的易用性与高性能最终产品的适用性结合起来。

通过使用熟悉的 Python 语法实现了简单性,并且通过编译为机器代码的能力、内存安全机制以及使用硬件加速工具来促进最终产品的开发。为了实现高性能,使用系统中可用的异构系统的所有硬件资源(例如 GPU、机器学习专用加速器和矢量处理器指令 (SIMD))支持计算并行化。对于密集计算,并行化和利用所有计算资源可以实现优于 C/C++ 应用程序的性能。

该语言支持静态类型和类似于 Rust 的低级内存安全功能,例如引用生命周期跟踪和借用检查器。同时,该语言还提供了低级工作的机会,例如可以使用Pointer类型在不安全模式下直接访问内存,调用单独的SIMD指令,或者访问TensorCores和AMX等硬件扩展。

Mojo 既可以在使用 JIT 的解释模式下使用,也可以编译为可执行文件(AOT,提前)。该编译器内置了自动优化、缓存和分布式编译的现代技术。 Mojo 语言的源代码被转换为由 LLVM 项目开发的低级中间代码 MLIR(多级中间表示)。编译器允许您使用支持 MLIR 的各种后端来生成机器代码。

来源: opennet.ru

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster