Rilaxx ta' Nuitka 2.0, kompilatur għal-lingwa Python

Rilaxx tal-proġett Nuitka 2.0 huwa disponibbli, li jiżviluppa kompilatur għat-traduzzjoni ta 'skripts Python f'rappreżentazzjoni C, li mbagħad tista' tiġi kkompilata f'fajl eżekutibbli bl-użu ta 'libpython għal kompatibilità massima ma' CPython (bl-użu ta 'għodod indiġeni CPython għall-manipulazzjoni ta' oġġetti). Ipprovda kompatibilità sħiħa mar-rilaxxi attwali ta 'Python 2.6, 2.7, 3.3 - 3.11. Meta mqabbel ma 'CPython, skripts ikkumpilati juru titjib fil-prestazzjoni ta' 335% fit-testijiet tal-pystone. Il-kodiċi tal-proġett huwa mqassam taħt il-liċenzja Apache.

Fost il-bidliet fil-verżjoni l-ġdida:

  • Żid il-ħila li tuża varjabbli fil-konfigurazzjoni tal-pakkett, li tippermettilek li titlob valuri minn pakketti installati fil-ħin tal-kumpilazzjoni u tuża dawk il-valuri biex tiddefinixxi l-backend. L-appoġġ għall-varjabbli fil-konfigurazzjoni jippermettilek issolvi ħafna kompiti b'modi standard li qabel kienu jeħtieġu plugins ta 'konnessjoni.
  • Appoġġ miżjud għal parametri definiti mill-utent biex jinfluwenzaw il-konfigurazzjoni ta 'kull pakkett. Il-parametri jistgħu jinqraw bl-użu tal-funzjoni ġdida get_parameter u jintużaw biex tagħżel l-imġieba tal-moduli (per eżempju, tista 'tissettja parametru biex tiddiżattiva Numba JIT jew Torch JIT).
  • Għażla miżjuda "--include-onefile-external-data" biex tispeċifika mudelli ta 'fajls tad-dejta li huma definiti fil-konfigurazzjoni iżda għandhom jiġu fornuti separatament mill-fajl eżekutibbli meta jinbena fil-modalità onefile.
  • Żid l-għażla "--cf-protection" biex tissettja l-mod ta 'protezzjoni CFI (Control Flow Integrity) f'GCC, li timblokka ksur tal-ordni ta' eżekuzzjoni normali (fluss ta 'kontroll).
  • Għall-fajls yaml tal-plugins, ġiet implimentata l-abbiltà li jinħolqu checksums għall-kontrolli tal-integrità, li fil-futur qed jippjanaw li jużaw biex jorganizzaw il-verifika tal-run-time.
  • Azzjonijiet jippermetti li jiġu speċifikati għażliet multipli, separati minn linji (linja ġdida tintuża bħala delimitatur). Per eżempju: include-data-dir: | a=bc=d
  • Ġiet implimentata analiżi tat-tipi ta 'loop, li se tintuża fil-futur biex timplimenta ottimizzazzjonijiet selettivi.
  • Optimizzazzjonijiet miżjuda biex jitħaffef ix-xogħol b'varjabbli mhux kondiviżi u maħruba.
  • Il-kapaċitajiet tal-plugin anti-bloat ġew estiżi, li issa jistgħu jintużaw biex jitnaqqas in-numru ta 'pakketti meta jintużaw il-libreriji streamlit, torch, knetworkx, distributed, skimage, bitsandbytes, tf_keras, pip, networkx u pywt (bażikament, vinkolanti għal pytest, IPython, imnieħer, triton huwa eskluż u dask).

Sors: opennet.ru

Żid kumment