Python 3.12.0b3

This commit is contained in:
Thomas Wouters 2023-06-19 20:55:07 +02:00
parent 225cc4c043
commit f992a60014
44 changed files with 435 additions and 111 deletions

View file

@ -20,10 +20,10 @@
#define PY_MINOR_VERSION 12
#define PY_MICRO_VERSION 0
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_BETA
#define PY_RELEASE_SERIAL 2
#define PY_RELEASE_SERIAL 3
/* Version as a string */
#define PY_VERSION "3.12.0b2+"
#define PY_VERSION "3.12.0b3"
/*--end constants--*/
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.

View file

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# Autogenerated by Sphinx on Tue Jun 6 16:12:51 2023
# Autogenerated by Sphinx on Mon Jun 19 20:55:48 2023
topics = {'assert': 'The "assert" statement\n'
'**********************\n'
'\n'
@ -6522,22 +6522,26 @@ topics = {'assert': 'The "assert" statement\n'
'positional\n'
'argument, and if its a keyword, it refers to a named '
'keyword\n'
'argument. If the numerical arg_names in a format string '
'are 0, 1, 2,\n'
'… in sequence, they can all be omitted (not just some) and '
'the numbers\n'
'0, 1, 2, … will be automatically inserted in that order. '
'Because\n'
'*arg_name* is not quote-delimited, it is not possible to '
'specify\n'
'arbitrary dictionary keys (e.g., the strings "\'10\'" or '
'"\':-]\'") within\n'
'a format string. The *arg_name* can be followed by any '
'number of index\n'
'or attribute expressions. An expression of the form '
'"\'.name\'" selects\n'
'the named attribute using "getattr()", while an expression '
'of the form\n'
'argument. An *arg_name* is treated as a number if a call '
'to\n'
'"str.isdecimal()" on the string would return true. If the '
'numerical\n'
'arg_names in a format string are 0, 1, 2, … in sequence, '
'they can all\n'
'be omitted (not just some) and the numbers 0, 1, 2, … will '
'be\n'
'automatically inserted in that order. Because *arg_name* is '
'not quote-\n'
'delimited, it is not possible to specify arbitrary '
'dictionary keys\n'
'(e.g., the strings "\'10\'" or "\':-]\'") within a format '
'string. The\n'
'*arg_name* can be followed by any number of index or '
'attribute\n'
'expressions. An expression of the form "\'.name\'" selects '
'the named\n'
'attribute using "getattr()", while an expression of the '
'form\n'
'"\'[index]\'" does an index lookup using "__getitem__()".\n'
'\n'
'Changed in version 3.1: The positional argument specifiers '

411
Misc/NEWS.d/3.12.0b3.rst Normal file
View file

@ -0,0 +1,411 @@
.. date: 2023-06-15-22-11-43
.. gh-issue: 105840
.. nonce: Fum_g_
.. release date: 2023-06-19
.. section: Core and Builtins
Fix possible crashes when specializing function calls with too many
``__defaults__``.
..
.. date: 2023-06-15-15-54-47
.. gh-issue: 105831
.. nonce: -MC9Zs
.. section: Core and Builtins
Fix an f-string bug, where using a debug expression (the ``=`` sign) that
appears in the last line of a file results to the debug buffer that holds
the expression text being one character too small.
..
.. date: 2023-06-14-22-52-06
.. gh-issue: 105800
.. nonce: hdpPzZ
.. section: Core and Builtins
Correctly issue :exc:`SyntaxWarning` in f-strings if invalid sequences are
used. Patch by Pablo Galindo
..
.. date: 2023-06-10-21-38-49
.. gh-issue: 105587
.. nonce: rL3rzv
.. section: Core and Builtins
The runtime can't guarantee that immortal objects will not be mutated by
Extensions. Thus, this modifies _PyStaticObject_CheckRefcnt to warn instead
of asserting.
..
.. date: 2023-06-09-15-25-12
.. gh-issue: 105564
.. nonce: sFdUu4
.. section: Core and Builtins
Don't include artificil newlines in the ``line`` attribute of tokens in the
APIs of the :mod:`tokenize` module. Patch by Pablo Galindo
..
.. date: 2023-06-09-12-59-18
.. gh-issue: 105549
.. nonce: PYfTNp
.. section: Core and Builtins
Tokenize separately ``NUMBER`` and ``NAME`` tokens that are not ambiguous.
Patch by Pablo Galindo.
..
.. date: 2023-06-09-11-19-51
.. gh-issue: 105588
.. nonce: Y5ovpY
.. section: Core and Builtins
Fix an issue that could result in crashes when compiling malformed
:mod:`ast` nodes.
..
.. date: 2023-06-08-10-10-07
.. gh-issue: 105375
.. nonce: 35VGDd
.. section: Core and Builtins
Fix bugs in the :mod:`builtins` module where exceptions could end up being
overwritten.
..
.. date: 2023-06-08-09-54-37
.. gh-issue: 105375
.. nonce: kqKT3E
.. section: Core and Builtins
Fix bug in the compiler where an exception could end up being overwritten.
..
.. date: 2023-06-08-09-25-52
.. gh-issue: 105375
.. nonce: ocB7fT
.. section: Core and Builtins
Improve error handling in :c:func:`PyUnicode_BuildEncodingMap` where an
exception could end up being overwritten.
..
.. date: 2023-06-07-12-20-59
.. gh-issue: 105435
.. nonce: 6VllI0
.. section: Core and Builtins
Fix spurious newline character if file ends on a comment without a newline.
Patch by Pablo Galindo
..
.. date: 2023-06-06-17-10-42
.. gh-issue: 105390
.. nonce: DvqI-e
.. section: Core and Builtins
Correctly raise :exc:`tokenize.TokenError` exceptions instead of
:exc:`SyntaxError` for tokenize errors such as incomplete input. Patch by
Pablo Galindo
..
.. date: 2023-06-02-15-15-41
.. gh-issue: 104812
.. nonce: dfZiG5
.. section: Core and Builtins
The "pending call" machinery now works for all interpreters, not just the
main interpreter, and runs in all threads, not just the main thread. Some
calls are still only done in the main thread, ergo in the main interpreter.
This change does not affect signal handling nor the existing public C-API
(``Py_AddPendingCall()``), which both still only target the main thread. The
new functionality is meant strictly for internal use for now, since
consequences of its use are not well understood yet outside some very
restricted cases. This change brings the capability in line with the
intention when the state was made per-interpreter several years ago.
..
.. date: 2023-06-19-11-31-55
.. gh-issue: 105808
.. nonce: NL-quu
.. section: Library
Fix a regression introduced in GH-101251 for 3.12, causing
:meth:`gzip.GzipFile.flush` to not flush the compressor (nor pass along the
``zip_mode`` argument).
..
.. date: 2023-06-15-18-11-47
.. gh-issue: 104799
.. nonce: BcLzbP
.. section: Library
Enable :func:`ast.unparse` to unparse function and class definitions created
without the new ``type_params`` field from :pep:`695`. Patch by Jelle
Zijlstra.
..
.. date: 2023-06-14-10-27-34
.. gh-issue: 105745
.. nonce: l1ttOQ
.. section: Library
Fix ``webbrowser.Konqueror.open`` method.
..
.. date: 2023-06-11-22-46-06
.. gh-issue: 105375
.. nonce: YkhSNt
.. section: Library
Fix a bug in :c:func:`!_Unpickler_SetInputStream` where an exception could
end up being overwritten in case of failure.
..
.. date: 2023-06-09-23-46-23
.. gh-issue: 105375
.. nonce: 9KaioS
.. section: Library
Fix bugs in :mod:`sys` where exceptions could end up being overwritten
because of deferred error handling.
..
.. date: 2023-06-09-23-00-13
.. gh-issue: 105605
.. nonce: YuwqxY
.. section: Library
Harden :mod:`pyexpat` error handling during module initialisation to prevent
exceptions from possibly being overwritten, and objects from being
dereferenced twice.
..
.. date: 2023-06-09-22-52-45
.. gh-issue: 105375
.. nonce: 6igkhn
.. section: Library
Fix bug in :mod:`decimal` where an exception could end up being overwritten.
..
.. date: 2023-06-09-22-45-26
.. gh-issue: 105375
.. nonce: 9rp6tG
.. section: Library
Fix bugs in :mod:`!_datetime` where exceptions could be overwritten in case
of module initialisation failure.
..
.. date: 2023-06-09-22-16-46
.. gh-issue: 105375
.. nonce: EgVJOP
.. section: Library
Fix bugs in :mod:`!_ssl` initialisation which could lead to leaked
references and overwritten exceptions.
..
.. date: 2023-06-09-21-46-52
.. gh-issue: 105375
.. nonce: yrJelV
.. section: Library
Fix a bug in :class:`array.array` where an exception could end up being
overwritten.
..
.. date: 2023-06-09-21-40-45
.. gh-issue: 105375
.. nonce: _sZilh
.. section: Library
Fix bugs in :mod:`_ctypes` where exceptions could end up being overwritten.
..
.. date: 2023-06-09-21-30-59
.. gh-issue: 105375
.. nonce: eewafp
.. section: Library
Fix a bug in the :mod:`posix` module where an exception could be
overwritten.
..
.. date: 2023-06-09-21-25-14
.. gh-issue: 105375
.. nonce: 95g1eI
.. section: Library
Fix bugs in :mod:`!_elementtree` where exceptions could be overwritten.
..
.. date: 2023-06-09-21-11-28
.. gh-issue: 105375
.. nonce: 4Mxn7t
.. section: Library
Fix bugs in :mod:`zoneinfo` where exceptions could be overwritten.
..
.. date: 2023-06-09-21-04-39
.. gh-issue: 105375
.. nonce: bTcqS9
.. section: Library
Fix bugs in :mod:`pickle` where exceptions could be overwritten.
..
.. date: 2023-06-08-08-58-36
.. gh-issue: 105375
.. nonce: bTcqS9
.. section: Library
Fix bugs in :mod:`pickle` where exceptions could be overwritten.
..
.. date: 2023-06-07-00-09-52
.. gh-issue: 105375
.. nonce: Y_9D4n
.. section: Library
Fix a bug in :mod:`sqlite3` where an exception could be overwritten in the
:meth:`collation <sqlite3.Connection.create_collation>` callback.
..
.. date: 2023-06-06-11-50-33
.. gh-issue: 105332
.. nonce: tmpgRA
.. section: Library
Revert pickling method from by-name back to by-value.
..
.. date: 2023-06-02-14-23-41
.. gh-issue: 104310
.. nonce: UamCOB
.. section: Library
In the beta 1 release we added a utility function for extension module
authors, to use when testing their module for support in multiple
interpreters or under a per-interpreter GIL. The name of that function has
changed from ``allowing_all_extensions`` to
``_incompatible_extension_module_restrictions``. The default for the
"disable_check" argument has change from ``True`` to ``False``, to better
match the new function name.
..
.. date: 2023-05-26-21-24-06
.. gh-issue: 104996
.. nonce: aaW78g
.. section: Library
Improve performance of :class:`pathlib.PurePath` initialisation by deferring
joining of paths when multiple arguments are given.
..
.. date: 2023-03-12-01-17-15
.. gh-issue: 102541
.. nonce: LK1adc
.. section: Library
Hide traceback in :func:`help` prompt, when import failed.
..
.. date: 2023-05-29-14-49-46
.. gh-issue: 105084
.. nonce: lvVvoj
.. section: Tests
When the Python build is configured ``--with-wheel-pkg-dir``, tests
requiring the ``setuptools`` and ``wheel`` wheels will search for the wheels
in ``WHEEL_PKG_DIR``.
..
.. date: 2023-06-08-11-30-17
.. gh-issue: 105436
.. nonce: 1qlDxw
.. section: Windows
Ensure that an empty environment block is terminated by two null characters,
as is required by Windows.
..
.. date: 2023-06-09-23-34-25
.. gh-issue: 105375
.. nonce: n7amiF
.. section: C API
Fix a bug in :c:func:`PyErr_WarnExplicit` where an exception could end up
being overwritten if the API failed internally.
..
.. date: 2023-06-09-19-16-57
.. gh-issue: 105603
.. nonce: -z6G22
.. section: C API
We've renamed the new (in 3.12) ``PyInterpreterConfig.own_gil`` to
``PyInterpreterConfig.gil`` and changed the meaning of the value from "bool"
to an integer with supported values of ``PyInterpreterConfig_DEFAULT_GIL``,
``PyInterpreterConfig_SHARED_GIL``, and ``PyInterpreterConfig_OWN_GIL``. The
default is "shared".
..
.. date: 2023-06-09-12-35-55
.. gh-issue: 105387
.. nonce: wM_oL-
.. section: C API
In the limited C API version 3.12, :c:func:`Py_INCREF` and
:c:func:`Py_DECREF` functions are now implemented as opaque function calls
to hide implementation details. Patch by Victor Stinner.
..
.. date: 2023-06-06-14-14-41
.. gh-issue: 103968
.. nonce: BTO6II
.. section: C API
:c:func:`PyType_FromMetaclass` now allows metaclasses with ``tp_new`` set to
``NULL``.

View file

@ -1,2 +0,0 @@
:c:func:`PyType_FromMetaclass` now allows metaclasses with ``tp_new``
set to ``NULL``.

View file

@ -1,3 +0,0 @@
In the limited C API version 3.12, :c:func:`Py_INCREF` and
:c:func:`Py_DECREF` functions are now implemented as opaque function calls
to hide implementation details. Patch by Victor Stinner.

View file

@ -1,5 +0,0 @@
We've renamed the new (in 3.12) ``PyInterpreterConfig.own_gil`` to
``PyInterpreterConfig.gil`` and changed the meaning of the value from "bool"
to an integer with supported values of ``PyInterpreterConfig_DEFAULT_GIL``,
``PyInterpreterConfig_SHARED_GIL``, and ``PyInterpreterConfig_OWN_GIL``. The
default is "shared".

View file

@ -1,2 +0,0 @@
Fix a bug in :c:func:`PyErr_WarnExplicit` where an exception could end up
being overwritten if the API failed internally.

View file

@ -1,9 +0,0 @@
The "pending call" machinery now works for all interpreters, not just the
main interpreter, and runs in all threads, not just the main thread. Some
calls are still only done in the main thread, ergo in the main interpreter.
This change does not affect signal handling nor the existing public C-API
(``Py_AddPendingCall()``), which both still only target the main thread.
The new functionality is meant strictly for internal use for now, since
consequences of its use are not well understood yet outside some very
restricted cases. This change brings the capability in line with the
intention when the state was made per-interpreter several years ago.

View file

@ -1,3 +0,0 @@
Correctly raise :exc:`tokenize.TokenError` exceptions instead of
:exc:`SyntaxError` for tokenize errors such as incomplete input. Patch by
Pablo Galindo

View file

@ -1,2 +0,0 @@
Fix spurious newline character if file ends on a comment without a newline.
Patch by Pablo Galindo

View file

@ -1,2 +0,0 @@
Improve error handling in :c:func:`PyUnicode_BuildEncodingMap` where an
exception could end up being overwritten.

View file

@ -1 +0,0 @@
Fix bug in the compiler where an exception could end up being overwritten.

View file

@ -1,2 +0,0 @@
Fix bugs in the :mod:`builtins` module where exceptions could end up being
overwritten.

View file

@ -1,2 +0,0 @@
Fix an issue that could result in crashes when compiling malformed
:mod:`ast` nodes.

View file

@ -1,2 +0,0 @@
Tokenize separately ``NUMBER`` and ``NAME`` tokens that are not ambiguous. Patch
by Pablo Galindo.

View file

@ -1,2 +0,0 @@
Don't include artificil newlines in the ``line`` attribute of tokens in the
APIs of the :mod:`tokenize` module. Patch by Pablo Galindo

View file

@ -1,3 +0,0 @@
The runtime can't guarantee that immortal objects will not be mutated by
Extensions. Thus, this modifies _PyStaticObject_CheckRefcnt to warn
instead of asserting.

View file

@ -1,2 +0,0 @@
Correctly issue :exc:`SyntaxWarning` in f-strings if invalid sequences are
used. Patch by Pablo Galindo

View file

@ -1,3 +0,0 @@
Fix an f-string bug, where using a debug expression (the ``=`` sign) that
appears in the last line of a file results to the debug buffer that holds the
expression text being one character too small.

View file

@ -1,2 +0,0 @@
Fix possible crashes when specializing function calls with too many
``__defaults__``.

View file

@ -1 +0,0 @@
Hide traceback in :func:`help` prompt, when import failed.

View file

@ -1,2 +0,0 @@
Improve performance of :class:`pathlib.PurePath` initialisation by
deferring joining of paths when multiple arguments are given.

View file

@ -1,7 +0,0 @@
In the beta 1 release we added a utility function for extension module
authors, to use when testing their module for support in multiple
interpreters or under a per-interpreter GIL. The name of that function has
changed from ``allowing_all_extensions`` to
``_incompatible_extension_module_restrictions``. The default for the
"disable_check" argument has change from ``True`` to ``False``, to better
match the new function name.

View file

@ -1 +0,0 @@
Revert pickling method from by-name back to by-value.

View file

@ -1,2 +0,0 @@
Fix a bug in :mod:`sqlite3` where an exception could be overwritten in the
:meth:`collation <sqlite3.Connection.create_collation>` callback.

View file

@ -1 +0,0 @@
Fix bugs in :mod:`pickle` where exceptions could be overwritten.

View file

@ -1 +0,0 @@
Fix bugs in :mod:`pickle` where exceptions could be overwritten.

View file

@ -1 +0,0 @@
Fix bugs in :mod:`zoneinfo` where exceptions could be overwritten.

View file

@ -1 +0,0 @@
Fix bugs in :mod:`!_elementtree` where exceptions could be overwritten.

View file

@ -1,2 +0,0 @@
Fix a bug in the :mod:`posix` module where an exception could be
overwritten.

View file

@ -1 +0,0 @@
Fix bugs in :mod:`_ctypes` where exceptions could end up being overwritten.

View file

@ -1,2 +0,0 @@
Fix a bug in :class:`array.array` where an exception could end up being
overwritten.

View file

@ -1,2 +0,0 @@
Fix bugs in :mod:`!_ssl` initialisation which could lead to leaked
references and overwritten exceptions.

View file

@ -1,2 +0,0 @@
Fix bugs in :mod:`!_datetime` where exceptions could be overwritten in case
of module initialisation failure.

View file

@ -1 +0,0 @@
Fix bug in :mod:`decimal` where an exception could end up being overwritten.

View file

@ -1,3 +0,0 @@
Harden :mod:`pyexpat` error handling during module initialisation to prevent
exceptions from possibly being overwritten, and objects from being
dereferenced twice.

View file

@ -1,2 +0,0 @@
Fix bugs in :mod:`sys` where exceptions could end up being overwritten
because of deferred error handling.

View file

@ -1,2 +0,0 @@
Fix a bug in :c:func:`!_Unpickler_SetInputStream` where an exception could
end up being overwritten in case of failure.

View file

@ -1 +0,0 @@
Fix ``webbrowser.Konqueror.open`` method.

View file

@ -1,3 +0,0 @@
Enable :func:`ast.unparse` to unparse function and class definitions created
without the new ``type_params`` field from :pep:`695`. Patch by Jelle
Zijlstra.

View file

@ -1 +0,0 @@
Fix a regression introduced in GH-101251 for 3.12, causing :meth:`gzip.GzipFile.flush` to not flush the compressor (nor pass along the ``zip_mode`` argument).

View file

@ -1,3 +0,0 @@
When the Python build is configured ``--with-wheel-pkg-dir``, tests
requiring the ``setuptools`` and ``wheel`` wheels will search for the wheels
in ``WHEEL_PKG_DIR``.

View file

@ -1,2 +0,0 @@
Ensure that an empty environment block is terminated by two null characters,
as is required by Windows.

View file

@ -1,4 +1,4 @@
This is Python version 3.12.0 beta 2
This is Python version 3.12.0 beta 3
=====================================
.. image:: https://github.com/python/cpython/workflows/Tests/badge.svg