Nuitka 2.0 шығарылымы, Python тіліне арналған компилятор

Nuitka 2.0 жобасының шығарылымы қол жетімді, ол Python сценарийлерін C көрсетіліміне аударуға арналған компиляторды әзірлейді, содан кейін оны CPython бағдарламасымен максималды үйлесімділік үшін libpython арқылы орындалатын файлға құрастыруға болады (нысандарды өңдеу үшін жергілікті CPython құралдарын пайдалану). Python 2.6, 2.7, 3.3 - 3.11 ағымдағы шығарылымдарымен толық үйлесімділік қамтамасыз етілген. CPython-мен салыстырғанда, құрастырылған сценарийлер pystone сынақтарында өнімділіктің 335% жақсарғанын көрсетеді. Жоба коды Apache лицензиясы бойынша таратылады.

Жаңа нұсқадағы өзгерістердің ішінде:

  • Компиляция уақытында орнатылған бумалардан мәндерді сұрауға және сол мәндерді серверді анықтау үшін пайдалануға мүмкіндік беретін бума конфигурациясында айнымалы мәндерді пайдалану мүмкіндігі қосылды. Конфигурациядағы айнымалы мәндерді қолдау бұрын қосылу плагиндерін қажет ететін стандартты тәсілдермен көптеген тапсырмаларды шешуге мүмкіндік береді.
  • Әрбір буманың конфигурациясына әсер ету үшін пайдаланушы анықтаған параметрлерге қолдау қосылды. Параметрлерді жаңа get_parameter функциясы арқылы оқуға болады және модульдердің әрекетін таңдау үшін пайдаланылады (мысалы, Numba JIT немесе Torch JIT өшіру үшін параметрді орнатуға болады).
  • Конфигурацияда анықталған, бірақ бір файл режимінде құрастыру кезінде орындалатын файлдан бөлек жеткізілуі тиіс деректер файлы үлгілерін көрсету үшін "--include-onefile-external-data" опциясы қосылды.
  • Қалыпты орындау тәртібін (басқару ағынын) бұғаттайтын GCC жүйесінде CFI (Бақылау ағынының тұтастығы) қорғау режимін орнату үшін «--cf-protection» опциясы қосылды.
  • Yaml плагин файлдары үшін тұтастықты тексеру үшін бақылау сомасын жасау мүмкіндігі іске асырылды, олар болашақта орындалу уақытын тексеруді ұйымдастыру үшін пайдалануды жоспарлап отыр.
  • Әрекеттер жолдармен бөлінген бірнеше опцияны көрсетуге мүмкіндік береді (бөлгіш ретінде жаңа жол қолданылады). Мысалы: include-data-dir: | a=bc=d
  • Болашақта селективті оңтайландыруларды жүзеге асыру үшін қолданылатын цикл түрлерінің талдауы жүзеге асырылды.
  • Ортақ емес және қашықтағы айнымалылармен жұмысты жылдамдату үшін оңтайландырулар қосылды.
  • Ісінуге қарсы плагин мүмкіндіктері кеңейтілді, оны енді streamlit, torch, knetworkx, distributed, skimage, bitsandbytes, tf_keras, pip, networkx және pywt кітапханаларын (негізінен, байланыстыру) пайдалану кезінде пакеттер санын азайту үшін пайдалануға болады. to pytest, IPython, nose, triton алынып тасталады және dask).

Ақпарат көзі: opennet.ru

пікір қалдыру