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 有無限的整數。 大型代碼庫的密碼子兼容性可能需要更改代碼。 通常,不兼容是由於某些 Python 模塊的 Codon 缺乏實現以及無法使用該語言的某些動態功能造成的。 對於每個此類不兼容性,編譯器都會發出詳細的診斷消息,其中包含有關如何解決該問題的信息。

Python 編譯器 Codon 發布


來源: opennet.ru

添加評論