Нашри Nuitka 2.0, компилятор барои забони Python

Лоиҳаи Nuitka 2.0 ҳоло дастрас аст, ки компиляторро барои тарҷумаи скриптҳои Python ба муаррифии C таҳия мекунад, ки баъдан онро метавон ба файли иҷрошаванда бо истифода аз libpython барои мутобиқати ҳадди аксар CPython (бо истифода аз абзорҳои идоракунии объекти CPython) тартиб дод. Мутобиқати пурра бо версияҳои ҷории Python 2.6, 2.7, 3.3 - 3.11 таъмин карда мешавад. Дар муқоиса бо CPython, скриптҳои тартибдодашуда 335% беҳбуди корҳоро дар нишондиҳандаҳои pystone нишон медиҳанд. Рамзи лоиҳа тибқи иҷозатномаи Apache паҳн карда мешавад.

Дар байни тағйирот дар версияи нав:

  • Имконияти истифодаи тағирёбандаҳо дар конфигуратсияи бастаҳо илова карда шудааст, ки ба шумо имкон медиҳад, ки арзишҳоро аз бастаҳои насбшуда дар вақти компилясия пурсед ва ин арзишҳоро барои муайян кардани пушти сар истифода баред. Дастгирии тағирёбандаҳо дар конфигуратсия ба шумо имкон медиҳад, ки бисёр вазифаҳоро бо роҳҳои стандартие, ки қаблан пайваст кардани плагинҳоро талаб мекарданд, ҳал кунед.
  • Дастгирии иловагӣ барои параметрҳои аз ҷониби корбар муайяншуда барои таъсир расонидан ба конфигуратсияи ҳар як баста. Параметрҳоро бо истифода аз функсияи нави get_parameter хондан мумкин аст ва барои интихоби рафтори модулҳо истифода мешавад (масалан, шумо метавонед параметреро барои хомӯш кардани Numba JIT ё Torch JIT таъин кунед).
  • Опсияи "--include-onefile-external-data" барои муайян кардани қолибҳои файли додаҳо, ки дар конфигуратсия муайян карда шудаанд, вале ҳангоми сохтан дар реҷаи onefile бояд аз файли иҷрошаванда алоҳида таъмин карда шаванд, илова карда шудааст.
  • Опсияи "--cf-protection" барои танзими режими муҳофизати CFI (Control Flow Integrity) дар GCC илова карда шуд, ки вайронкунии тартиботи муқаррарии иҷроро (ҷараёни назорат) бозмедорад.
  • Барои файлҳои плагини yaml, қобилияти эҷоди маблағи чек барои санҷиши беайбӣ амалӣ карда шудааст, ки дар оянда онҳо нақша доранд, ки онро барои ташкили санҷиши вақти корӣ истифода баранд.
  • Амалҳо имкон медиҳанд, ки вариантҳои сершумор бо сатрҳо ҷудо карда шаванд (хати нав ҳамчун ҷудокунанда истифода мешавад). Масалан: дохил-дата-дир: | a=bc=d
  • Таҳлили намудҳои ҳалқаҳо амалӣ карда шуд, ки он дар оянда барои татбиқи оптимизатсияи интихобӣ истифода мешавад.
  • Барои суръат бахшидан ба кор бо тағирёбандаҳои тақсимнашуда ва фирорӣ оптимизатсияҳо илова карда шуданд.
  • Имкониятҳои плагини зидди bloat васеъ карда шуданд, ки ҳоло онро метавон барои кам кардани шумораи пакетҳо ҳангоми истифодаи streamlit, torch, knetworkx, distributed, skimage, bitsandbytes, tf_keras, pip, networkx ва pywt китобхонаҳо истифода бурд (асосан, ҳатмӣ). ба pytest, IPython, бинӣ, triton истисно ва dask).

Манбаъ: opennet.ru

Илова Эзоҳ