Nuitka 2.0, Python-kielen kääntäjän julkaisu

Nuitka 2.0 -projektista on saatavilla julkaisu, joka kehittää kääntäjää Python-skriptien kääntämiseksi C-esitykseen, joka voidaan sitten kääntää suoritettavaksi tiedostoksi libpythonilla maksimaalisen yhteensopivuuden saavuttamiseksi CPythonin kanssa (käyttäen alkuperäisiä CPython-työkaluja objektien käsittelyyn). Täysi yhteensopivuus Python 2.6, 2.7, 3.3 - 3.11 nykyisten julkaisujen kanssa. CPythoniin verrattuna käännetyt skriptit osoittavat 335 %:n suorituskyvyn parannusta pystone-testeissä. Projektikoodia jaetaan Apache-lisenssillä.

Uuden version muutoksista:

  • Lisätty mahdollisuus käyttää muuttujia paketin kokoonpanossa, jolloin voit kysyä arvoja asennetuista paketeista käännöshetkellä ja käyttää näitä arvoja taustajärjestelmän määrittämiseen. Kokoonpanon muuttujien tuki mahdollistaa useiden tehtävien ratkaisemisen normaalilla tavoilla, jotka aiemmin vaativat liitännäisiä.
  • Lisätty tuki käyttäjän määrittämille parametreille, jotka vaikuttavat kunkin paketin kokoonpanoon. Parametreja voidaan lukea käyttämällä uutta get_parameter-toimintoa ja valita moduulien käyttäytyminen (voit esimerkiksi asettaa parametrin, jolla Numba JIT tai Torch JIT poistetaan käytöstä).
  • Lisätty vaihtoehto "--include-onefile-external-data", joka määrittää datatiedostomalleja, jotka on määritetty kokoonpanossa, mutta jotka on toimitettava erillään suoritettavasta tiedostosta, kun rakennetaan onefile-tilassa.
  • Lisätty "--cf-protection" -vaihtoehto asettaaksesi CFI (Control Flow Integrity) -suojaustilan GCC:ssä, joka estää normaalin suoritusjärjestyksen (ohjausvirtauksen) rikkomukset.
  • Plugin yaml-tiedostoille on otettu käyttöön kyky luoda tarkistussummia eheystarkastuksia varten, joita he aikovat jatkossa käyttää ajonaikaisen varmistuksen järjestämiseen.
  • Toiminnot mahdollistavat useiden vaihtoehtojen määrittämisen rivillä erotettuina (uutta riviä käytetään erottimena). Esimerkiksi: include-data-dir: | a=bc=d
  • Silmukkatyyppien analyysi on toteutettu, jota käytetään jatkossa valikoivan optimoinnin toteuttamiseen.
  • Lisätty optimointeja nopeuttamaan työtä ei-jakattujen ja pakotettujen muuttujien kanssa.
  • Anti-bloat-liitännäisen ominaisuuksia on laajennettu, ja sen avulla voidaan nyt vähentää pakettien määrää käytettäessä streamlit-, torch-, knetworkx-, distributed-, skimage-, bitsandbytes-, tf_keras-, pip-, networkx- ja pywt-kirjastoja (periaatteessa sidontakirjastoja to pytest, IPython, nenä, triton on poissuljettu ja dask).

Lähde: opennet.ru

Lisää kommentti