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