Es publica Codon, un compilador de Python

La startup Exaloop ha publicat el codi del projecte Codon, que desenvolupa un compilador per al llenguatge Python capaç de generar codi màquina pur com a sortida, no vinculat al temps d'execució de Python. El compilador està sent desenvolupat pels autors del llenguatge semblant a Python Seq i es posiciona com a continuació del seu desenvolupament. El projecte també ofereix el seu propi temps d'execució per a fitxers executables i una biblioteca de funcions que substitueix les trucades de biblioteca a Python. Els codis font del compilador, el temps d'execució i la biblioteca estàndard s'escriuen amb C++ (utilitzant desenvolupaments de LLVM) i Python, i es distribueixen sota la BSL (Business Source License).

La llicència BSL va ser proposada pels cofundadors de MySQL com una alternativa al model Open Core. L'essència de BSL és que el codi de funcionalitat avançada està inicialment disponible per a la modificació, però durant algun temps només es pot utilitzar gratuïtament si es compleixen condicions addicionals, que requereixen la compra d'una llicència comercial per evitar-la. Els termes de llicència addicionals del projecte Codon requereixen que el codi es transfereixi a la llicència Apache 2.0 després de 3 anys (1 de novembre de 2025). Fins a aquest moment, la llicència permet la còpia, distribució i modificació, sempre que s'utilitzi amb finalitats no comercials.

El rendiment dels fitxers executables de sortida es presenta a prop dels programes escrits en llenguatge C. En comparació amb l'ús de CPython, el guany de rendiment quan es compila amb Codon s'estima entre 10 i 100 vegades per a l'execució d'un sol fil. A més, a diferència de Python, Codon també implementa la capacitat d'utilitzar multithreading, que permet un augment encara més gran del rendiment. Codon també us permet compilar a nivell de funció individual per utilitzar la representació compilada en projectes Python existents.

Codon es construeix mitjançant una arquitectura modular que us permet augmentar la funcionalitat mitjançant complements, amb els quals podeu afegir biblioteques noves, implementar optimitzacions al compilador i fins i tot proporcionar suport per a una sintaxi addicional. Per exemple, s'estan desenvolupant diversos connectors en paral·lel per utilitzar-los en bioinformàtica i matemàtiques financeres. El col·lector d'escombraries de Boehm s'utilitza per gestionar la memòria.

El compilador admet la majoria de la sintaxi de Python, però la compilació al codi màquina imposa una sèrie de limitacions que impedeixen que Codon s'utilitzi com a substitut transparent de CPython. Per exemple, Codon utilitza el tipus int de 64 bits per a nombres enters, mentre que CPython utilitza una mida il·limitada per a nombres enters. Les bases de codi grans poden requerir canvis de codi per aconseguir la compatibilitat amb Codon. Per regla general, les incompatibilitats són causades per la manca d'implementació per a Codon de determinats mòduls de Python i la incapacitat d'utilitzar algunes característiques dinàmiques del llenguatge. Per a cadascuna d'aquestes incompatibilitats, el compilador emet un missatge de diagnòstic detallat amb informació sobre com evitar el problema.

Es publica Codon, un compilador de Python


Font: opennet.ru

Afegeix comentari