PyPy 4.0 Released
Written by Kay Ewbank   
Tuesday, 10 November 2015

PyPy 4.0.0 has been released, bringing a major update for the Python interpreter and JIT compiler. The new version adds SIMD vectorization support on x86, and improved functionality of numpy among other improvements.


The new release is a major update of the PyPy python 2.7.10 compatible interpreter with a Just In Time compiler. The package provides an alternative way to compile and run Python programs. If you're confused about the numbering change, this is the follow-up release to PyPy 2.6.1. The developers have decided to move to the new numbering scheme of PyPy 4.x.x, to avoid confusion with CPython 2.7 and 3.5. The new version implements Python 2.7.10. 

PyPy is written in Python itself, using a restricted version of Python called RPython that was co-developed with it. RPython is also used separately from PyPy, and versions of other dynamic languages have been implemented using RPython, including versions of Prolog, Smalltalk, JavaScript, a Ruby implementation called Topaz and a PHP implementation called HippyVM.

PyPy is much faster than CPython, and so long as you don't need the features of Python 3, it provides an excellent alternative. If you need Python 3 support, there is a beta release of PyPy3 which implements Python 3.2.5.

The vectorization support in the new version adds a vectorization step to the trace optimizer. The step recognizes common constructs and emits SIMD code where possible. This should increase the speed of numerical applications in the NumPyPy library and for some Python programs. Because this is a very new addition, it is off by default.

The numpy implementation is another area that has been improved. Writing about the new version on the PyPy blog, the PyPy team said:

"ndarray and the numeric dtypes are very close to feature-complete; record, string and unicode dtypes are mostly supported. We have reimplemented numpy linalg, random and fft as cffi-1.0 modules that call out to the same underlying libraries that upstream numpy uses."

The final major improvement is to CFFI (C Foreign Function Interface for Python), which the developers say is:

"arguably our most significant contribution to the python ecosystem"

even though it applies to Python more generally rather than just to PyPy. The updated version also has improved manangement of object lifetimes and support for __stdcall on Win32 among other minor changes. 



More Information

PyPy blog

PyPy site

Related Articles

PyPy – a faster Python    

PyPy - Faster Python Now On ARM          

PyPy 2.5 Released

Python 3.5 Released


To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on, Twitter, FacebookGoogle+ or Linkedin



Servo Rehomed With Linux Foundation

Servo, the open source project initiated at Mozilla to create a high-performance browser engine designed for both application and embedded use, is joining the Linux Foundation.

.NET For Apache Spark Updated

The .NET bindings for Spark have been updated. The new 1.0 version adds support for .NET apps targeting .NET Standard 2.0 or later, as well as support for Apache Spark DataFrame APIs.

More News






or email your comment to:

Last Updated ( Tuesday, 10 November 2015 )