Состоялся (https://morepypy.blogspot.ru/2017/10/pypy-v59-released-now-s...) новый выпуск проекта PyPy 5.9 (http://pypy.org/), в рамках которого развивается реализации языка Python, написанной на языке Python (используется статически типизированное подмножество RPython (http://doc.pypy.org/en/latest/coding-guide.html#id1), 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-компилятора, на лету транслирующего некоторые элементы в машинный код, что позволяет обеспечить высокий (http://speed.pypy.org/) уровень производительности - при выполнении некоторых операций PyPy в несколько раз обгоняет классическую реализацию Python на языке Си (CPython). Ценой высокой производительности и использования JIT-компиляции является более высокое потребление памяти - общее потребление памяти в сложных и длительно работающих процессах (например, при трансляции PyPy силами самого PyPy) превышает потребление CPython в полтора-два раза.
Основные улучшения (http://doc.pypy.org/en/latest/release-v5.9.0.html):
- В PyPy2.7 обеспечена полноценная поддержка приложений, написанных с использованием пакета с функциями для научных вычислений NumPy (http://www.numpy.org/) и библиотеки для анализа данных Pandas (http://pandas.pydata.org/). Также теперь работоспособны и многие другие Python-модули, использующие вставки на C-API;
- Поддержка интеграции с компилятором Cython 0.27.1 (https://www.opennet.ru/opennews/art.shtml?num=47307), совместное использование которого с PyPy позволяет существенно расширить поддержки Python-проектов, использующих C-API;
- Проведена оптимизация парсера JSON для увеличения скорости работы с повторяющимися строковыми ключами и сокращения потребления памяти. Для крупных JSON-файлов c повторяющимися ключами отмечается до 50% сокращение потребления памяти и до 15% ускорение разбора.
- До версии 1.11.1 обновлён модуль CFFI (https://cffi.readthedocs.org/en/latest/) (C Foreign Function Interface) с реализацией интерфейса для вызова функций, написанных на языке Си, который может выступать в качестве более простой альтернативы модулю ctypes (http://python.net/crew/theller/ctypes/). В новой версии добавлена поддержка сложных аргументов в режиме API, а также типов char16_t и char32_t, улучшена поддержка callback-вызовов.
- Решены многие проблемы с обвязке для C-API, приводящие к излишнему потреблению памяти и несовместимостям.
URL: https://morepypy.blogspot.ru/2017/10/pypy-v59-released-now-s...
Новость: http://www.opennet.ru/opennews/art.shtml?num=47340