Издаване на 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“ за указване на шаблони на файлове с данни, които са дефинирани в конфигурацията, но трябва да бъдат предоставени отделно от изпълнимия файл при изграждане в режим на един файл.
  • Добавена е опцията „--cf-protection“ за задаване на режима на защита на CFI (интегритет на контролния поток) в GCC, който блокира нарушенията на нормалния ред на изпълнение (контролен поток).
  • За плъгини yaml файлове е въведена възможност за създаване на контролни суми за проверки на целостта, които в бъдеще планират да използват за организиране на проверка по време на изпълнение.
  • Действията позволяват да бъдат зададени множество опции, разделени с редове (нов ред се използва като разделител). Например: include-data-dir: | a=bc=d
  • Въведен е анализ на типовете цикли, който ще се използва в бъдеще за реализиране на селективни оптимизации.
  • Добавени оптимизации за ускоряване на работата с несподелени и екранирани променливи.
  • Възможностите на плъгина против раздуване са разширени, който вече може да се използва за намаляване на броя на пакетите при използване на библиотеките streamlit, torch, knetworkx, distributed, skimage, bitsandbytes, tf_keras, pip, networkx и pywt (основно обвързващи към pytest, IPython, nos, triton е изключен и dask).

Източник: opennet.ru

Добавяне на нов коментар