The beta version of PyPy 2.0 has been released, and adds support for ARM CPUs and CFFI compatibility.
The PyPy Status blog says that
“this release is not a typical beta, in a sense the stability is the same or better than 1.9 and can be used in production.”
and goes on to say that while the beta has many performance improvements, it also has a few performance regressions, which is why the team isn’t labelling the new release as 2.0 final.
If you’ve not heard of PyPy, it’s a Python alternative that has a just-in-time compiler that can mean Python code runs faster on PyPy. It also offers sandbox facilities so you can test code securely, and a stackless mode that provides micro-threads for massive concurrency.
The new version has added support for ARM machines running Linux, though the team describes Windows 64 work as ‘stalling’.
The support for CFFI means the new version can call C code from Python using the Foreign Function Interface. The blog post says CFFI is very fast, but it is missing one optimization that will make it as fast as a native call from C.
There are some features that the developers have omitted from this beta but that they hope will be included in the final release, including greenlets support in the JIT. However, two features that aren’t going to be finished in time for 2.0 are a faster JIT warmup time, and support for Software Transactional Memory.