Publiko de la Nuitka 2.0 projekto estas havebla, evoluigante kompililon por traduki Python-skriptojn en C-reprezentantaron, kiu tiam povas esti kompilita en ruleblan dosieron uzante libpython por maksimuma kongruo kun CPython (uzante indiĝenajn CPython-iloj por manipulado de objektoj). Provizite plenan kongruon kun nunaj eldonoj de Python 2.6, 2.7, 3.3 - 3.11. Kompare kun CPython, kompilitaj skriptoj montras 335%-rendimenton plibonigon en piŝtonaj testoj. La projektkodo estas distribuita sub la Apache-licenco.
Inter la ŝanĝoj en la nova versio:
- Aldonita la ebleco uzi variablojn en la pakaĵa agordo, permesante al vi peti valorojn de instalitaj pakaĵoj dum kompilo kaj uzi ĉi tiujn valorojn por determini la internan sistemon. Subteno por variabloj en la agordo permesas al vi solvi multajn problemojn laŭ normaj manieroj, kiuj antaŭe postulis konektadon de kromaĵoj.
- Aldonita subteno por uzanto-difinitaj parametroj por influi la agordon de ĉiu pakaĵo. Parametroj povas esti legitaj per la nova funkcio get_parameter kaj uzataj por elekti modulan konduton (ekzemple, vi povas agordi parametron por malebligi Numba JIT aŭ Torch JIT).
- Aldonis la opcion "--include-onefile-external-data" por specifi ŝablonojn por datendosieroj difinitaj en la agordo, sed kiuj devas esti provizitaj aparte de la rulebla dosiero dum konstruado en unudosiera reĝimo.
- Aldonis opcion "--cf-protection" por agordi GCC al CFI (Kontrolfluo-integreco) protekta reĝimo, kiu blokas malobservojn de kontrolfluo.
- Por kromprogramoj yaml-dosieroj, la kapablo krei ĉeksumojn por integreckontrolo estas efektivigita, kiuj estas planitaj esti uzataj estonte por organizi kontrolon dum ekzekuto.
- Agoj permesas specifi plurajn opciojn apartigitajn per linioj (novlinio estas uzata kiel apartigilo). Ekzemple: include-data-dir: | a=bc=d
- Analizo de ciklotipoj estis efektivigita, kiu estos uzata estonte por efektivigi selektemajn optimumigojn.
- Aldonitaj optimumigoj por rapidigi laboron kun ne-kundividitaj kaj eskapitaj variabloj.
- La kromprogramo kontraŭ ŝvelo estis vastigita por redukti la nombron de pakaĵoj dum uzado de la bibliotekoj streamlit, torch, knetworkx, distributed, skimage, bitsandbytes, tf_keras, pip, networkx, kaj pywt (plejparte forigante ligojn al pytest, IPython, nose, triton, kaj dask).
fonto: opennet.ru
