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:
- Pridali sme možnosť používať premenné v konfiguráciách balíkov, čo vám umožňuje vyhľadávať hodnoty z nainštalovaných balíkov počas kompilácie a použiť tieto hodnoty na určenie backendu. Podpora premenných v konfiguráciách vám umožňuje vyriešiť mnoho problémov, ktoré predtým vyžadovali pluginy.
- Pridaná podpora pre používateľom definované parametre na ovplyvnenie konfigurácie každého balíka. Parametre je možné čítať pomocou novej funkcie get_parameter a použiť na ovládanie správania modulov (napríklad môžete nastaviť parameter na vypnutie Numba JIT alebo Torch JIT).
- Pridaná možnosť „--include-onefile-external-data“ na určenie šablón pre dátové súbory, ktoré sú definované v konfigurácii, ale pri zostavovaní v režime onefile musia byť dodané oddelene od spustiteľného súboru.
- Pridaná možnosť „--cf-protection“ na nastavenie režimu ochrany CFI (Control Flow Integrity) v GCC, ktorý blokuje narušenia riadiaceho toku.
- Pre súbory YAML doplnkov, ktoré sa v budúcnosti plánujú používať na overovanie za behu, bola implementovaná možnosť generovania kontrolných súčtov na overenie integrity.
- Akcie umožňujú zadať viacero možností oddelených riadkami (s novým riadkom ako oddeľovačom). Napríklad: include-data-dir: | a=bc=d
- Bola implementovaná analýza typov cyklov, ktorá bude v budúcnosti použitá na implementáciu selektívnych optimalizácií.
- Pridané optimalizácie na zrýchlenie práce s nezdieľanými a escapovanými premennými.
- Plugin proti nafukovaniu bol rozšírený o zníženie počtu balíkov pri používaní knižníc streamlit, torch, knetworkx, distributed, skimage, bitsandbytes, tf_keras, pip, networkx a pywt (väčšinou odstránením závislostí pytest, IPython, nose, triton a dask).
Zdroj: opennet.ru
