PyPy 7.0 is out and lets devs try their hand at collecting garbage


Python implementation PyPy is now available in v7.0 with interpreters for Python 2.7, 3.5, and 3.6 features.

The project is known as a faster working drop-in replacement for CPython, the language’s reference implementation. Other than speed, PyPy’s developers advertise their project’s tendency to use less memory and its support for Stackless Python.

V7.0 comes with improved ways to look into the garbage collector’s (GC) performance and an option to manually manage the module. The latter can be done by using the new features gc.disable() and gc.collect_step(), which disable the major collections and allow manual execution of single incremental collection steps respectively. Since garbage collector runs in PyPy can have a tendency to interrupt the execution of a program, manual control could prove handy in a few scenarios where long pauses aren’t an option.

Advertisement

GC hooks, which help with learning about the collector’s performance, now measure time in seconds, making the results easier to work with than the opaque unit used before. Speaking of performance, the PyPy team has also gotten rid of some multithreading and multiprocessing issues, and speed up a couple of operations by tweaking implementations.

Other than that the cffi module in PyPy has been updated to v1.12 and the cppyy backend to 1.4. Those familiar with the project’s reverse debugger will be happy to learn that its development branch has been merged into the default one. Though users will still need a special build to use it, it can be compiled from the same 7.0.0 source and therefore should now always be up-to-date.

Plans to change the internal representation of unicode to UTF8 with this release had to be postponed, since the branch wasn’t in satisfactory shape at the time of the release. It will therefore be part of a future upgrade.
PyPy 7.0 runs on x86 machines on the most common operating systems, as well as on s390x and variants of PPC64 running Linux. Details can be found in the changelog part of the project’s documentation.

- Advertisement -