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

En utgivelse av Nuitka 1.1-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.10. Sammenlignet med CPython viser kompilerte skript en ytelsesforbedring på 335 % i pystone-tester. Prosjektkoden distribueres under Apache-lisensen.

Blant endringene i den nye versjonen:

  • Mulighetene for å spesifisere konfigurasjon i Yaml-format er utvidet.
  • Optimaliseringer er gjort knyttet til utelukkelsen av ubrukte komponenter i standardbiblioteket (zoneinfo, concurrent, asyncio, etc.), som gjorde det mulig å redusere størrelsen på de resulterende kjørbare filene.
  • Lagt til støtte for alternativ syntaks ("|") i mønstertreff basert på "match"-operatoren introdusert i Python 3.10.
  • Kompatibilitet med jinja2.PackageLoader er sikret.
  • Implementerte muligheten til å endre størrelsen på __defaults__-attributtet.
  • Lagt til støtte for funksjonene importlib.metadata.distribution, importlib_metadata.distribution, importlib.metadata.metadata og importlib_metadata.metadata.
  • Støtte for å inkludere flere binære filer i den kjørbare hovedfilen er lagt til Onefile-kompileringsmodusen.
  • De kompilerte modulene implementerer muligheten til å bruke funksjonen importlib.resources.files.
  • "--inkluder-pakke-data"-alternativet gjør det mulig å spesifisere filmasker, for eksempel "--inkluder-pakke-data=pakkenavn=*.txt".
  • For macOS er støtte for digital signering av kjørbare filer implementert.
  • En metode er gitt for plugins for å overstyre funksjoner for den kjørbare.
  • Mulighetene til anti-bloat-pluginen er utvidet, som nå kan brukes til å redusere antall pakker ved bruk av rich-, pyrect- og pytorch-bibliotekene. Muligheten til å bruke regulære uttrykk i erstatningsregler er implementert.
  • Regressive endringer som følge av betydelige optimaliseringer implementert i den siste utgivelsen er løst.

Kilde: opennet.ru

Legg til en kommentar