Megjelent a Nuitka 2.0, a Python nyelv fordítója

Megjelent a Nuitka 2.0 projekt kiadása, amely egy fordítóprogramot fejleszt a Python-szkriptek C-reprezentációra való lefordításához, amelyet aztán a libpython segítségével végrehajtható fájlba lehet fordítani a CPython-nal való maximális kompatibilitás érdekében (natív CPython-eszközökkel az objektumok manipulálására). Teljes kompatibilitást biztosít a Python 2.6, 2.7, 3.3 - 3.11 jelenlegi kiadásaival. A CPythonhoz képest a lefordított szkriptek 335%-os teljesítményjavulást mutatnak a pystone tesztekben. A projekt kódja az Apache licenc alatt kerül terjesztésre.

Az új verzió változásai között szerepel:

  • Hozzáadtuk a változók használatát a csomagkonfigurációban, lehetővé téve a telepített csomagok értékeinek lekérdezését a fordítási időben, és ezen értékek felhasználásával a háttérrendszer meghatározásához. A konfigurációban a változók támogatása lehetővé teszi számos olyan feladat szabványos megoldását, amelyekhez korábban csatlakozási bővítményekre volt szükség.
  • Hozzáadott támogatás a felhasználó által definiált paraméterekhez, amelyek befolyásolják az egyes csomagok konfigurációját. A paraméterek az új get_parameter függvénnyel olvashatók, és a modulok viselkedésének kiválasztására használhatók (például beállíthat egy paramétert a Numba JIT vagy a Torch JIT letiltására).
  • A „--include-onefile-external-data” opció hozzáadva a konfigurációban definiált adatfájl-sablonok megadásához, amelyeket azonban a végrehajtható fájltól külön kell megadni, ha egyfájlos módban építkezik.
  • Hozzáadtuk a „--cf-protection” opciót a CFI (Control Flow Integrity) védelmi mód beállításához a GCC-ben, amely blokkolja a normál végrehajtási sorrend (vezérlési folyamat) megsértését.
  • A beépülő yaml fájlok esetében megvalósult az integritás-ellenőrzésekhez ellenőrző összegek létrehozásának lehetősége, amelyet a jövőben a futásidejű ellenőrzés megszervezésére terveznek használni.
  • Az Actions lehetővé teszi több lehetőség megadását, sorokkal elválasztva (egy új sort használunk határolóként). Például: include-data-dir: | a=bc=d
  • Megvalósult a huroktípusok elemzése, amelyet a jövőben a szelektív optimalizálás megvalósítására használnak fel.
  • Hozzáadott optimalizálások a nem megosztott és megtisztított változókkal való munka felgyorsítása érdekében.
  • Bővültek az anti-bloat beépülő modul lehetőségei, amellyel immár csökkenthető a csomagok száma a streamlit, a torch, a knetworkx, az elosztott, a skimage, a bitsandbytes, a tf_keras, a pip, a networkx és a pywt könyvtárak (alapvetően kötés) használatakor to pytest, IPython, orr, triton kizárva és dask).

Forrás: opennet.ru

Hozzászólás