Перейти к содержанию

Выпуск Nuitka 0.5.9, компилятора для языка Python

Материал из Викиновостей, свободного источника новостей

25 февраля 2015 года

Представлен новый выпуск проекта Nuitka, в рамках которого развивается компилятор, позволяющий транслировать скрипт на языке Python в представление на C++, которое затем можно скомпилировать в исполняемый файл, использующий libpython для обеспечения максимальной совместимости с CPython (используются штатные средства CPython для управления объектами). Обеспечена полная совместимость с Python 2.6, 2.7, 3.2, 3.3 и 3.4. По сравнению с CPython скомпилированные скрипты демонстрируют в тестах pystone повышение производительности на 258%. Код проекта распространяется под лицензией Apache.

В новой версии:

  • Оптимизации:
  • Встроенная функция getattr оптимизируется во время компиляции;
  • При вызовах PyCFunction не происходит построения кортежа (tuple) для вызова функции без параметра или с одним параметром;
  • Работа над ошибками:
  • Совместимость. Проверки итераторов осуществлялись при помощи PyIter_Check, которая работает неправильно за пределами ядра python-интерпретатора. Теперь проверка осуществляется при помощи helper'a HAS_ITERNEXT, который сравнивает извлеченные (real non-iterator) указатели на объекты.
  • Python3. Ошибка при создании словарей классов при вызове __prepare__;
  • Генерация исполнимых файлов для OS X. Разделяемые библиотеки и модули расширения не обновляли пути для загрузки своих разделяемых библиотек;
  • Генерация исполнимых файлов для Linux. Разделяемые библиотеки копировались в подкаталог .dist, доступный только для чтения, что потенциально мешало исполнению chrpath;
  • Генерация исполнимых файлов. При "заморозке" (freezing) стандартной библиотеки пути к компилятору Nuitka и текущая директория оставались в переменной текущих путей, что могло привести к использованию неправильных файлов.
  • Новые возможности
  • Добавлена опция "--recurse-pattern" для указания модулей по именам файлов, что для Python3 единственный способ указать только необходимые модули в пакете (а не все);
  • Добавлена опция "--generate-c++-only" для только перегенерации исходных текстов (без запуска компилятора);
  • Опция "--с++-only" переименована в "--recompile-c++-only" для перекомпиляции исходных текстов;
  • Тестирование
  • Добавлена поддержка тестов покрытия (code coverage tests) результатов работы на определенном тестовом входном файле и на всём наборе тестов;
  • Добавлено уведомление о пропущенных тестах.

Источники

[править]


Creative Commons
Creative Commons
Эта статья содержит материалы из статьи «Выпуск Nuitka 0.5.9, компилятора для языка Python», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.