Liberigo de Nuitka 2.0, kompililo por la Python-lingvo

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:

  • Aldonis la kapablon uzi variablojn en paka agordo, permesante al vi pridemandi valorojn de instalitaj pakaĵoj ĉe kompilo kaj uzi tiujn valorojn por difini la backend. Subteno por variabloj en la agordo permesas vin solvi multajn taskojn laŭ normaj manieroj, kiuj antaŭe postulis konekti kromaĵojn.
  • Aldonita subteno por uzant-difinitaj parametroj por influi la agordon de ĉiu pako. Parametroj povas esti legitaj uzante la novan funkcion get_parameter kaj uzataj por elekti la konduton de moduloj (ekzemple, vi povas agordi parametron por malŝalti Numba JIT aŭ Torch JIT).
  • Aldonita opcio "--include-onefile-external-data" por specifi datumdosierŝablonojn kiuj estas difinitaj en la agordo sed devas esti liveritaj aparte de la rulebla dosiero dum konstruado en unudosiera reĝimo.
  • Aldonis la opcion "--cf-protection" por agordi la protektan reĝimon CFI (Kontrolflua Integreco) en GCC, kiu blokas malobservojn de la normala ekzekut-ordo (kontrola fluo).
  • Por kromprogramoj yaml-dosieroj, la kapablo krei ĉeksumojn por integreckontroloj estis efektivigita, kiun en la estonteco ili planas uzi por organizi rultempan konfirmon.
  • Agoj permesas specifi plurajn opciojn, apartigitajn per linioj (nova linio estas uzata kiel limigo). Ekzemple: include-data-dir: | a=bc=d
  • Analizo de buklospecoj estis efektivigita, kiu estos uzita en la estonteco por efektivigi selektemajn optimumigojn.
  • Aldonitaj optimumigoj por akceli laboron kun ne-dividitaj kaj eskapitaj variabloj.
  • La kapabloj de la kontraŭbloat kromaĵo estis pligrandigitaj, kiu nun povas esti uzata por redukti la nombron da pakaĵoj kiam oni uzas la streamlit, torch, knetworkx, distributed, skimage, bitsandbytes, tf_keras, pip, networkx kaj pywt-bibliotekojn (esence, binding). al pytest, IPython, nose, triton estas ekskludita kaj dask).

fonto: opennet.ru

Aldoni komenton