[Python-Dev] PyPy3 2.4.0 released
pjenvey at underboss.org
Tue Oct 21 19:03:05 CEST 2014
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:
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
Further Highlights (shared w/ PyPy2)
Benchmarks improved after internal enhancements in string and
bytearray handling, and a major rewrite of the GIL handling. This means
that external calls are now a lot faster, especially the CFFI ones. It also
means better performance in a lot of corner cases with handling strings or
bytearrays. The main bugfix is handling of many socket objects in your
program which in the long run used to "leak" memory.
We fixed a memory leak in IO in the sandbox_ code
We welcomed more than 12 new contributors, and conducted two Google
Summer of Code projects, as well as other student projects not
directly related to Summer of Code.
* Reduced internal copying of bytearray operations
* Tweak the internal structure of StringBuilder to speed up large string
handling, which becomes advantageous on large programs at the cost of slightly
slower small *benchmark* type programs.
* Boost performance of thread-local variables in both unjitted and jitted code,
this mostly affects errno handling on linux, which makes external calls
* Move to a mixed polling and mutex GIL model that make mutlithreaded jitted
code run *much* faster
* Optimize errno handling in linux (x86 and x86-64 only)
* Remove ctypes pythonapi and ctypes.PyDLL, which never worked on PyPy
* Classes in the ast module are now distinct from structures used by
the compiler, which simplifies and speeds up translation of our
source code to the PyPy binary interpreter
* Win32 now links statically to zlib, expat, bzip, and openssl-1.0.1i.
No more missing DLLs
* Many issues were resolved_ since the 2.3.1 release in June
.. _`whats-new`: http://doc.pypy.org/en/latest/whatsnew-2.4.0.html
.. _resolved: https://bitbucket.org/pypy/pypy/issues?status=resolved
.. _sandbox: http://doc.pypy.org/en/latest/sandbox.html
We have further improvements on the way: rpython file handling,
numpy linalg compatibility, as well
as improved GC and many smaller improvements.
Please try it out and let us know what you think. We especially welcome
success stories, we know you are using PyPy, please tell us about it!
The PyPy Team
More information about the Python-Dev