Python 编译器 Codon 发布

初创公司 Exaloop 发布了 Codon 项目的代码,该项目开发了一个 Python 语言编译器,能够生成纯机器代码作为输出,而不依赖于 Python 运行时。 该编译器由类Python语言Seq的作者开发,定位为其开发的延续。 该项目还提供了自己的可执行文件运行时和函数库,以取代 Python 中的库调用。 编译器、运行时和标准库的源代码是使用 C++(使用 LLVM 的开发)和 Python 编写的,并根据 BSL(商业源代码许可证)分发。

BSL 许可证是由 MySQL 联合创始人提出的,作为 Open Core 模型的替代方案。 BSL的本质是高级功能的代码最初是可以修改的,但在一段时间内只有满足附加条件才可以免费使用,而这需要购买商业许可证才能规避。 Codon 项目的附加许可条款要求在 2.0 年后(3 年 1 月 2025 日)将代码转移到 Apache XNUMX 许可。 在此之前,该许可证允许复制、分发和修改,前提是用于非商业目的。

输出可执行文件的性能接近于用 C 语言编写的程序。 与使用 CPython 相比,使用 Codon 编译时单线程执行的性能增益估计为 10-100 倍。 此外,与 Python 不同的是,Codon 还实现了使用多线程的功能,这使得性能得到了更大的提高。 Codon 还允许您在单个函数级别进行编译,以便在现有 Python 项目中使用编译后的表示形式。

Codon 使用模块化架构构建,允许您通过插件增加功能,通过插件您可以添加新库、在编译器中实现优化,甚至提供对其他语法的支持。 例如,正在并行开发几个用于生物信息学和金融数学的插件。 Boehm 垃圾收集器用于管理内存。

该编译器支持大多数 Python 语法,但编译为机器代码会带来许多限制,导致 Codon 无法用作 CPython 的透明替代品。 例如,Codon 对整数使用 64 位 int 类型,而 CPython 对整数使用无限大小。 大型代码库可能需要更改代码才能实现 Codon 兼容性。 通常,不兼容是由于某些 Python 模块缺乏 Codon 实现以及无法使用该语言的某些动态功能而导致的。 对于每个此类不兼容性,编译器都会发出详细的诊断消息,其中包含有关如何规避该问题的信息。

Python 编译器 Codon 发布


来源: opennet.ru

添加评论