Gli sviluppatori del progetto Pyston, che offre un'implementazione ad alte prestazioni del linguaggio Python utilizzando tecnologie moderne di compilazione JIT, hanno presentato la nuova versione Pyston 2.2 e annunciato il ritorno del progetto tra i progetti open source. L'implementazione mira a raggiungere prestazioni elevate, simili a quelle dei tradizionali linguaggi di sistema come il C++. Il codice della branch Pyston 2 è pubblicato su GitHub con licenza PSFL (Python Software Foundation License), simile alla licenza di CPython.
Ricordiamo che in precedenza il progetto Pyston era stato curato da Dropbox, che nel 2017 ha interrotto il finanziamento dello sviluppo. Gli sviluppatori di Pyston hanno fondato la propria azienda e hanno rilasciato una versione sostanzialmente rivisitata di Pyston 2, che è stata dichiarata stabile e pronta per un uso esteso. Tuttavia, gli sviluppatori hanno smesso di pubblicare i codici sorgenti e sono passati a fornire solo build binarie. Ora Pyston è stato deciso di renderlo nuovamente un progetto open source, mentre l'azienda passerà a un modello di business legato allo sviluppo di software open source. Inoltre, si sta considerando la possibilità di trasferire le ottimizzazioni da Pyston a CPython.
Si segnala che Pyston 2.2 nei test di performance, che valutano i carichi tipici delle applicazioni per web server, è più veloce del Python standard del 30%. Si osserva anche un notevole incremento delle performance di Pyston 2.2 rispetto alle versioni precedenti, ottenuto principalmente grazie all'aggiunta di ottimizzazioni per nuove aree, oltre al perfezionamento del JIT e dei meccanismi di caching.
Oltre all'ottimizzazione delle prestazioni, la nuova versione si distingue anche per il trasferimento delle modifiche dalla branch CPython 3.8.8. In termini di compatibilità con il Python standard, il progetto Pyston si presenta come l'alternativa più compatibile a CPython, poiché Pyston è un fork della base di codice principale di CPython. In Pyston sono supportate tutte le funzionalità di CPython, inclusa l'API C per lo sviluppo di estensioni in linguaggio C. Tra le principali differenze tra Pyston e CPython spiccano l'uso di DynASM JIT, il caching inline e ottimizzazioni generali.
Tra le modifiche in Pyston 2.2 si menziona anche la pulizia della base di codice da molte funzionalità di debug di CPython, che influenzano negativamente le prestazioni, ma sono quasi mai utilizzate dagli sviluppatori. Viene riportata una statistica secondo cui la rimozione degli strumenti di debug porta a un'accelerazione delle performance del 2%, mentre solo circa il 2% degli sviluppatori utilizza tali funzionalità.
Fonte: opennet.ru
