High-speed Python Interpreter “PyPy 7.3.1” Released

April 10, PyPy team released the Python interpreter “PyPy 7.3.1”.  Interpreters for both PyPy2.7 series and PyPy 3.6 series are released at the same time.

PyPy is a Python interpreter written in “RPython”, which is a subset of Python.  Compared with CPython, a standard Python written in C, generally PyPy has the capability of executing Phython code with greater speed.  In addition to its support for Python modules written in C/C++, it offers great compatibility with Python.  It also offers “stackless mode”.

PyPy 7.3.1 is the first point release of PyPy 7.3, released in December 2019.  It includes two different interpreters.  One is PyPy2.7, which supports the syntax and the features of Python 2.7 and includes stdlib for Cpython 2.7.13.  The other one is PyPy 3.6, which supports Python 3.6 and includes stdlib for CPython 3.6.9.  To both of the interpreters, no API changes have been added since the release of 7.3.

One of the most notable changes added to this version is that Conda Forge now supports PyPy as a Python interpreter.  Thanks to this change, C-extension-based packages can be built and uploaded.  As PyPy team worked with Python packaging group, now pip and setupstools, which are installed together, are updated.  

It brings better performance with maximum 20% less warmup time.  The performance of io.StringIO has also been improved, and now it is faster to be at par with CPython.  JIT code generation and closure are also improved to be faster.

The CFFI backend has been updated to v14.0.  It allows C-implemented-code to be used for Python.   Although still experimental, the cppyy backend has been enabled for win32.  Cppyy is used for wrapping C++ code for Python.

As a side note, it is reported that the development of PyPy and CFFI is transitioning to Heptapod (https://foss.heptapod.net/pypy/pypy).