Disponibile il rilascio del progetto Nuitka 1.1, che sviluppa un compilatore per la traduzione di script in Python in rappresentazioni in C, che possono poi essere compilate in un file eseguibile utilizzando libpython per garantire la massima compatibilità con CPython (utilizzando gli strumenti standard di CPython per la gestione degli oggetti). È garantita la piena compatibilità con le versioni attuali di Python 2.6, 2.7, 3.3 – 3.10. Rispetto a CPython, gli script compilati mostrano nei test pystone un aumento delle prestazioni del 335%. Il codice del progetto è distribuito sotto licenza Apache.
Tra le modifiche nella nuova versione:
- Ampliate le possibilità di configurazione nel formato Yaml.
- Sono state apportate ottimizzazioni relative all'esclusione di componenti non utilizzati della libreria standard (zoneinfo, concurrent, asyncio, ecc.), che hanno permesso di ridurre le dimensioni dei file eseguibili risultanti.
- Aggiunta la supporto per una sintassi alternativa («|») nelle corrispondenze basate sull'operatore «match», introdotto nella versione 3.10 di Python.
- Garantita compatibilità con jinja2.PackageLoader.
- Implementata la possibilità di modificare la dimensione dell'attributo __defaults__.
- Aggiunta la supporto per le funzioni importlib.metadata.distribution, importlib_metadata.distribution, importlib.metadata.metadata e importlib_metadata.metadata.
- Nel regime di compilazione in un unico file (Onefile) è stata aggiunta la possibilità di includere nel file eseguibile principale file binari aggiuntivi.
- Nei moduli compilati è possibile utilizzare la funzione importlib.resources.files.
- Nell'opzione «—include-package-data» è consentita l'indicazione di maschere di file, ad esempio, «—include-package-data=package_name=*.txt».
- Per macOS è stata implementata la supporto per la firma digitale dei file eseguibili.
- Per i plugin è fornito un metodo per sovrascrivere le funzioni per il file eseguibile.
- Ampliate le capacità del plugin anti-bloat, che ora può essere utilizzato per ridurre il numero di pacchetti quando si utilizzano le librerie rich, pyrect e pytorch. È stata implementata la possibilità di utilizzare espressioni regolari nelle regole di sostituzione.
- Eliminati i cambiamenti regressivi che sono stati il risultato di significative ottimizzazioni apportate nella precedente versione.
Fonte: opennet.ru
