Vydanie Nuitka 2.0, kompilátora pre jazyk Python

K dispozícii je vydanie projektu Nuitka 2.0, ktorý vyvíja kompilátor na preklad skriptov Pythonu do reprezentácie C, ktorú je možné následne skompilovať do spustiteľného súboru pomocou libpythonu pre maximálnu kompatibilitu s CPythonom (pomocou natívnych nástrojov CPythonu na manipuláciu s objektmi). Poskytuje plnú kompatibilitu s aktuálnymi vydaniami Pythonu 2.6, 2.7, 3.3 - 3.11. V porovnaní s CPythonom vykazujú kompilované skripty 335% zlepšenie výkonu v testoch pystone. Kód projektu je distribuovaný pod licenciou Apache.

Medzi zmeny v novej verzii:

  • Pridaná možnosť používať premenné v konfigurácii balíka, čo vám umožňuje dotazovať sa na hodnoty z nainštalovaných balíkov v čase kompilácie a použiť tieto hodnoty na definovanie backendu. Podpora premenných v konfigurácii umožňuje riešiť mnohé úlohy štandardnými spôsobmi, ktoré si predtým vyžadovali pripojenie pluginov.
  • Pridaná podpora pre užívateľom definované parametre na ovplyvnenie konfigurácie každého balíka. Parametre možno čítať pomocou novej funkcie get_parameter a použiť ich na výber správania modulov (napríklad môžete nastaviť parameter na vypnutie Numba JIT alebo Torch JIT).
  • Pridaná možnosť "--include-onefile-external-data" na špecifikovanie šablón dátových súborov, ktoré sú definované v konfigurácii, ale musia byť dodané oddelene od spustiteľného súboru pri vytváraní v režime jedného súboru.
  • Pridaná možnosť „--cf-protection“ na nastavenie ochranného režimu CFI (Control Flow Integrity) v GCC, ktorý blokuje porušenia normálneho vykonávacieho príkazu (kontrolný tok).
  • Pre súbory plugin yaml bola implementovaná možnosť vytvárať kontrolné súčty pre kontroly integrity, ktoré v budúcnosti plánujú použiť na organizovanie run-time overovania.
  • Akcie umožňujú zadať viacero možností oddelených čiarami (ako oddeľovač sa používa nový riadok). Napríklad: include-data-dir: | a=bc=d
  • Bola implementovaná analýza typov slučiek, ktorá bude v budúcnosti použitá na implementáciu selektívnych optimalizácií.
  • Pridané optimalizácie na urýchlenie práce s nezdieľanými a uniknutými premennými.
  • Rozšírili sa možnosti anti-bloat pluginu, ktorý je teraz možné použiť na zníženie počtu paketov pri použití knižníc streamlit, torch, knetworkx, distribution, skimage, bitsandbytes, tf_keras, pip, networkx a pywt (v podstate viazanie na pytest, IPython, nos, triton je vylúčený a tmavý).

Zdroj: opennet.ru

Pridať komentár