Nuitka 2.0, Python kalbos kompiliatoriaus, išleidimas

Yra projekto Nuitka 2.0 leidimas, kuriame sukurtas kompiliatorius, skirtas Python scenarijus paversti į C atvaizdą, kuris vėliau gali būti sukompiliuotas į vykdomąjį failą naudojant libpython, kad būtų maksimaliai suderinamas su CPython (naudojant vietinius CPython įrankius manipuliuoti objektais). Suteikiamas visiškas suderinamumas su dabartinėmis Python 2.6, 2.7, 3.3 – 3.11 versijomis. Palyginti su CPython, sudaryti scenarijai rodo 335% pystone testų našumo pagerėjimą. Projekto kodas platinamas pagal Apache licenciją.

Tarp naujos versijos pakeitimų:

  • Pridėta galimybė paketo konfigūracijoje naudoti kintamuosius, leidžiančius kompiliavimo metu pateikti užklausą dėl įdiegtų paketų reikšmių ir naudoti šias reikšmes nustatant užpakalinę programą. Konfigūracijos kintamųjų palaikymas leidžia išspręsti daugelį užduočių standartiniais būdais, kuriems anksčiau reikėjo prijungti papildinius.
  • Pridėtas vartotojo apibrėžtų parametrų palaikymas, siekiant paveikti kiekvieno paketo konfigūraciją. Parametrus galima nuskaityti naudojant naują get_parameter funkciją ir naudoti modulių veikimui pasirinkti (pavyzdžiui, galite nustatyti parametrą, kad išjungtumėte Numba JIT arba Torch JIT).
  • Pridėta parinktis „--include-onefile-external-data“, kad būtų nurodyti duomenų failų šablonai, kurie yra apibrėžti konfigūracijoje, bet turi būti pateikti atskirai nuo vykdomojo failo, kai kuriama vieno failo režimu.
  • Pridėta parinktis „--cf-protection“, kad būtų nustatytas CFI (Control Flow Integrity) apsaugos režimas GCC, kuris blokuoja įprastos vykdymo tvarkos (valdymo srauto) pažeidimus.
  • Įskiepių yaml failuose įdiegta galimybė sukurti vientisumo patikrų kontrolines sumas, kurias ateityje jie planuoja naudoti vykdymo laiko patikrai organizuoti.
  • Veiksmai leidžia nurodyti kelias parinktis, atskirtas eilutėmis (nauja eilutė naudojama kaip skyriklis). Pavyzdžiui: include-data-dir: | a=bc=d
  • Įdiegta kilpų tipų analizė, kuri ateityje bus naudojama atliekant atrankinius optimizavimus.
  • Pridėta optimizavimo, siekiant pagreitinti darbą su nebendrinamais ir pašalintais kintamaisiais.
  • Išplėstos „anti-bloat“ įskiepio galimybės, kurias dabar galima naudoti norint sumažinti paketų skaičių naudojant „streamlit“, „torch“, „knetworkx“, „distributed“, „skimage“, „bitsandbytes“, „tf_keras“, „pip“, „networkx“ ir „pywt“ bibliotekas (iš esmės įrišimas). į pytest, IPython, nosis, tritonas neįtraukiamas ir dask).

Šaltinis: opennet.ru

Добавить комментарий