PyPy 1.7 widens the performance "sweet spot"
The PyPy development team has released version 1.7 of its "very compliant" Python interpreter with integrated tracing just-in-time (JIT) compiler. The developers say that the focus of the new update was widening the range of code that PyPy can speed up, which the developers refer to as the "sweet spot". In their benchmarks, PyPy 1.7 performs approximately 30 per cent faster than 1.6 and "up to 20 times faster on some benchmarks".
Version 1.7 also brings a new JSON encoder, written in pure Python, that can be up to twice as fast as CPython's C extensions. The stackless features in PyPy have now been enabled by default. Other changes include compatibility fixes with CPython, improvements to the memory footprint of some of the PyPy RPython modules, and fixes for various bugs found in the previous version. The developers note that NumPy in PyPy has been renamed "numpypy"; to use it developers can write
import numpypy as numpy.
Some features didn't make it into the 1.7 release, but should be included in PyPy 1.8. These include a specialised list implementation that "should drastically improve performance/memory impact of some applications", and two new JIT assembler backends for PowerPC and ARM processors.
More details about the update can be found in a post on the PyPy Status Blog and on the Features page. PyPy 1.7 is available to download from the project's site. Hosted on Bitbucket, PyPy source code is made available under the MIT License.