Vydání Nuitka 2.0, kompilátoru pro jazyk Python

Je k dispozici vydání projektu Nuitka 2.0, vyvíjející kompilátor pro překlad skriptů Python do reprezentace C, které lze následně zkompilovat do spustitelného souboru pomocí libpythonu pro maximální kompatibilitu s CPythonem (pomocí nativních nástrojů CPythonu pro manipulaci s objekty). Poskytuje plnou kompatibilitu s aktuálními verzemi Pythonu 2.6, 2.7, 3.3 - 3.11. Ve srovnání s CPythonem vykazují kompilované skripty 335% zlepšení výkonu v testech pystone. Kód projektu je distribuován pod licencí Apache.

Mezi změny v nové verzi:

  • Přidána možnost používat proměnné v konfiguraci balíčku, což vám umožňuje dotazovat se na hodnoty z nainstalovaných balíčků v době kompilace a používat tyto hodnoty k definování backendu. Podpora proměnných v konfiguraci umožňuje řešit mnoho úloh standardními způsoby, které dříve vyžadovaly připojení pluginů.
  • Přidána podpora pro uživatelem definované parametry pro ovlivnění konfigurace každého balíčku. Parametry lze číst pomocí nové funkce get_parameter a používat je k výběru chování modulů (například můžete nastavit parametr pro deaktivaci Numba JIT nebo Torch JIT).
  • Přidána možnost "--include-onefile-external-data" pro specifikaci šablon datových souborů, které jsou definovány v konfiguraci, ale musí být dodány odděleně od spustitelného souboru při sestavování v režimu jednoho souboru.
  • Přidána možnost „--cf-protection“ pro nastavení ochranného režimu CFI (Control Flow Integrity) v GCC, který blokuje narušení normálního prováděcího příkazu (kontrolního toku).
  • Pro soubory plugin yaml byla implementována možnost vytvářet kontrolní součty pro kontroly integrity, které v budoucnu plánují používat k organizaci ověřování za běhu.
  • Akce umožňuje zadat více možností oddělených řádky (jako oddělovač je použit nový řádek). Například: include-data-dir: | a=bc=d
  • Byla implementována analýza typů smyček, která bude v budoucnu použita k implementaci selektivních optimalizací.
  • Přidány optimalizace pro urychlení práce s nesdílenými a uniklými proměnnými.
  • Byly rozšířeny možnosti anti-bloat pluginu, který lze nyní využít ke snížení počtu paketů při použití knihoven streamlit, torch, knetworkx, distribution, skimage, bitsandbytes, tf_keras, pip, networkx a pywt (v podstatě vázání na pytest, IPython, nos, triton je vyloučen a dask).

Zdroj: opennet.ru

Přidat komentář