Pyston ritorna dalla morte per accelerare Python

Lo sviluppo di Pyston, una variante del runtime Python che utilizza la compilazione just-in-time per velocizzare l'esecuzione dei programmi Python, è tornato dopo un lungo periodo di limbo. Riprendendo da dove Dropbox si era interrotto, un nuovo team di sviluppo ha rilasciato Pyston 2.0.

Pyston fornisce quello che in definitiva è destinato a essere un sostituto immediato per il runtime Python standard, CPython. È compatibile con Python 3.8, quindi i programmi che vengono eseguiti con quella versione di Python dovrebbero essere eseguiti così come sono su Pyston.

Pyston esegue la generazione di codice utilizzando la compilazione just-in-time, o JITting, per ottenere molte delle sue accelerazioni. I programmi Pure-Python mostrano i maggiori miglioramenti, mentre i programmi che utilizzano moduli C / C ++ per un'esecuzione più rapida, come PyTorch, mostrano meno o nessuno.

Uno degli obiettivi del progetto era rimanere il più vicino possibile all'implementazione originale di CPython, poiché molti progetti di terze parti fanno ipotesi sul comportamento di CPython. Così Pyston 2.0 è iniziato con la base di codice CPython esistente e ha aggiunto funzionalità da Pyston 1.0 che hanno funzionato bene, come gli attributi di cache e JITting. Il JIT di Pyston non utilizza più LLVM, ma DynASM per emettere l'assembly direttamente.

JITting è la stessa tecnica utilizzata da un altro progetto, PyPy, per fornire maggiori accelerazioni alle applicazioni Python - in alcuni casi, sette volte ciò che CPython può offrire. Tuttavia, i creatori di Pyston affermano che il loro approccio presenta diversi vantaggi rispetto a PyPy, inclusa una migliore compatibilità con l'API C di CPython e un consumo di memoria inferiore per carichi di lavoro comuni (ad esempio Flask e DjangoCMS).

Creato su Dropbox, Pyston ha cessato lo sviluppo nel 2017 quando Dropbox ha ritirato il supporto. Ora il progetto sta proseguendo sotto la cura di alcuni dei suoi sviluppatori originali, anche se in modo indipendente.

"All'inizio del 2020", afferma il blog ufficiale di Pyston, "avevamo a disposizione abbastanza pezzi per avviare una società e lavorare su Pyston a tempo pieno". Tuttavia, a differenza dell'incarnazione originale di Pyston, la nuova versione per il momento è closed source, poiché i suoi nuovi amministratori determinano il loro modello di business. Il codice sorgente disponibile sul GitHub del progetto sembra provenire dalla sua precedente incarnazione, non dalla versione più recente.

I binari precompilati di Pyston sono disponibili per Ubuntu 18.04 e Ubuntu 20.04 x86_64. Il team di sviluppo è disposto a creare altre edizioni in base al feedback degli utenti.