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

9 июня 2017 года

Представлен новый выпуск проекта PyPy 5.8, в рамках которого развивается реализации языка 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.8 доступен для Linux (x86, x86_64, PPC64, s390x, ARMv6 или ARMv7 с VFPv3), macOS и Windows, а выпуск PyPy3.5 5.8 только для Linux x86_64.

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

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

  • Устранены критические ошибки в реализации одной из стратегий сборки мусора, приводящие к крахам многопоточных приложений и редко однопоточных;
  • Значительно увеличена производительность функций pack* и unpack* из модуля struct, особенно при работе с обычными буферами и байтовыми массивами. В синтетических тестах наблюдается ускорение от 2 до 10 раз;
  • В базовый интерпретатор добавлена, но пока отключена по умолчанию, возможность сборки с использованием оптимизаций на этапе связывания (LTO) и учётом данных профилирования, накопленных в процессе выполнения программы (PGO, Profile-guided optimization), которые позволяют добиться повышения скорости выполнения кода, для которого не применяется JIT;
  • При финансовой поддержке Mozilla из

CPython 3.5 перенесены некоторые исправления и обеспечена полная поддержка многоэтапной инициализации модулей ( PEP 489);

  • До версии 1.10.1 обновлён модуль CFFI (C Foreign Function Interface) с реализацией интерфейса для вызова функций, написанных на языке Си, который может выступать в качестве более простой альтернативы модулю ctypes;
  • Обеспечена поддержка на днях вышедшего релиза научной библиотеки NumPy 1.13.0, для которого реализованы все недостающие возможности C-API, что положительно повлияло на совместимость и с другими Си-модулями.

Источники

править


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

Комментарии

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