PyPy3 2.4 - Snow White¶
We’re pleased to announce PyPy3 2.4, which contains significant performance enhancements and bug fixes.
You can download the PyPy3 2.4.0 release here:
We would like to thank our donors for the continued support of the PyPy project, and for those who donate to our three sub-projects. We’ve shown quite a bit of progress, but we’re slowly running out of funds. Please consider donating more, or even better convince your employer to donate, so we can finish those projects! The three sub-projects are:
- Py3k (supporting Python 3.x): This is a Python 3.2.5 compatible
version we call PyPy3 2.4, and we are working toward a Python 3.3 compatible version
STM (software transactional memory): We have released a first working version, and continue to try out new promising paths of achieving a fast multithreaded Python
NumPy which requires installation of our fork of upstream numpy, available on bitbucket
What is PyPy?¶
PyPy is a very compliant Python interpreter, almost a drop-in replacement for CPython 2.7 or 3.2.5. It’s fast (pypy 2.4 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, and OpenBSD), as well as newer ARM hardware (ARMv6 or ARMv7, with VFPv3) running Linux.
While we support 32 bit python on Windows, work on the native Windows 64 bit python is still stalling, we would welcome a volunteer to handle that.
PyPy3 Highlights¶
Issues reported with our previous release were fixed after reports from users on our new issue tracker at https://bitbucket.org/pypy/pypy/issues or on IRC at #pypy. Here is a summary of the user-facing PyPy3 specific changes:
Better Windows compatibility, e.g. the nt module functions _getfinalpathname & _getfileinformation are now supported (the former is required for the popular pathlib library for example)
Various fsencode PEP 383 related fixes to the posix module (readlink, uname, ttyname and ctermid) and improved locale handling
Switched default binary name os POSIX distributions to ‘pypy3’ (which symlinks to to ‘pypy3.2’)
Fixed a couple different crashes related to parsing Python 3 source code