Команда интерпретатора Python PyPy выпустила версию 2.0, а также анонсировала альфа-версию PyPy 2.0 для процессоров ARM.
PyPy имеет JIT-компилятор, что обеспечивает быструю производительность программ Python.
Сообщение в блоге, анонсирующее PyPy 2.0 под кодовым названием Einstein Sandwich, гласит:
«Это стабильный выпуск, который содержит ряд исправлений, небольших улучшений производительности и исправлений совместимости».
Два самых больших изменения в новой версии — это поддержка безстека, в том числе для гринлетов, и включение версии 0.6 cffi в качестве встроенного модуля. Это предпочтительный способ вызова C из Python, который хорошо работает с PyPy.
Альфа-версия для процессоров ARM предназначена для работы на мини-компьютерах Raspberry Pi, а также на ARMv6 или ARMv7 с поддержкой VFPv3. Команда PyPy описывает его в основном как предварительную версию технологии, поскольку JIT еще недостаточно стабильна для полной версии.
В сообщении о новой версии говорится, что она поддерживает:
«Все с ARMv6 (например, Raspberry Pi) или ARMv7 (например, Beagleboard, Chromebook, Cubieboard и т. Д.), Которое поддерживает VFPv3, должно работать. Мы предоставляем сборки с поддержкой обоих вариантов ARM EABI: hard-float и некоторых старых операционных систем soft-float ».
Альфа-версия не включает поддержку Python без стека PyPy.
Сообщение в блоге также включает подробности эталонного тестирования новой версии на Cortex A9 с 4 МБ кеш-памяти. В некоторых тестах альфа-версия превзошла CPython на ARM до 46 раз. Анализируя результаты, команда PyPy говорит:
«Кажется, что Cortex A9, хотя и значительно медленнее, чем Xeon, имеет более высокое замедление с большим интерпретатором (CPython), чем с JIT-компилятором (PyPy). Для меня это стало неожиданностью, особенно потому, что наш ассемблер ARM не так совершенен, как наш ассемблер x86 ».
Бинарные файлы PyPy 2.0 X86 и альфа-файлы ARM можно загрузить здесь: http://pypy.org/download.html