Вышла новая версия интерпретатора PyPy, который написан с использованием RPython-подмножества Python со статической типизацией. В рамках данного проекта реализован JIT компилятор. Скорость его работы на 10% выше, чем у PyPy 1.7 и в 5.2 раза выше, чем у классического CPython. Было выполнено много работ для JIT на платформе ARM. Однако, в бочке меда есть и своя ложка дегтя: у PyPy более высокое потребление памяти, особенно на длительно работающих процессах. Особенности новой версии:
- Добавлена специализация списков. Это позволяет уменьшить расход памяти для списков с элементами одного типа.
- Готов бекенд для платформы ARMv7.
- Улучшена совместимость с CPython.
- Обновление стандартной библиотеки с версии 2.7.1 до 2.7.2.
- Продолжена работа над поддержкой математической библиотеки Numpy, которая происходит в отдельной ветке numpypy. В версию 1.8 добавлены функции для работы с многомерными массивами, различные размеры dtype, добавлено множество новых функций. Добавлена возможность работать с именем numpy, однако, перед тем, как импортировать numpy все равно надо написать import numpypy.
- Добавлены JIT хуки. Это позволяет писать функции, которые запускаются JIT компилятором на фазе оптимизации или окончательной трансляции кода в машинные инструкции.
Особенности PyPy:
- Он может бесшовно заменить Python 2.7 и 2.6.
- Поддерживаются ctypes, django (с sqlite), twisted (без поддержки ssl), pylons, pyglet.
- В PyPy имеется бекенд для генерации байт-кода для LLVM, NET/CLI, Java.
- Поддерживается обмен данными между микропотоками в рамках одного потока, выделенного операционной системой.
- Поддерживается «песочница» для не доверенного кода с полными возможностями без выделения небезопасных функций, в отличие от CPython.
- Поддерживаются архитектуры: x86 (IA-32), x86_64 и ARMv7. Ведется работа над поддержкой PowerPC (PPC64).
- PyPy используется для тестирования новых концепций и возможностей языка Python.
Сайт проекта
Страница загрузок
Тесты скорости PyPy
Описание идеи, лежащей в основе PyPy
>>> Подробности