Skip to main content

PyPy 4.0.1 released please update

PyPy 4.0.1

We have released PyPy 4.0.1, three weeks after PyPy 4.0.0. We have fixed a few critical bugs in the JIT compiled code, reported by users. We therefore encourage all users of PyPy to update to this version. There are a few minor enhancements in this version as well.

You can download the PyPy 4.0.1 release here:
We would like to thank our donors for the continued support of the PyPy project.
We would also like to thank our contributors and encourage new people to join the project. PyPy has many layers and we need help with all of them: PyPy and RPython documentation improvements, tweaking popular modules to run on pypy, or general help with making RPython’s JIT even better.


CFFI update

While not applicable only to PyPy, cffi is arguably our most significant contribution to the python ecosystem. PyPy 4.0.1 ships with cffi-1.3.1 with the improvements it brings.


What is PyPy?

PyPy is a very compliant Python interpreter, almost a drop-in replacement for CPython 2.7. It’s fast (pypy and cpython 2.7.x performance comparison) due to its integrated tracing JIT compiler.
We also welcome developers of other dynamic languages to see what RPython can do for them.
This release supports x86 machines on most common operating systems (Linux 32/64, Mac OS X 64, Windows 32, OpenBSD, freebsd), newer ARM hardware (ARMv6 or ARMv7, with VFPv3) running Linux, and the big- and little-endian variants of ppc64 running Linux.


Other Highlights (since 4.0.0 released three weeks ago)

  • Bug Fixes
    • Fix a bug when unrolling double loops in JITted code
    • Fix multiple memory leaks in the ssl module, one of which affected CPython as well (thanks to Alex Gaynor for pointing those out)
    • Use pkg-config to find ssl headers on OS-X
    • Issues reported with our previous release were resolved after reports from users on our issue tracker at or on IRC at #pypy
  • New features
    • Internal cleanup of RPython class handling
    • Support stackless and greenlets on PPC machines
    • Improve debug logging in subprocesses: use PYPYLOG=jit:log.%d for example to have all subprocesses write the JIT log to a file called ‘log.%d’, with ‘%d’ replaced with the subprocess’ PID.
    • Support PyOS_double_to_string in our cpyext capi compatibility layer
  • Numpy
    • Improve support for __array_interface__
    • Propagate most NAN mantissas through float16-float32-float64 conversions
  • Performance improvements and refactorings
    • Improvements in slicing byte arrays
    • Improvements in enumerate()
    • Silence some warnings while translating
Please update, and continue to help us make PyPy better.

The PyPy Team


Marius Gedminas wrote on 2015-11-20 11:20:

I'd love to upgrade and see if that makes my segfault go away, but the builds at are two weeks old?

Armin Rigo wrote on 2015-11-20 12:06:

Hi Marius! How about directing such complains to the maintainer of the PPA instead of us? :-)

Gerd Puin wrote on 2015-11-27 05:46:

Where are the benchmark instructions for the official set?

Armin Rigo wrote on 2015-11-27 09:57: , file This file has various options; try this: ``python --changed /path/to/pypy``. This example would compare the speed on top of your system's python and on top of /path/to/pypy. Try also ``--fast`` if you're not patient enough.

Unknown wrote on 2015-11-28 02:54:

can I run pandas in PyPy. I am using Python for Data Science

Gerd Puin wrote on 2015-11-28 04:20:

Thanks Armin, that got me a result.json file - is there a tool to present the data in a more human-readable way?

Armin Rigo wrote on 2015-11-29 08:03:

The command itself prints a human-readable result at the end; you can ignore result.json.

Gerd Puin wrote on 2015-11-29 18:48:

I see. Just an idea - maybe the results could be reviewed on via a web interface?