Yesterday, the first alpha of Python 3.8.0 was announced in a Python blog post. The most important change in this version is the addition of Assignment Expressions. This is the first alpha, three more are yet to be released. Keep in mind that the features are raw and not meant for production use.
Some changes in Python 3.8.0 alpha 1:
- When spawning child processes, the command line option -I to run Python in isolated mode is now copied by the multiprocessing and distutils modules as well
- OpenSSL is updated to OpenSSL 1.1.0i for Windows builds
- The thread safety of error handling is fixed in _ssl
- A small fix to prevent buffer overrun in os.symlink for Windows
Changes in core and builtins
- PEP 572: This introduces a new way which assigns values to variables in an expression by using the NAME := expr notation
- Parenthesis are made optional for named expressions in a while statement.
- Python initialization is reorganized to get exceptions and sys.stderr early.
- A small memory leak is fixed in pymain_parse_cmdline_impl.
- For unbalanced parentheses in f-string, the syntax messages are better.
- End line and end column position information are added to the Python AST nodes
- During the Python initialization, the Python filesystem encoding is read faster
- Shared memory submodule is added to multiprocessing in order to avoid serialization between processes
- The KeyError exception when using enums and compile is now fixed
- help() on metaclasses is fixed
- The raise(signum) is now exposed as raise_signal
- Building enums by value are now faster
These were a select few changes in Python 3.8.0 alpha 1. For a complete list of changes, you may go through the changelog.