Pythoni keele kompilaatori Nuitka 2.0 väljalase

Saadaval on Nuitka 2.0 projekti väljalase, mis arendab kompilaatorit Pythoni skriptide tõlkimiseks C-esitusse, mille saab seejärel libpythoni abil CPythoniga maksimaalse ühilduvuse tagamiseks (kasutades objektide manipuleerimiseks natiivseid CPythoni tööriistu) täitmisfailiks kompileerida. Täielik ühilduvus Pythoni versioonide 2.6, 2.7, 3.3 – 3.11 praeguste väljalasetega. Võrreldes CPythoniga näitavad kompileeritud skriptid Pystone'i testides 335% jõudluse paranemist. Projekti koodi levitatakse Apache litsentsi all.

Uue versiooni muudatuste hulgas:

  • Lisati võimalus kasutada muutujaid paketi konfiguratsioonis, võimaldades teil kompileerimise ajal küsida installitud pakettide väärtusi ja kasutada neid väärtusi taustaprogrammi määratlemiseks. Konfiguratsiooni muutujate tugi võimaldab lahendada paljusid ülesandeid standardsetel viisidel, mis varem nõudsid pistikprogrammide ühendamist.
  • Lisatud on kasutaja määratud parameetrite tugi, et mõjutada iga paketi konfiguratsiooni. Parameetreid saab lugeda uue get_parameter funktsiooni abil ja kasutada moodulite käitumise valimiseks (näiteks saate määrata parameetri Numba JIT või Torch JIT keelamiseks).
  • Lisatud suvand "--include-onefile-external-data", et määrata andmefaili mallid, mis on konfiguratsioonis määratletud, kuid mis tuleb ühe faili režiimis ehitamisel käivitatavast failist eraldi esitada.
  • Lisatud on suvand "--cf-protection", et määrata GCC-s CFI (Control Flow Integrity) kaitserežiim, mis blokeerib tavapärase täitmisjärjekorra (juhtimise voo) rikkumised.
  • Plugina yaml-failide puhul on juurutatud võimalus luua terviklikkuse kontrollide jaoks kontrollsummasid, mida nad kavatsevad tulevikus kasutada käitusaja kontrollimise korraldamiseks.
  • Toimingud võimaldavad määrata mitu valikut, eraldades need ridadega (eraldajana kasutatakse uut rida). Näiteks: include-data-dir: | a=bc=d
  • Realiseeritud on ahelatüüpide analüüs, mida kasutatakse edaspidi valikuliste optimeerimiste rakendamisel.
  • Lisatud optimeerimised, et kiirendada tööd mittejagatud ja paotud muutujatega.
  • Laiendatud on anti-bloat plugina võimalusi, mida saab nüüd kasutada pakettide arvu vähendamiseks streamlit, torch, knetworkx, distributed, skimage, bitsandbytes, tf_keras, pip, networkx ja pywt teekide kasutamisel (põhimõtteliselt sidumine to pytest, IPython, nina, triton on välistatud ja dask).

Allikas: opennet.ru

Lisa kommentaar