Utgivelse av Nuitka 2.0, en kompilator for Python-språket

En utgivelse av Nuitka 2.0-prosjektet er tilgjengelig, som utvikler en kompilator for å oversette Python-skript til en C-representasjon, som deretter kan kompileres til en kjørbar fil ved hjelp av libpython for maksimal kompatibilitet med CPython (ved å bruke native CPython-verktøy for å administrere objekter). Gir full kompatibilitet med gjeldende versjoner av Python 2.6, 2.7, 3.3 - 3.11. Sammenlignet med CPython viser kompilerte skript en ytelsesforbedring på 335 % i pystone-tester. Prosjektkoden distribueres under Apache-lisensen.

Blant endringene i den nye versjonen:

  • Vi har lagt til muligheten til å bruke variabler i pakkekonfigurasjoner, slik at du kan spørre verdier fra installerte pakker under kompilering og bruke disse verdiene til å bestemme backend. Støtte for variabler i konfigurasjoner lar deg løse mange problemer som tidligere krevde plugins.
  • La til støtte for brukerdefinerte parametere for å påvirke konfigurasjonen av hver pakke. Parametere kan leses ved hjelp av den nye get_parameter-funksjonen og brukes til å kontrollere modulets oppførsel (for eksempel kan du angi en parameter for å deaktivere Numba JIT eller Torch JIT).
  • La til alternativet «--include-onefile-external-data» for å spesifisere maler for datafiler som er definert i konfigurasjonen, men som må leveres separat fra den kjørbare filen når det bygges i onefile-modus.
  • La til alternativet "--cf-protection" for å angi GCCs CFI (Control Flow Integrity) beskyttelsesmodus, som blokkerer brudd på kontrollflyt.
  • Muligheten til å generere sjekksummer for integritetsverifisering er implementert for YAML-filer i plugin-modulen, som er planlagt brukt i fremtiden til kjøretidsverifisering.
  • Handlinger tillater at flere alternativer spesifiseres, atskilt med linjer (med en ny linje som skilletegn). For eksempel: include-data-dir: | a=bc=d
  • En analyse av syklustyper er implementert, som vil bli brukt i fremtiden til å implementere selektive optimaliseringer.
  • La til optimaliseringer for å fremskynde arbeidet med ikke-delte og escapede variabler.
  • Anti-bloat-pluginen er utvidet for å redusere antall pakker når man bruker streamlit-, torch-, knetworkx-, distributed-, skimage-, bitsandbytes-, tf_keras-, pip-, networkx- og pywt-bibliotekene (for det meste fjerner man pytest-, IPython-, nose-, triton- og dask-avhengighetene).

Kilde: opennet.ru

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig webhotell med DDoS-beskyttelse, VPS VDS-servere | ProHoster