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

Je k dispozici vydání projektu Nuitka 1.1, 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.10. 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:

  • Rozšířily se možnosti zadání konfigurace ve formátu Yaml.
  • Byly provedeny optimalizace související s vyloučením nepoužívaných komponent standardní knihovny (zoneinfo, concurrent, asyncio atd.), což umožnilo zmenšit velikost výsledných spustitelných souborů.
  • Přidána podpora alternativní syntaxe ("|") ve shodách vzorů na základě operátoru "match" zavedeného v Pythonu 3.10.
  • Je zajištěna kompatibilita s jinja2.PackageLoader.
  • Implementována možnost změnit velikost atributu __defaults__.
  • Přidána podpora funkcí importlib.metadata.distribution, importlib_metadata.distribution, importlib.metadata.metadata a importlib_metadata.metadata.
  • Do režimu kompilace Onefile byla přidána podpora pro zahrnutí dalších binárních souborů do hlavního spustitelného souboru.
  • Kompilované moduly implementují schopnost používat funkci importlib.resources.files.
  • Volba "--include-package-data" umožňuje specifikovat masky souborů, například "--include-package-data=package_name=*.txt".
  • Pro macOS byla implementována podpora pro digitální podepisování spustitelných souborů.
  • Pro zásuvné moduly je k dispozici metoda, jak přepsat funkce pro spustitelný soubor.
  • Byly rozšířeny možnosti anti-bloat pluginu, který lze nyní využít ke snížení počtu balíčků při použití knihoven rich, pyrect a pytorch. Byla implementována možnost používat regulární výrazy v pravidlech nahrazování.
  • Regresivní změny vyplývající z významných optimalizací implementovaných v posledním vydání byly vyřešeny.

Zdroj: opennet.ru

Přidat komentář