Python 3.8.0 is almost ready. After a rather tumultuous few days, we are very happy to announce the availability of the release candidate:
This release, 3.8.0rc1, is the final planned release preview. Assuming no critical problems are found prior to 2019-10-14, the scheduled release date for 3.8.0, no code changes are planned between this release candidate and the final release.
Please keep in mind that this is not the gold release yet and as such its use is not recommended for production environments.
Major new features of the 3.8 series, compared to 3.7
Some of the new major new features and changes in Python 3.8 are:
- PEP 572, Assignment expressions
- PEP 570, Positional-only arguments
- PEP 587, Python Initialization Configuration (improved embedding)
- PEP 590, Vectorcall: a fast calling protocol for CPython
- PEP 578, Runtime audit hooks
- PEP 574, Pickle protocol 5 with out-of-band data
- Typing-related: PEP 591 (Final qualifier), PEP 586 (Literal types), and PEP 589 (TypedDict)
- Parallel filesystem cache for compiled bytecode
- Debug builds share ABI as release builds
- f-strings support a handy
=specifier for debugging
continueis now legal in
- on Windows, the default
asyncioevent loop is now
- on macOS, the spawn start method is now used by default in
multiprocessingcan now use shared memory segments to avoid pickling costs between processes
typed_astis merged back to CPython
LOAD_GLOBALis now 40% faster
picklenow uses Protocol 4 by default, improving performance
- (Hey, fellow core developer, if a feature you find important is missing from this list, let Łukasz know.)
Call to action: focus on the docs now
- Are all your changes properly documented?
- Did you notice other changes you know of to have insufficient documentation?
- Can you help with the “What’s New” document?