Codon, un nuovo compilatore Python ad alte prestazioni 

codone

Codon è un compilatore Python ad alte prestazioni che compila il codice Python in codice macchina nativo.

Recentemente il avvio Exaloop svelato attraverso un tweet il rilascio del codice del progetto codone, chi sviluppa a compilatore per il linguaggio Python che può generare codice macchina puro come output, non legato al runtime Python.

Il compilatore è sviluppato dagli autori del linguaggio Seq simile a Python ed è posizionato come una continuazione del suo sviluppo. Il progetto anche offre il proprio runtime per i file eseguibili e una libreria di funzioni che sostituisce le chiamate di libreria nel linguaggio Python.

A proposito di Codone

Prestazione degli eseguibili di output È promosso come vicino ai programmi scritti nel linguaggio C. Rispetto all'utilizzo di CPython, il miglioramento delle prestazioni durante la compilazione con Codon è stimato in 10-100 volte per l'esecuzione a thread singolo. Allo stesso tempo, a differenza di Python, Codon implementa inoltre la possibilità di utilizzare il multithreading, che consente di ottenere un aumento ancora maggiore delle prestazioni. codone consente inoltre di compilare a livello di funzione per usare la vista compilata nei progetti Python esistenti.

codone è costruito utilizzando un'architettura modulare che consente di estendere le funzionalità tramite plug-in che possono aggiungere nuove librerie, implementare ottimizzazioni del compilatore e persino fornire supporto per sintassi aggiuntiva.

Ad esempio, diversi plugin vengono sviluppati in parallelo per l'uso in bioinformatica e matematica finanziaria. Il Garbage Collector di Boehm viene utilizzato per la gestione della memoria.

il compilatore supporta la maggior parte della sintassi Python, ma la compilazione in codice nativo impone una serie di limitazioni che impediscono l'utilizzo di Codon come sostituto trasparente di CPython. Ad esempio, Codon utilizza il tipo int a 64 bit per i numeri interi, mentre CPython ha numeri interi illimitati.

Il supporto del codone per basi di codice di grandi dimensioni può richiedere modifiche al codice. Le incompatibilità sono in genere causate dalla mancanza di implementazione Codon di alcuni moduli Python e dall'impossibilità di utilizzare alcune delle funzionalità dinamiche del linguaggio. Per ciascuna di queste incompatibilità, il compilatore emette un messaggio diagnostico dettagliato con informazioni su come risolvere il problema.

Il codice sorgente del compilatore, del runtime e della libreria standard è scritto con C++ (utilizzando gli sviluppi LLVM) e Python, e è distribuito con licenza BSL (Licenza sorgente commerciale). L'essenza di BSL è che il codice della funzionalità estesa è inizialmente disponibile per la modifica, ma per qualche tempo può essere utilizzato gratuitamente solo a condizioni aggiuntive, che richiedono l'acquisto di una licenza commerciale per bypassare.

I termini di licenza aggiuntivi del progetto Codon richiedono che il codice venga trasferito alla licenza Apache 2.0 dopo 3 anni (1 novembre 2025). Fino ad allora, la licenza consente la copia, la distribuzione e la modifica, purché venga utilizzata per scopi non commerciali.

Come installare Codon su Linux?

Per coloro che sono interessati a poter installare questo compilatore, dovrebbero sapere che possono farlo abbastanza facilmente, basta aprire un terminale ed eseguire il seguente comando che scaricherà e installerà lo script di installazione:

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

Per quanto riguarda coloro che sono interessati a poter compilare da soli, possono farlo eseguendo i seguenti comandi:

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

Successivamente, procedono a costruire con:

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

finalee vi lascio il seguente link dove potete consultare di più sui dettagli della compilazione e dove puoi trovare maggiori informazioni sull'uso di questo compilatore (manuale, esempi, funzioni, tra le altre cose).

Il collegamento è questo.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.