Codon, un nou compilador Python d'alt rendiment 

codó

Codon és un compilador de Python d'alt rendiment que compila codi de Python a codi de màquina nadiu

Fa poc la startup Exaloop va donar a conèixer mitjançant un tweet el llançament del codi del projecte Codon, que desenvolupa un compilador per al llenguatge Python que pot generar codi de màquina pur com a sortida, no vinculat al temps dexecució de Python.

El compilador és desenvolupat pels autors del llenguatge Seq similar a Python i es posiciona com una continuació del seu desenvolupament. El projecte també ofereix el seu propi temps dexecució per a arxius executables i una biblioteca de funcions que reemplaça les trucades a la biblioteca al llenguatge Python.

Sobre Codon

el rendiment dels executables de sortida es promociona com a proper als programes escrits en llenguatge C. En comparació amb l'ús de CPython, s'estima que el guany de rendiment en compilar amb Codon és de 10 a 100 vegades per a l'execució d'un sol subprocés. Alhora, a diferència de Python, Codon implementa addicionalment la possibilitat d'utilitzar subprocessos múltiples, cosa que li permet aconseguir un augment encara més gran en el rendiment. Codon també permet compilar a nivell de funció per utilitzar la vista compilada en projectes de Python existents.

Codó està construït utilitzant una arquitectura modular que us permet ampliar la funcionalitat a través de complements que poden afegir noves biblioteques, implementar optimitzacions del compilador i fins i tot brindar suport per a sintaxi addicional.

Per exemple, s'estan desenvolupant diversos complements en paral·lel per utilitzar-los en bioinformàtica i matemàtiques financeres. El recol·lector d'escombraries Boehm s'utilitza per a la gestió de la memòria.

El compilador és compatible amb la majoria de la sintaxi de Python, però la compilació en codi nadiu imposa una sèrie de limitacions que impedeixen que Codon es faci servir com un reemplaçament transparent per a CPython. Per exemple, Codon utilitza el tipus int de 64 bits per a nombres enters, mentre que CPython té nombres enters il·limitats.

La compatibilitat de Codon per a bases de codi grans pot requerir canvis al codi. En general, les incompatibilitats són causades per la manca d'implementació de Codon de certs mòduls de Python i la incapacitat de fer servir algunes de les funcions dinàmiques del llenguatge. Per a cadascuna d'aquestes incompatibilitats, el compilador emet un missatge de diagnòstic detallat amb informació sobre com solucionar el problema.

El codi font del compilador, el temps d'execució i la biblioteca estàndard s'escriu amb C++ (usant desenvolupaments de LLVM) i Python, i es distribueix sota la llicència BSL (Business Source License). L'essència de BSL és que el codi de funcionalitat estesa inicialment està disponible per a modificació, però durant algun temps es pot fer servir de forma gratuïta només subjecte a condicions addicionals, que requereixen la compra d'una llicència comercial per eludir.

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 aleshores, la llicència permet la còpia, distribució i modificació, sempre que s'utilitzi amb fins no comercials.

Com instal·lar Codon a Linux?

Per als interessats en poder instal·lar aquest compilador, han de saber que poden fer-ho d'una manera força senzilla, només n'hi ha prou amb obrir una terminal i executar la següent ordre que descarregués i instal·lar l'script d'instal·lació:

/bin/bash -c "$(curl -fsSL https://exaloop.io/install.sh)"

Quant als interessats en poder realitzar la compilació pel seu compte, poden fer-ho executant les ordres següents:

git clone --depth 1 -b codon https://github.com/exaloop/llvm-project
cmake -S llvm-project/llvm -B llvm-project/build -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_INCLUDE_TESTS=OFF \
-DLLVM_ENABLE_RTTI=ON \
-DLLVM_ENABLE_ZLIB=OFF \
-DLLVM_ENABLE_TERMINFO=OFF \
-DLLVM_TARGETS_TO_BUILD=all
cmake --build llvm-project/build
cmake --install llvm-project/build

Posterior a això procedeixen a construir amb:

cmake -S . -B build -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_DIR=$(llvm-config --cmakedir) \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++
cmake --build build --config Release

Finalmenti et deixo el següent enllaç on pots consultar més sobre els detalls de la compilació així com també on podreu trobar més informació sobre l'ús d'aquest compilador (manual, exemples, funcions, entre d'altres coses més).

L'enllaç és aquest.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.