PyPy 2.6.1

We’re pleased to announce PyPy 2.6.1, an update to PyPy 2.6.0 released June 1. We have updated stdlib to 2.7.10, cffi to version 1.3, extended support for the new vmprof statistical profiler for multiple threads, and increased functionality of numpy.

You can download the PyPy 2.6.1 release here:

We would like to thank our donors for the continued support of the PyPy project, and our volunteers and contributors.

We would also like to 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.

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.

This release supports x86 machines on most common operating systems (Linux 32/64, Mac OS X 64, Windows 32, OpenBSD, freebsd), as well as newer ARM hardware (ARMv6 or ARMv7, with VFPv3) running Linux.

We also welcome developers of other dynamic languages to see what RPython can do for them.

Highlights

  • Bug Fixes

    • Revive non-SSE2 support

    • Fixes for detaching _io.Buffer*

    • On Windows, close (and flush) all open sockets on exiting

    • Drop support for ancient macOS v10.4 and before

    • Clear up contention in the garbage collector between trace-me-later and pinning

    • Issues reported with our previous release were resolved after reports from users on our issue tracker at https://bitbucket.org/pypy/pypy/issues or on IRC at #pypy.

  • New features:

    • cffi was updated to version 1.3

    • The python stdlib was updated to 2.7.10 from 2.7.9

    • vmprof now supports multiple threads and OS X

    • The translation process builds cffi import libraries for some stdlib packages, which should prevent confusion when package.py is not used

    • better support for gdb debugging

    • freebsd should be able to translate PyPy “out of the box” with no patches

  • Numpy:

    • Better support for record dtypes, including the align keyword

    • Implement casting and create output arrays accordingly (still missing some corner cases)

    • Support creation of unicode ndarrays

    • Better support ndarray.flags

    • Support axis argument in more functions

    • Refactor array indexing to support ellipses

    • Allow the docstrings of built-in numpy objects to be set at run-time

    • Support the buffered nditer creation keyword

  • Performance improvements:

    • Delay recursive calls to make them non-recursive

    • Skip loop unrolling if it compiles too much code

    • Tweak the heapcache

    • Add a list strategy for lists that store both floats and 32-bit integers. The latter are encoded as nonstandard NaNs. Benchmarks show that the speed of such lists is now very close to the speed of purely-int or purely-float lists.

    • Simplify implementation of ffi.gc() to avoid most weakrefs

    • Massively improve the performance of map() with more than one sequence argument

Please try it out and let us know what you think. We welcome success stories, experiments, or benchmarks, we know you are using PyPy, please tell us about it!

Cheers

The PyPy Team