Nuitka 2.0, Python valodas kompilatora, izlaidums

Ir pieejams projekta Nuitka 2.0 laidiens, kurā tiek izstrādāts kompilators Python skriptu tulkošanai C formātā, ko pēc tam var apkopot izpildāmā failā, izmantojot libpython, lai nodrošinātu maksimālu saderību ar CPython (izmantojot vietējos CPython rīkus, lai manipulētu ar objektiem). Nodrošināta pilnīga saderība ar Python 2.6, 2.7, 3.3–3.11 pašreizējiem laidieniem. Salīdzinot ar CPython, apkopotie skripti pystone testos uzrāda veiktspējas uzlabojumus par 335%. Projekta kods tiek izplatīts saskaņā ar Apache licenci.

Starp izmaiņām jaunajā versijā:

  • Pievienota iespēja izmantot mainīgos pakotņu konfigurācijā, ļaujot kompilēšanas laikā vaicāt vērtības no instalētajām pakotnēm un izmantot šīs vērtības, lai definētu aizmugursistēmu. Atbalsts mainīgajiem konfigurācijā ļauj atrisināt daudzus uzdevumus standarta veidos, kuriem iepriekš bija nepieciešami savienojošie spraudņi.
  • Pievienots atbalsts lietotāja definētiem parametriem, lai ietekmētu katras pakotnes konfigurāciju. Parametrus var nolasīt, izmantojot jauno funkciju get_parameter, un izmantot, lai atlasītu moduļu darbību (piemēram, varat iestatīt parametru, lai atspējotu Numba JIT vai Torch JIT).
  • Pievienota opcija "--include-onefile-external-data", lai norādītu datu failu veidnes, kas ir definētas konfigurācijā, bet ir jāiegādājas atsevišķi no izpildāmā faila, veidojot viena faila režīmā.
  • Pievienota opcija “--cf-protection”, lai iestatītu CFI (Control Flow Integrity) aizsardzības režīmu GCC, kas bloķē parastās izpildes secības (kontroles plūsmas) pārkāpumus.
  • Spraudņu yaml failiem ir ieviesta iespēja izveidot kontrolsummas integritātes pārbaudēm, kuras nākotnē plāno izmantot izpildlaika verifikācijas organizēšanai.
  • Darbības ļauj norādīt vairākas opcijas, atdalītas ar līnijām (jauna rinda tiek izmantota kā norobežotājs). Piemēram: include-data-dir: | a=bc=d
  • Ir ieviesta cilpu tipu analīze, kas turpmāk tiks izmantota selektīvo optimizāciju veikšanai.
  • Pievienota optimizācija, lai paātrinātu darbu ar nekoplietotiem un izmainītiem mainīgajiem.
  • Ir paplašinātas anti-bloat spraudņa iespējas, ko tagad var izmantot, lai samazinātu pakešu skaitu, izmantojot streamlit, torch, knetworkx, izplatītās, skimage, bitsandbytes, tf_keras, pip, networkx un pywt bibliotēkas (pamatā, saistīšanas to pytest, IPython, deguns, tritons ir izslēgts un dask).

Avots: opennet.ru

Pievieno komentāru