Thursday, August 1, 2013

PyPy 2.1 - Considered ARMful

We're pleased to announce PyPy 2.1, which targets version 2.7.3 of the Python
language. This is the first release with official support for ARM processors in the JIT.
This release also contains several bugfixes and performance improvements.

The first beta of PyPy3 2.1, targeting version 3 of the Python language, was
just released, more details can be found here.

What is PyPy?

PyPy is a very compliant Python interpreter, almost a drop-in replacement for
CPython 2.7. It's fast (pypy 2.1 and cpython 2.7.2 performance comparison)
due to its integrated tracing JIT compiler.

This release supports x86 machines running Linux 32/64, Mac OS X 64 or Windows
32. This release also supports ARM machines running Linux 32bit - anything with
ARMv6 (like the Raspberry Pi) or ARMv7 (like the Beagleboard,
Chromebook, Cubieboard, etc.) that supports VFPv3 should work. Both
hard-float armhf/gnueabihf and soft-float armel/gnueabi builds are
provided. The armhf builds for Raspbian are created using the Raspberry Pi
custom cross-compilation toolchain
based on gcc-arm-linux-gnueabihf and should work on ARMv6 and
ARMv7 devices running Debian or Raspbian. The armel builds are built
using the gcc-arm-linux-gnuebi toolchain provided by Ubuntu and
currently target ARMv7.

Windows 64 work is still stalling, we would welcome a volunteer
to handle that.

Highlights

JIT support for ARM, architecture versions 6 and 7, hard- and soft-float ABI

We're pleased to announce PyPy 2.1, which targets version 2.7.3 of the Python
language. This is the first release with official support for ARM processors in the JIT.
This release also contains several bugfixes and performance improvements.

The first beta of PyPy3 2.1, targeting version 3 of the Python language, was
just released, more details can be found here.

What is PyPy?

PyPy is a very compliant Python interpreter, almost a drop-in replacement for
CPython 2.7. It's fast (pypy 2.1 and cpython 2.7.2 performance comparison)
due to its integrated tracing JIT compiler.

This release supports x86 machines running Linux 32/64, Mac OS X 64 or Windows
32. This release also supports ARM machines running Linux 32bit - anything with
ARMv6 (like the Raspberry Pi) or ARMv7 (like the Beagleboard,
Chromebook, Cubieboard, etc.) that supports VFPv3 should work. Both
hard-float armhf/gnueabihf and soft-float armel/gnueabi builds are
provided. The armhf builds for Raspbian are created using the Raspberry Pi
custom cross-compilation toolchain
based on gcc-arm-linux-gnueabihf and should work on ARMv6 and
ARMv7 devices running Debian or Raspbian. The armel builds are built
using the gcc-arm-linux-gnuebi toolchain provided by Ubuntu and
currently target ARMv7.

Windows 64 work is still stalling, we would welcome a volunteer
to handle that.

Highlights

JIT support for ARM, architecture versions 6 and 7, hard- and soft-float ABI

cdecimal is purely a speed gain. On PyPy the pure Python decimal.py is accelerated by the JIT, though it is probably possible to gain some small extra factor by rewriting it directly in RPython.

If your problem is merely that project X has listed cdecimal in its dependencies, then we could add a "cdecimal.egg-info" file that says "yup, it's installed" and be done (assuming that the API is really the same one as decimal.py).