Saturday, April 30, 2011

PyPy 1.5 Released: Catching Up

We're pleased to announce the 1.5 release of PyPy. This release updates
PyPy with the features of CPython 2.7.1, including the standard library. Thus
all the features of CPython 2.6 and CPython 2.7 are now supported. It
also contains additional performance improvements. You can download it here:

What is PyPy?

PyPy is a very compliant Python interpreter, almost a drop-in replacement for
CPython 2.7.1. It's fast (pypy 1.5 and cpython 2.6.2 performance comparison)
due to its integrated tracing JIT compiler.

This release includes the features of CPython 2.6 and 2.7. It also includes a
large number of small improvements to the tracing JIT compiler. It supports
Intel machines running Linux 32/64 or Mac OS X. Windows is beta (it roughly
works but a lot of small issues have not been fixed so far). Windows 64 is
not yet supported.

More highlights

The largest change in PyPy's tracing JIT is adding support for loop invariant
code motion, which was mostly done by Håkan Ardö. This feature improves the
performance of tight loops doing numerical calculations.

The CPython extension module API has been improved and now supports many more
extensions. For information on which one are supported, please refer to our
compatibility wiki.

The cProfile profiler is now working with the JIT. However, it skews the
performance in unstudied ways. Therefore it is not yet usable to analyze
subtle performance problems (the same is true for CPython of course).

There is an external fork which includes an RPython version of the
postgresql. However, there are no prebuilt binaries for this.

We're pleased to announce the 1.5 release of PyPy. This release updates
PyPy with the features of CPython 2.7.1, including the standard library. Thus
all the features of CPython 2.6 and CPython 2.7 are now supported. It
also contains additional performance improvements. You can download it here:

What is PyPy?

PyPy is a very compliant Python interpreter, almost a drop-in replacement for
CPython 2.7.1. It's fast (pypy 1.5 and cpython 2.6.2 performance comparison)
due to its integrated tracing JIT compiler.

This release includes the features of CPython 2.6 and 2.7. It also includes a
large number of small improvements to the tracing JIT compiler. It supports
Intel machines running Linux 32/64 or Mac OS X. Windows is beta (it roughly
works but a lot of small issues have not been fixed so far). Windows 64 is
not yet supported.

More highlights

The largest change in PyPy's tracing JIT is adding support for loop invariant
code motion, which was mostly done by Håkan Ardö. This feature improves the
performance of tight loops doing numerical calculations.

The CPython extension module API has been improved and now supports many more
extensions. For information on which one are supported, please refer to our
compatibility wiki.

The cProfile profiler is now working with the JIT. However, it skews the
performance in unstudied ways. Therefore it is not yet usable to analyze
subtle performance problems (the same is true for CPython of course).

There is an external fork which includes an RPython version of the
postgresql. However, there are no prebuilt binaries for this.

Great news, 25% speedup over PyPy 1.4 is just another great step forward. I'm looking forward for times when Python will be fastest dynamic object-oriented language and it will be more and more popular. I feel that these times are very close thanks to PyPy.