Summary
Summary
9
was released on October 5th, 2020.
Interpreter improvements:
● PEP 573, fast access to module state from methods of C extension types;
● PEP 617, CPython now uses a new parser based on PEG;
● a number of Python builtins (range, tuple, set, frozenset, list, dict) are now
sped up using PEP 590 vectorcall;
● garbage collection does not block on resurrected objects;
● a number of Python modules (_abc, audioop, _bz2, _codecs,
_contextvars, _crypt, _functools, _jason, _locale, math, operator,
resource, time, _weakref) now use multiphase initialization as defined by
PEP 489;
● a number of standard library modules (audioop, ast, grp, _hashlib, pwd,
_posixsubprocess, random, select, struct, termios, zlib) are now
using the stable ABI defined by PEP 384.
● PEP 615, the IANA Time ZonITA Database is now present in the standard
library in the zoneinfo module;
● an implementation of a topological sort of a graph is now provided in the new
graphlib module.
When Python 2.7 was still supported, a lot of functionality in Python 3 was kept for
backward compatibility with Python 2.7. With the end of Python 2 support, these
backward compatibility layers have been removed, or will be removed soon. Most of
them emitted a DeprecationWarning warning for several years. For example, using
collections.Mapping instead of collections.abc.Mapping emits a
DeprecationWarning since Python 3.3, released in 2012.
Python 3.9 is the last version providing those Python 2 backward compatibility
layers, to give more time to Python projects maintainers to organize the removal of
the Python 2 support and add support for Python 3.9.