Релиз Nuitka 2.0 — компилятора для языка Python

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

5 февраля 2024 года состоялся релиз Nuitka 2.0. Это проект компилятора для трансляции скриптов на языке Python в представление на языке C, которое затем можно скомпилировать в исполняемый файл, использующий libpython для обеспечения максимальной совместимости с CPython. В программном решении используются штатные средства CPython для управления объектами.

Исходный код проекта Nuitka выложен на GitHub под лицензией Apache.

В Nuitka 2.0 обеспечена полная совместимость с актуальными выпусками Python 2.6, 2.7, а также от версии 3.3 до версии 3.11 включительно. Разработчики проекта пояснили, что, по сравнению с CPython, скомпилированные скрипты в Nuitka демонстрируют в тестах pystone повышение производительности на 335%.

Согласно данным OpenNET, основные доработки и изменения в Nuitka 2.0:

  • добавлена возможность использования переменных в конфигурации пакета, позволяющая во время компиляции запрашивать значения из установленных пакетов и использовать эти значения для определения бэкенда. Поддержка переменных в конфигурации позволяет решить штатными способами многие задачи, для которых ранее требовалось подключение плагинов;

  • добавлена поддержка параметров, задаваемых пользователем для влияния на конфигурацию каждого пакета. Параметры могут быть прочитаны при помощи новой функции get_parameter и использованы для выбора поведения модулей (например, можно выставить параметр для отключения Numba JIT или Torch JIT);

  • добавлена опция "--include-onefile-external-data" для задания шаблонов файлов с данными, которые определены в конфигурации но должны поставляться отдельно от исполняемого файла при сборке в однофайловом режиме (onefile);

  • добавлена опция "--cf-protection" для выставления в GCC режима защиты CFI (Control Flow Integrity), блокирующего нарушения нормального порядка выполнения (control flow);

  • для yaml-файлов плагинов реализована возможность создания контрольных сумм для проверки целостности, которые в будущем планируют использовать для организации верификации во время выполнения;

  • в Actions разрешено указание нескольких опций, разделённых по строкам (новая строка используется как разделитель);

  • реализован анализ типов циклов, который в будущем будет задействован для реализации выборочных оптимизаций;

  • добавлены оптимизации для ускорения работы с неразделяемыми и экранированными переменными;

  • расширены возможности плагина anti-bloat, который теперь может применяться для уменьшения числа пакетов при использовании библиотек streamlit, torch, knetworkx, distributed, skimage, bitsandbytes, tf_keras, pip, networkx и pywt (в основном исключена привязка к pytest, IPython, nose, triton и dask).

Источник: https://habr.com/ru/news/791744/


Интересные статьи

Интересные статьи

Мы рады представить вам релиз GitLab 14.1 с возможностью собирать, публиковать и распространять Helm-чарты, создавать правила эскалации для ответственных за страницу, подключать обработчики заданий Gi...
Добрый день уважаемые читатели! Данная статья является продолжением публикации "Повторяем когортный анализ, выполненный в Power BI, силами Python" (ссылка). Настоятельно ...
В мои обязанности входит наём Python-разработчиков. Если у заинтересовавшего меня специалиста есть GitHub-аккаунт — я туда загляну. Все так делают. Может быть, вы этого и не знаете, н...
Привет, Хабр! Столько всего хочется сегодня рассказать, что даже сложно выбрать, с чего начать. Так что сначала попробую коротко обо всем самом важном: Продукту CLion вчера исполнилось 5 ...
Год приключений с graphene-python Всем привет, я python-разработчик. Последний год я работал с graphene-python + django ORM и за это время я пытался создать какой-то инструмент, чтобы сделать ...