The team behind Python interpreter PyPy has released version 2.0, and has also announced an alpha version of PyPy 2.0 for ARM processors.
PyPy has a JIT compiler so achieves fast performance of Python programs.
The blog post announcing PyPy 2.0, codenamed Einstein Sandwich says:
“This is a stable release that brings a swath of bugfixes, small performance improvements and compatibility fixes.”
The two biggest changes to the new version are support for stackless including for greenlets, and the inclusion of release 0.6 of cffi as a built-in module. This is the preferred way of calling C from Python that works well on PyPy.
The alpha release for ARM processors is designed to run on Raspberry Pi mini computers, as well as on ARMv6 or ARMv7 with VFPv3 support. It is described by the PyPy team as mostly a technology preview as the JIT is not yet stable enough for the full release.
The post about the new version says it supports:
“anything with ARMv6 (like the Raspberry Pi) or ARMv7 (like Beagleboard, Chromebook, Cubieboard, etc.) that supports VFPv3 should work. We provide builds with support for both ARM EABI variants: hard-float and some older operating systems soft-float.”
The alpha version doesn’t include PyPy's stackless Python support.
The blog post also includes details of a benchmark testing the new version on a Cortex A9 with 4MB of cache. In some tests the alpha outperformed CPython on ARM by up to 46 times. Analysing the results, the PyPy team says:
“It seems that Cortex A9, while significantly slower than Xeon, has higher slowdowns with a large interpreter (CPython) than a JIT compiler (PyPy). This comes as a surprise to me, especially that our ARM assembler is not nearly as polished as our x86 assembler.”
The PyPy 2.0 X86 binaries and the ARM alpha files can be downloaded here: http://pypy.org/download.html