Publikimi i Nuitka 2.0, një përpilues për gjuhën Python

Një lëshim i projektit Nuitka 2.0 është i disponueshëm, duke zhvilluar një përpilues për përkthimin e skripteve të Python në një paraqitje C, i cili më pas mund të kompilohet në një skedar të ekzekutueshëm duke përdorur libpython për pajtueshmëri maksimale me CPython (duke përdorur mjete amtare CPython për manipulimin e objekteve). Ofrohet përputhshmëri e plotë me versionet aktuale të Python 2.6, 2.7, 3.3 - 3.11. Krahasuar me CPython, skriptet e përpiluara tregojnë një përmirësim të performancës 335% në testet e pystone. Kodi i projektit shpërndahet nën licencën Apache.

Ndër ndryshimet në versionin e ri:

  • U shtua aftësia për të përdorur variabla në konfigurimin e paketës, duke ju lejuar të kërkoni vlera nga paketat e instaluara në kohën e përpilimit dhe t'i përdorni ato vlera për të përcaktuar backend-in. Mbështetja për variablat në konfigurim ju lejon të zgjidhni shumë detyra në mënyra standarde që më parë kërkonin lidhjen e shtojcave.
  • Mbështetje e shtuar për parametrat e përcaktuar nga përdoruesi për të ndikuar në konfigurimin e secilës paketë. Parametrat mund të lexohen duke përdorur funksionin e ri get_parameter dhe të përdoren për të zgjedhur sjelljen e moduleve (për shembull, mund të vendosni një parametër për të çaktivizuar Numba JIT ose Torch JIT).
  • U shtua opsioni "--include-onefile-external-data" për të specifikuar shabllonet e skedarëve të të dhënave që janë të përcaktuara në konfigurim, por duhet të sigurohen veçmas nga skedari i ekzekutueshëm kur ndërtohet në modalitetin e një skedari.
  • U shtua opsioni "--cf-protection" për të vendosur modalitetin e mbrojtjes CFI (Control Flow Integrity) në GCC, i cili bllokon shkeljet e urdhrit normal të ekzekutimit (rrjedha e kontrollit).
  • Për skedarët plugin yaml, është zbatuar aftësia për të krijuar shuma kontrolli për kontrollet e integritetit, të cilat në të ardhmen ata planifikojnë t'i përdorin për të organizuar verifikimin e kohës së ekzekutimit.
  • Veprimet lejojnë të specifikohen opsione të shumta, të ndara me rreshta (një linjë e re përdoret si ndarës). Për shembull: include-data-dir: | a=bc=d
  • Është zbatuar një analizë e llojeve të lakut, e cila do të përdoret në të ardhmen për të zbatuar optimizime selektive.
  • Optimizimet e shtuara për të përshpejtuar punën me variabla të pandarë dhe të arratisur.
  • Aftësitë e shtojcës anti-bloat janë zgjeruar, e cila tani mund të përdoret për të zvogëluar numrin e paketave kur përdorni bibliotekat streamlit, torch, knetworkx, distributed, skimage, bitsandbytes, tf_keras, pip, networkx dhe pywt (në thelb, të detyrueshme për të pytest, IPython, hundë, triton është i përjashtuar dhe dask).

Burimi: opennet.ru

Shto një koment