Релиз PyPy 5.9, реализации Python, написанной на языке Python

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

6 октября 2017 года

Состоялся новый выпуск проекта PyPy 5.9, в рамках которого развивается реализации языка Python, написанной на языке Python (используется статически типизированное подмножество RPython, Restricted Python). Выпуск подготовлен одновременно для веток PyPy2.7 и PyPy3.5, обеспечивающих поддержку синтаксиса Python 2.7 и Python 3.5, и поставляемых с stdlib 2.7.13 и 3.5.3. Выпуск PyPy2.7 5.9 доступен для Linux (x86, x86_64, PPC64, s390x, ARMv6 или ARMv7 с VFPv3), macOS и Windows, а выпуск PyPy3.5 5.9, который пока не вышел из стадии бета-версии, только для Linux x86_64.

Особенностью PyPy является использование JIT-компилятора, на лету транслирующего некоторые элементы в машинный код, что позволяет обеспечить высокий уровень производительности - при выполнении некоторых операций PyPy в несколько раз обгоняет классическую реализацию Python на языке Си (CPython). Ценой высокой производительности и использования JIT-компиляции является более высокое потребление памяти - общее потребление памяти в сложных и длительно работающих процессах (например, при трансляции PyPy силами самого PyPy) превышает потребление CPython в полтора-два раза.

Основные улучшения:

  • В PyPy2.7 обеспечена полноценная поддержка приложений, написанных с использованием пакета с функциями для научных вычислений NumPy и библиотеки для анализа данных Pandas. Также теперь работоспособны и многие другие Python-модули, использующие вставки на C-API;
  • Поддержка интеграции с компилятором Cython 0.27.1, совместное использование которого с PyPy позволяет существенно расширить поддержки Python-проектов, использующих C-API;
  • Проведена оптимизация парсера JSON для увеличения скорости работы с повторяющимися строковыми ключами и сокращения потребления памяти. Для крупных JSON-файлов c повторяющимися ключами отмечается до 50% сокращение потребления памяти и до 15% ускорение разбора.
  • До версии 1.11.1 обновлён модуль CFFI (C Foreign Function Interface) с реализацией интерфейса для вызова функций, написанных на языке Си, который может выступать в качестве более простой альтернативы модулю ctypes. В новой версии добавлена поддержка сложных аргументов в режиме API, а также типов char16_t и char32_t, улучшена поддержка callback-вызовов.
  • Решены многие проблемы в обвязке для C-API, приводящие к излишнему потреблению памяти и несовместимостям.

Источники[править]


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

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

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