Nuitka 2.0 kaleratzea, Python hizkuntzarako konpilatzailea

Nuitka 2.0 proiektuaren bertsio bat dago eskuragarri, Python script-ak C irudikapen batera itzultzeko konpiladore bat garatzen duena, eta gero fitxategi exekutagarri batean konpilatu daiteke libpython erabiliz CPythonekin bateragarritasun handiena lortzeko (objektuak manipulatzeko CPython jatorrizko tresnak erabiliz). Python 2.6, 2.7, 3.3 - 3.11-en egungo bertsioekin bateragarritasun osoa eskaintzen du. CPythonekin alderatuta, konpilatutako scriptek % 335eko errendimendua hobetu dute pystone probetan. Proiektuaren kodea Apache lizentziapean banatzen da.

Bertsio berriaren aldaketen artean:

  • Paketeen konfigurazioan aldagaiak erabiltzeko gaitasuna gehitu da, konpilazio garaian instalatutako paketeen balioak kontsultatzeko eta balio horiek backend-a definitzeko erabiltzeko aukera emanez. Konfigurazioan aldagaien euskarriari esker, aurretik pluginak konektatu behar zituzten modu estandarrean ataza asko ebatzi ditzakezu.
  • Erabiltzaileak definitutako parametroetarako laguntza gehitu da pakete bakoitzaren konfigurazioan eragiteko. Parametroak get_parameter funtzio berria erabiliz irakur daitezke eta moduluen portaera hautatzeko erabil daitezke (adibidez, Numba JIT edo Torch JIT desgaitzeko parametro bat ezar dezakezu).
  • "--include-onefile-external-data" aukera gehitu da, konfigurazioan definitutako baina fitxategi exekutagarritik bereizita eman behar diren datu-fitxategien txantiloiak zehazteko, onefile moduan eraikitzean.
  • "--cf-protection" aukera gehitu da GCCn CFI (Control Flow Integrity) babes-modua ezartzeko, exekuzio-ordena normalaren (kontrol-fluxua) urraketak blokeatzen dituena.
  • Plugin-yaml fitxategietarako, osotasun egiaztapenetarako checksumak sortzeko gaitasuna ezarri da, etorkizunean exekuzio-denboran egiaztapena antolatzeko erabili nahi dutena.
  • Ekintzak aukera anitz zehaztu daitezke, lerroz bereizita (lerro berri bat erabiltzen da mugatzaile gisa). Adibidez: include-data-dir: | a=bc=d
  • Loop moten analisia ezarri da, etorkizunean optimizazio selektiboak ezartzeko erabiliko dena.
  • Partekatu gabeko eta ihes egindako aldagaiekin lana bizkortzeko optimizazioak gehitu dira.
  • Bloat-en aurkako pluginaren gaitasunak zabaldu dira, eta orain pakete kopurua murrizteko erabil daiteke streamlit, torch, knetworkx, distributed, skimage, bitsandbytes, tf_keras, pip, networkx eta pywt liburutegiak (funtsean, loteslea). pytest, IPython, nose, triton eta dask baztertuta daude).

Iturria: opennet.ru

Gehitu iruzkin berria