This release contains several bugfixes and enhancements. Among the user-facing improvements specific to PyPy3:
- 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 the default binary name on POSIX distributions from 'pypy' to 'pypy3' (which symlinks to to 'pypy3.2')
- Fixed a couple different crashes related to parsing Python 3 source code
And improvements shared with the recent PyPy 2.4.0 release:
- internal refactoring in string and GIL handling which led to significant speedups
- improved handling of multiple objects (like sockets) in long-running programs. They are collected and released more efficiently, reducing memory use. In simpler terms - we closed what looked like a memory leak
- Windows builds now link statically to zlib, expat, bzip, and openssl-1.0.1i
- Many issues were resolved since the 2.3.1 release in June
You can download PyPy3 2.4.0 here http://pypy.org/download.html.
PyPy is a very compliant Python interpreter, almost a drop-in replacement for CPython 2.7 and 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 running Linux 32/64, Mac OS X 64, Windows, and OpenBSD, as well as newer ARM hardware (ARMv6 or ARMv7, with VFPv3) running Linux.
We would like to thank our donors for the continued support of the PyPy project.
The complete release notice is here.
Please try it out and let us know what you think. We especially welcome success stories, please tell us about how it has helped you!
Cheers, The PyPy Team