Liberazione di Nuitka 2.0, un compilatore per a lingua Python

Una liberazione di u prughjettu Nuitka 2.0 hè dispunibule, sviluppatu un compilatore per a traduzzione di script Python in una rapprisintazioni C, chì pò esse compilatu in un schedariu eseguibile cù libpython per a massima cumpatibilità cù CPython (usendu strumenti CPython nativi per manipulà l'uggetti). Fornitu cumpatibilità cumpleta cù e versioni attuali di Python 2.6, 2.7, 3.3 - 3.11. Comparatu à CPython, i scripts compilati mostranu una mellura di rendimentu di 335% in teste di pistone. U codice di u prugettu hè distribuitu sottu a licenza Apache.

Trà i cambiamenti in a nova versione:

  • Aggiunta a capacità di utilizà variabili in a cunfigurazione di u pacchettu, chì vi permette di interrogà i valori da i pacchetti installati in tempu di compilazione è aduprà quelli valori per definisce u backend. U supportu per variàbili in a cunfigurazione permette di risolve parechje attività in modu standard chì prima necessitava plugins di cunnessione.
  • Aghjunghje supportu per i paràmetri definiti da l'utilizatori per influenzà a cunfigurazione di ogni pacchettu. I paràmetri ponu esse leghje cù a nova funzione get_parameter è utilizatu per selezziunà u cumpurtamentu di i moduli (per esempiu, pudete stabilisce un paràmetru per disattivà Numba JIT o Torch JIT).
  • Opzione aghjunta "--include-onefile-external-data" per specificà mudelli di schedarii di dati chì sò definiti in a cunfigurazione, ma devenu esse furniti separatamente da u schedariu eseguibile quandu si custruisce in modu onefile.
  • Aggiunta l'opzione "--cf-protection" per stabilisce u modu di prutezzione CFI (Control Flow Integrity) in GCC, chì impedisce e violazioni di l'ordine di esecuzione normale (flussu di cuntrollu).
  • Per i schedarii di plugin yaml, l'abilità di creà checksums per i cuntrolli di integrità hè stata implementata, chì in u futuru pensanu à aduprà per urganizà a verificazione di run-time.
  • L'azzioni permette parechje opzioni per esse specificate, siparate da linee (una nova linea hè aduprata cum'è delimitatore). Per esempiu: include-data-dir: | a=bc=d
  • Un analisi di i tipi di loop hè statu implementatu, chì serà utilizatu in u futuru per implementà ottimisazioni selettivi.
  • Ottimisazioni aghjunte per accelerà u travagliu cù variabili micca spartuti è scappati.
  • E capacità di u plugin anti-bloat sò state allargate, chì ponu avà esse aduprate per riduce u nùmeru di pacchetti quandu si usanu e librerie streamlit, torch, knetworkx, distributed, skimage, bitsandbytes, tf_keras, pip, networkx è pywt (in fondu, vincolante). à pytest, IPython, nasu, triton hè esclusu è dask).

Source: opennet.ru

Add a comment