Python 3.14.0b4

This commit is contained in:
Hugo van Kemenade 2025-07-08 11:56:46 +03:00
parent 376e037ecc
commit 7ec1faba0c
49 changed files with 807 additions and 177 deletions

View file

@ -21,10 +21,10 @@
#define PY_MINOR_VERSION 14
#define PY_MICRO_VERSION 0
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_BETA
#define PY_RELEASE_SERIAL 3
#define PY_RELEASE_SERIAL 4
/* Version as a string */
#define PY_VERSION "3.14.0b3+"
#define PY_VERSION "3.14.0b4"
/*--end constants--*/

View file

@ -1,4 +1,4 @@
# Autogenerated by Sphinx on Tue Jun 17 18:40:47 2025
# Autogenerated by Sphinx on Tue Jul 8 11:57:16 2025
# as part of the release process.
topics = {
@ -492,8 +492,7 @@ The transformation rule is defined as follows:
Python supports string and bytes literals and various numeric
literals:
literal: stringliteral | bytesliteral
| integer | floatnumber | imagnumber
literal: stringliteral | bytesliteral | NUMBER
Evaluation of a literal yields an object of the given type (string,
bytes, integer, floating-point number, complex number) with the given
@ -5132,25 +5131,54 @@ parentheses: "()".)
'floating': r'''Floating-point literals
***********************
Floating-point literals are described by the following lexical
definitions:
Floating-point (float) literals, such as "3.14" or "1.5", denote
approximations of real numbers.
floatnumber: pointfloat | exponentfloat
pointfloat: [digitpart] fraction | digitpart "."
exponentfloat: (digitpart | pointfloat) exponent
digitpart: digit (["_"] digit)*
fraction: "." digitpart
exponent: ("e" | "E") ["+" | "-"] digitpart
They consist of *integer* and *fraction* parts, each composed of
decimal digits. The parts are separated by a decimal point, ".":
Note that the integer and exponent parts are always interpreted using
radix 10. For example, "077e010" is legal, and denotes the same number
as "77e10". The allowed range of floating-point literals is
implementation-dependent. As in integer literals, underscores are
supported for digit grouping.
2.71828
4.0
Some examples of floating-point literals:
Unlike in integer literals, leading zeros are allowed in the numeric
parts. For example, "077.010" is legal, and denotes the same number as
"77.10".
3.14 10. .001 1e100 3.14e-10 0e0 3.14_15_93
As in integer literals, single underscores may occur between digits to
help readability:
96_485.332_123
3.14_15_93
Either of these parts, but not both, can be empty. For example:
10. # (equivalent to 10.0)
.001 # (equivalent to 0.001)
Optionally, the integer and fraction may be followed by an *exponent*:
the letter "e" or "E", followed by an optional sign, "+" or "-", and a
number in the same format as the integer and fraction parts. The "e"
or "E" represents times ten raised to the power of:
1.0e3 # (represents 1.0×10³, or 1000.0)
1.166e-5 # (represents 1.166×10⁻⁵, or 0.00001166)
6.02214076e+23 # (represents 6.02214076×10²³, or 602214076000000000000000.)
In floats with only integer and exponent parts, the decimal point may
be omitted:
1e3 # (equivalent to 1.e3 and 1.0e3)
0e0 # (equivalent to 0.)
Formally, floating-point literals are described by the following
lexical definitions:
floatnumber:
| digitpart "." [digitpart] [exponent]
| "." digitpart [exponent]
| digitpart exponent
digitpart: digit (["_"] digit)*
exponent: ("e" | "E") ["+" | "-"] digitpart
Changed in version 3.6: Underscores are now allowed for grouping
purposes in literals.
@ -6145,17 +6173,53 @@ present, is executed.
'imaginary': r'''Imaginary literals
******************
Imaginary literals are described by the following lexical definitions:
Python has complex number objects, but no complex literals. Instead,
*imaginary literals* denote complex numbers with a zero real part.
For example, in math, the complex number 3+4.2*i* is written as the
real number 3 added to the imaginary number 4.2*i*. Python uses a
similar syntax, except the imaginary unit is written as "j" rather
than *i*:
3+4.2j
This is an expression composed of the integer literal "3", the
operator "+", and the imaginary literal "4.2j". Since these are
three separate tokens, whitespace is allowed between them:
3 + 4.2j
No whitespace is allowed *within* each token. In particular, the "j"
suffix, may not be separated from the number before it.
The number before the "j" has the same syntax as a floating-point
literal. Thus, the following are valid imaginary literals:
4.2j
3.14j
10.j
.001j
1e100j
3.14e-10j
3.14_15_93j
Unlike in a floating-point literal the decimal point can be omitted if
the imaginary number only has an integer part. The number is still
evaluated as a floating-point number, not an integer:
10j
0j
1000000000000000000000000j # equivalent to 1e+24j
The "j" suffix is case-insensitive. That means you can use "J"
instead:
3.14J # equivalent to 3.14j
Formally, imaginary literals are described by the following lexical
definition:
imagnumber: (floatnumber | digitpart) ("j" | "J")
An imaginary literal yields a complex number with a real part of 0.0.
Complex numbers are represented as a pair of floating-point numbers
and have the same restrictions on their range. To create a complex
number with a nonzero real part, add a floating-point number to it,
e.g., "(3+4j)". Some examples of imaginary literals:
3.14j 10.j 10j .001j 1e100j 3.14e-10j 3.14_15_93j
''',
'import': r'''The "import" statement
**********************
@ -6397,37 +6461,62 @@ The operator "not in" is defined to have the inverse truth value of
'integers': r'''Integer literals
****************
Integer literals are described by the following lexical definitions:
Integer literals denote whole numbers. For example:
integer: decinteger | bininteger | octinteger | hexinteger
decinteger: nonzerodigit (["_"] digit)* | "0"+ (["_"] "0")*
7
3
2147483647
There is no limit for the length of integer literals apart from what
can be stored in available memory:
7922816251426433759354395033679228162514264337593543950336
Underscores can be used to group digits for enhanced readability, and
are ignored for determining the numeric value of the literal. For
example, the following literals are equivalent:
100_000_000_000
100000000000
1_00_00_00_00_000
Underscores can only occur between digits. For example, "_123",
"321_", and "123__321" are *not* valid literals.
Integers can be specified in binary (base 2), octal (base 8), or
hexadecimal (base 16) using the prefixes "0b", "0o" and "0x",
respectively. Hexadecimal digits 10 through 15 are represented by
letters "A"-"F", case-insensitive. For example:
0b100110111
0b_1110_0101
0o177
0o377
0xdeadbeef
0xDead_Beef
An underscore can follow the base specifier. For example, "0x_1f" is a
valid literal, but "0_x1f" and "0x__1f" are not.
Leading zeros in a non-zero decimal number are not allowed. For
example, "0123" is not a valid literal. This is for disambiguation
with C-style octal literals, which Python used before version 3.0.
Formally, integer literals are described by the following lexical
definitions:
integer: decinteger | bininteger | octinteger | hexinteger | zerointeger
decinteger: nonzerodigit (["_"] digit)*
bininteger: "0" ("b" | "B") (["_"] bindigit)+
octinteger: "0" ("o" | "O") (["_"] octdigit)+
hexinteger: "0" ("x" | "X") (["_"] hexdigit)+
zerointeger: "0"+ (["_"] "0")*
nonzerodigit: "1"..."9"
digit: "0"..."9"
bindigit: "0" | "1"
octdigit: "0"..."7"
hexdigit: digit | "a"..."f" | "A"..."F"
There is no limit for the length of integer literals apart from what
can be stored in available memory.
Underscores are ignored for determining the numeric value of the
literal. They can be used to group digits for enhanced readability.
One underscore can occur between digits, and after base specifiers
like "0x".
Note that leading zeros in a non-zero decimal number are not allowed.
This is for disambiguation with C-style octal literals, which Python
used before version 3.0.
Some examples of integer literals:
7 2147483647 0o177 0b100110111
3 79228162514264337593543950336 0o377 0xdeadbeef
100_000_000_000 0b_1110_0101
Changed in version 3.6: Underscores are now allowed for grouping
purposes in literals.
''',
@ -6774,14 +6863,190 @@ applies only to code parsed along with it. See the note for the
'numbers': r'''Numeric literals
****************
There are three types of numeric literals: integers, floating-point
numbers, and imaginary numbers. There are no complex literals
(complex numbers can be formed by adding a real number and an
imaginary number).
"NUMBER" tokens represent numeric literals, of which there are three
types: integers, floating-point numbers, and imaginary numbers.
Note that numeric literals do not include a sign; a phrase like "-1"
is actually an expression composed of the unary operator "-" and the
literal "1".
NUMBER: integer | floatnumber | imagnumber
The numeric value of a numeric literal is the same as if it were
passed as a string to the "int", "float" or "complex" class
constructor, respectively. Note that not all valid inputs for those
constructors are also valid literals.
Numeric literals do not include a sign; a phrase like "-1" is actually
an expression composed of the unary operator "-" and the literal
"1".
Integer literals
================
Integer literals denote whole numbers. For example:
7
3
2147483647
There is no limit for the length of integer literals apart from what
can be stored in available memory:
7922816251426433759354395033679228162514264337593543950336
Underscores can be used to group digits for enhanced readability, and
are ignored for determining the numeric value of the literal. For
example, the following literals are equivalent:
100_000_000_000
100000000000
1_00_00_00_00_000
Underscores can only occur between digits. For example, "_123",
"321_", and "123__321" are *not* valid literals.
Integers can be specified in binary (base 2), octal (base 8), or
hexadecimal (base 16) using the prefixes "0b", "0o" and "0x",
respectively. Hexadecimal digits 10 through 15 are represented by
letters "A"-"F", case-insensitive. For example:
0b100110111
0b_1110_0101
0o177
0o377
0xdeadbeef
0xDead_Beef
An underscore can follow the base specifier. For example, "0x_1f" is a
valid literal, but "0_x1f" and "0x__1f" are not.
Leading zeros in a non-zero decimal number are not allowed. For
example, "0123" is not a valid literal. This is for disambiguation
with C-style octal literals, which Python used before version 3.0.
Formally, integer literals are described by the following lexical
definitions:
integer: decinteger | bininteger | octinteger | hexinteger | zerointeger
decinteger: nonzerodigit (["_"] digit)*
bininteger: "0" ("b" | "B") (["_"] bindigit)+
octinteger: "0" ("o" | "O") (["_"] octdigit)+
hexinteger: "0" ("x" | "X") (["_"] hexdigit)+
zerointeger: "0"+ (["_"] "0")*
nonzerodigit: "1"..."9"
digit: "0"..."9"
bindigit: "0" | "1"
octdigit: "0"..."7"
hexdigit: digit | "a"..."f" | "A"..."F"
Changed in version 3.6: Underscores are now allowed for grouping
purposes in literals.
Floating-point literals
=======================
Floating-point (float) literals, such as "3.14" or "1.5", denote
approximations of real numbers.
They consist of *integer* and *fraction* parts, each composed of
decimal digits. The parts are separated by a decimal point, ".":
2.71828
4.0
Unlike in integer literals, leading zeros are allowed in the numeric
parts. For example, "077.010" is legal, and denotes the same number as
"77.10".
As in integer literals, single underscores may occur between digits to
help readability:
96_485.332_123
3.14_15_93
Either of these parts, but not both, can be empty. For example:
10. # (equivalent to 10.0)
.001 # (equivalent to 0.001)
Optionally, the integer and fraction may be followed by an *exponent*:
the letter "e" or "E", followed by an optional sign, "+" or "-", and a
number in the same format as the integer and fraction parts. The "e"
or "E" represents times ten raised to the power of:
1.0e3 # (represents 1.0×10³, or 1000.0)
1.166e-5 # (represents 1.166×10⁻⁵, or 0.00001166)
6.02214076e+23 # (represents 6.02214076×10²³, or 602214076000000000000000.)
In floats with only integer and exponent parts, the decimal point may
be omitted:
1e3 # (equivalent to 1.e3 and 1.0e3)
0e0 # (equivalent to 0.)
Formally, floating-point literals are described by the following
lexical definitions:
floatnumber:
| digitpart "." [digitpart] [exponent]
| "." digitpart [exponent]
| digitpart exponent
digitpart: digit (["_"] digit)*
exponent: ("e" | "E") ["+" | "-"] digitpart
Changed in version 3.6: Underscores are now allowed for grouping
purposes in literals.
Imaginary literals
==================
Python has complex number objects, but no complex literals. Instead,
*imaginary literals* denote complex numbers with a zero real part.
For example, in math, the complex number 3+4.2*i* is written as the
real number 3 added to the imaginary number 4.2*i*. Python uses a
similar syntax, except the imaginary unit is written as "j" rather
than *i*:
3+4.2j
This is an expression composed of the integer literal "3", the
operator "+", and the imaginary literal "4.2j". Since these are
three separate tokens, whitespace is allowed between them:
3 + 4.2j
No whitespace is allowed *within* each token. In particular, the "j"
suffix, may not be separated from the number before it.
The number before the "j" has the same syntax as a floating-point
literal. Thus, the following are valid imaginary literals:
4.2j
3.14j
10.j
.001j
1e100j
3.14e-10j
3.14_15_93j
Unlike in a floating-point literal the decimal point can be omitted if
the imaginary number only has an integer part. The number is still
evaluated as a floating-point number, not an integer:
10j
0j
1000000000000000000000000j # equivalent to 1e+24j
The "j" suffix is case-insensitive. That means you can use "J"
instead:
3.14J # equivalent to 3.14j
Formally, imaginary literals are described by the following lexical
definition:
imagnumber: (floatnumber | digitpart) ("j" | "J")
''',
'numeric-types': r'''Emulating numeric types
***********************

484
Misc/NEWS.d/3.14.0b4.rst Normal file
View file

@ -0,0 +1,484 @@
.. date: 2025-06-26-15-58-13
.. gh-issue: 135968
.. nonce: C4v_-W
.. release date: 2025-07-08
.. section: Tools/Demos
Stubs for ``strip`` are now provided as part of an iOS install.
..
.. date: 2025-06-25-10-36-22
.. gh-issue: 133600
.. nonce: bkdgHC
.. section: Tools/Demos
Backport file reorganization for Tools/wasm/wasi.
This should make backporting future code changes easier. It also simplifies
instructions around how to do WASI builds in the devguide.
..
.. date: 2025-06-26-15-15-35
.. gh-issue: 135966
.. nonce: EBpF8Y
.. section: Tests
The iOS testbed now handles the ``app_packages`` folder as a site directory.
..
.. date: 2025-06-19-15-29-38
.. gh-issue: 135494
.. nonce: FVl9a0
.. section: Tests
Fix regrtest to support excluding tests from ``--pgo`` tests. Patch by
Victor Stinner.
..
.. date: 2025-06-27-21-23-19
.. gh-issue: 136053
.. nonce: QZxcee
.. section: Security
:mod:`marshal`: fix a possible crash when deserializing :class:`slice`
objects.
..
.. date: 2025-06-25-14-13-39
.. gh-issue: 135661
.. nonce: idjQ0B
.. section: Security
Fix parsing start and end tags in :class:`html.parser.HTMLParser` according
to the HTML5 standard.
* Whitespaces no longer accepted between ``</`` and the tag name.
E.g. ``</ script>`` does not end the script section.
* Vertical tabulation (``\v``) and non-ASCII whitespaces no longer recognized
as whitespaces. The only whitespaces are ``\t\n\r\f`` and space.
* Null character (U+0000) no longer ends the tag name.
* Attributes and slashes after the tag name in end tags are now ignored,
instead of terminating after the first ``>`` in quoted attribute value.
E.g. ``</script/foo=">"/>``.
* Multiple slashes and whitespaces between the last attribute and closing ``>``
are now ignored in both start and end tags. E.g. ``<a foo=bar/ //>``.
* Multiple ``=`` between attribute name and value are no longer collapsed.
E.g. ``<a foo==bar>`` produces attribute "foo" with value "=bar".
* Whitespaces between the ``=`` separator and attribute name or value are no
longer ignored. E.g. ``<a foo =bar>`` produces two attributes "foo" and
"=bar", both with value None; ``<a foo= bar>`` produces two attributes:
"foo" with value "" and "bar" with value None.
..
.. date: 2025-06-18-13-28-08
.. gh-issue: 102555
.. nonce: nADrzJ
.. section: Security
Fix comment parsing in :class:`html.parser.HTMLParser` according to the
HTML5 standard. ``--!>`` now ends the comment. ``-- >`` no longer ends the
comment. Support abnormally ended empty comments ``<-->`` and ``<--->``.
..
.. date: 2025-07-05-09-45-04
.. gh-issue: 136286
.. nonce: N67Amr
.. section: Library
Fix pickling failures for protocols 0 and 1 for many objects realted to
subinterpreters.
..
.. date: 2025-07-05-06-56-16
.. gh-issue: 136316
.. nonce: 3zj_Do
.. section: Library
Improve support for evaluating nested forward references in
:func:`typing.evaluate_forward_ref`.
..
.. date: 2025-06-30-11-12-24
.. gh-issue: 85702
.. nonce: 0Lrbwu
.. section: Library
If ``zoneinfo._common.load_tzdata`` is given a package without a resource a
:exc:`zoneinfo.ZoneInfoNotFoundError` is raised rather than a
:exc:`PermissionError`. Patch by Victor Stinner.
..
.. date: 2025-06-27-13-34-28
.. gh-issue: 136028
.. nonce: RY727g
.. section: Library
Fix parsing month names containing "İ" (U+0130, LATIN CAPITAL LETTER I WITH
DOT ABOVE) in :func:`time.strptime`. This affects locales az_AZ, ber_DZ,
ber_MA and crh_UA.
..
.. date: 2025-06-26-17-28-49
.. gh-issue: 135995
.. nonce: pPrDCt
.. section: Library
In the palmos encoding, make byte ``0x9b`` decode to ```` (U+203A - SINGLE
RIGHT-POINTING ANGLE QUOTATION MARK).
..
.. date: 2025-06-26-11-52-40
.. gh-issue: 53203
.. nonce: TMigBr
.. section: Library
Fix :func:`time.strptime` for ``%c`` and ``%x`` formats on locales byn_ER,
wal_ET and lzh_TW, and for ``%X`` format on locales ar_SA, bg_BG and lzh_TW.
..
.. date: 2025-06-25-17-25-53
.. gh-issue: 91555
.. nonce: xUpTLD
.. section: Library
An earlier change, which was introduced in 3.14.0b2, has been reverted. It
disabled logging for a logger during handling of log messages for that
logger. Since the reversion, the behaviour should be as it was before
3.14.0b2.
..
.. date: 2025-06-24-14-43-24
.. gh-issue: 135878
.. nonce: Db4roX
.. section: Library
Fixes a crash of :class:`types.SimpleNamespace` on :term:`free threading`
builds, when several threads were calling its :meth:`~object.__repr__`
method at the same time.
..
.. date: 2025-06-24-10-52-35
.. gh-issue: 135836
.. nonce: s37351
.. section: Library
Fix :exc:`IndexError` in :meth:`asyncio.loop.create_connection` that could
occur when non-\ :exc:`OSError` exception is raised during connection and
socket's ``close()`` raises :exc:`!OSError`.
..
.. date: 2025-06-23-11-04-25
.. gh-issue: 135836
.. nonce: -C-c4v
.. section: Library
Fix :exc:`IndexError` in :meth:`asyncio.loop.create_connection` that could
occur when the Happy Eyeballs algorithm resulted in an empty exceptions list
during connection attempts.
..
.. date: 2025-06-23-10-19-11
.. gh-issue: 135855
.. nonce: -J0AGF
.. section: Library
Raise :exc:`TypeError` instead of :exc:`SystemError` when
:func:`!_interpreters.set___main___attrs` is passed a non-dict object. Patch
by Brian Schubert.
..
.. date: 2025-06-22-16-23-44
.. gh-issue: 135815
.. nonce: 0DandH
.. section: Library
:mod:`netrc`: skip security checks if :func:`os.getuid` is missing. Patch by
Bénédikt Tran.
..
.. date: 2025-06-22-02-16-17
.. gh-issue: 135640
.. nonce: FXyFL6
.. section: Library
Address bug where it was possible to call
:func:`xml.etree.ElementTree.ElementTree.write` on an ElementTree object
with an invalid root element. This behavior blanked the file passed to
``write`` if it already existed.
..
.. date: 2025-06-18-13-58-13
.. gh-issue: 135645
.. nonce: 109nff
.. section: Library
Added ``supports_isolated_interpreters`` field to
:data:`sys.implementation`.
..
.. date: 2025-06-18-11-43-17
.. gh-issue: 135646
.. nonce: r7ekEn
.. section: Library
Raise consistent :exc:`NameError` exceptions in
:func:`annotationlib.ForwardRef.evaluate`
..
.. date: 2025-06-17-23-13-56
.. gh-issue: 135557
.. nonce: Bfcy4v
.. section: Library
Fix races on :mod:`heapq` updates and :class:`list` reads on the :term:`free
threaded <free threading>` build.
..
.. date: 2025-06-17-22-44-19
.. gh-issue: 119180
.. nonce: Ogv8Nj
.. section: Library
Only fetch globals and locals if necessary in
:func:`annotationlib.get_annotations`
..
.. date: 2025-06-16-15-03-03
.. gh-issue: 135561
.. nonce: mJCN8D
.. section: Library
Fix a crash on DEBUG builds when an HACL* HMAC routine fails. Patch by
Bénédikt Tran.
..
.. date: 2025-06-14-12-06-55
.. gh-issue: 135487
.. nonce: KdVFff
.. section: Library
Fix :meth:`!reprlib.Repr.repr_int` when given integers with more than
:func:`sys.get_int_max_str_digits` digits. Patch by Bénédikt Tran.
..
.. date: 2025-06-10-21-42-04
.. gh-issue: 135335
.. nonce: WnUqb_
.. section: Library
:mod:`multiprocessing`: Flush ``stdout`` and ``stderr`` after preloading
modules in the ``forkserver``.
..
.. date: 2025-06-03-12-59-17
.. gh-issue: 135069
.. nonce: xop30V
.. section: Library
Fix the "Invalid error handling" exception in
:class:`!encodings.idna.IncrementalDecoder` to correctly replace the
'errors' parameter.
..
.. date: 2025-06-02-14-36-28
.. gh-issue: 130662
.. nonce: Gpr2GB
.. section: Library
+Accept leading zeros in precision and width fields for
+:class:`~decimal.Decimal` formatting, for example ``format(Decimal(1.25),
'.016f')``.
..
.. date: 2025-06-02-14-28-30
.. gh-issue: 130662
.. nonce: EIgIR8
.. section: Library
Accept leading zeros in precision and width fields for
:class:`~fractions.Fraction` formatting, for example ``format(Fraction(1,
3), '.016f')``.
..
.. date: 2025-04-07-10-20-16
.. gh-issue: 87790
.. nonce: X2SjJe
.. section: Library
Support underscore and comma as thousands separators in the fractional part
for :class:`~fractions.Fraction`'s formatting. Patch by Sergey B Kirpichev.
..
.. date: 2025-04-07-09-53-54
.. gh-issue: 87790
.. nonce: 6nj3zQ
.. section: Library
Support underscore and comma as thousands separators in the fractional part
for :class:`~decimal.Decimal`'s formatting. Patch by Sergey B Kirpichev.
..
.. date: 2025-03-11-05-24-14
.. gh-issue: 130664
.. nonce: g0yNMm
.. section: Library
Handle corner-case for :class:`~fractions.Fraction`'s formatting: treat
zero-padding (preceding the width field by a zero (``'0'``) character) as an
equivalent to a fill character of ``'0'`` with an alignment type of ``'='``,
just as in case of :class:`float`'s.
..
.. date: 2025-07-01-21-04-47
.. gh-issue: 136155
.. nonce: ufmH4Q
.. section: Documentation
EPUB builds are fixed by excluding non-XHTML-compatible tags.
..
.. date: 2025-07-06-14-53-19
.. gh-issue: 109700
.. nonce: KVNQQi
.. section: Core and Builtins
Fix memory error handling in :c:func:`PyDict_SetDefault`.
..
.. date: 2025-06-26-15-25-51
.. gh-issue: 78465
.. nonce: MbDN8X
.. section: Core and Builtins
Fix error message for ``cls.__new__(cls, ...)`` where ``cls`` is not
instantiable builtin or extension type (with ``tp_new`` set to ``NULL``).
..
.. date: 2025-06-24-06-41-47
.. gh-issue: 129958
.. nonce: EaJuS0
.. section: Core and Builtins
Differentiate between t-strings and f-strings in syntax error for newlines
in format specifiers of single-quoted interpolated strings.
..
.. date: 2025-06-23-18-08-32
.. gh-issue: 135871
.. nonce: 50C528
.. section: Core and Builtins
Non-blocking mutex lock attempts now return immediately when the lock is
busy instead of briefly spinning in the :term:`free threading` build.
..
.. date: 2025-06-18-16-45-36
.. gh-issue: 135106
.. nonce: cpl6Aq
.. section: Core and Builtins
Restrict the trashcan mechanism to GC'ed objects and untrack them while in
the trashcan to prevent the GC and trashcan mechanisms conflicting.
..
.. date: 2025-06-17-22-34-58
.. gh-issue: 135607
.. nonce: ucsLVu
.. section: Core and Builtins
Fix potential :mod:`weakref` races in an object's destructor on the
:term:`free threaded <free threading>` build.
..
.. date: 2025-06-17-12-50-48
.. gh-issue: 135608
.. nonce: PnHckD
.. section: Core and Builtins
Fix a crash in the JIT involving attributes of modules.
..
.. date: 2025-06-16-02-31-42
.. gh-issue: 135543
.. nonce: 6b0HOF
.. section: Core and Builtins
Emit ``sys.remote_exec`` audit event when :func:`sys.remote_exec` is called
and migrate ``remote_debugger_script`` to
``cpython.remote_debugger_script``.
..
.. date: 2025-05-31-19-24-54
.. gh-issue: 134280
.. nonce: NDVbzY
.. section: Core and Builtins
Disable constant folding for ``~`` with a boolean argument. This moves the
deprecation warning from compile time to runtime.
..
.. date: 2025-06-25-01-03-10
.. gh-issue: 135906
.. nonce: UBrCWq
.. section: C API
Fix compilation errors when compiling the internal headers with a C++
compiler.
..
.. date: 2025-05-19-18-09-20
.. gh-issue: 134273
.. nonce: ZAliyy
.. section: Build
Add support for configuring compiler flags for the JIT with ``CFLAGS_JIT``

View file

@ -1 +0,0 @@
Add support for configuring compiler flags for the JIT with ``CFLAGS_JIT``

View file

@ -1 +0,0 @@
Fix compilation errors when compiling the internal headers with a C++ compiler.

View file

@ -1,2 +0,0 @@
Disable constant folding for ``~`` with a boolean argument.
This moves the deprecation warning from compile time to runtime.

View file

@ -1,2 +0,0 @@
Emit ``sys.remote_exec`` audit event when :func:`sys.remote_exec` is called
and migrate ``remote_debugger_script`` to ``cpython.remote_debugger_script``.

View file

@ -1 +0,0 @@
Fix a crash in the JIT involving attributes of modules.

View file

@ -1,2 +0,0 @@
Fix potential :mod:`weakref` races in an object's destructor on the :term:`free threaded <free
threading>` build.

View file

@ -1,2 +0,0 @@
Restrict the trashcan mechanism to GC'ed objects and untrack them while in
the trashcan to prevent the GC and trashcan mechanisms conflicting.

View file

@ -1,2 +0,0 @@
Non-blocking mutex lock attempts now return immediately when the lock is busy
instead of briefly spinning in the :term:`free threading` build.

View file

@ -1,2 +0,0 @@
Differentiate between t-strings and f-strings in syntax error for newlines
in format specifiers of single-quoted interpolated strings.

View file

@ -1,2 +0,0 @@
Fix error message for ``cls.__new__(cls, ...)`` where ``cls`` is not
instantiable builtin or extension type (with ``tp_new`` set to ``NULL``).

View file

@ -1 +0,0 @@
Fix memory error handling in :c:func:`PyDict_SetDefault`.

View file

@ -1 +0,0 @@
EPUB builds are fixed by excluding non-XHTML-compatible tags.

View file

@ -1,4 +0,0 @@
Handle corner-case for :class:`~fractions.Fraction`'s formatting: treat
zero-padding (preceding the width field by a zero (``'0'``) character) as an
equivalent to a fill character of ``'0'`` with an alignment type of ``'='``,
just as in case of :class:`float`'s.

View file

@ -1,2 +0,0 @@
Support underscore and comma as thousands separators in the fractional part
for :class:`~decimal.Decimal`'s formatting. Patch by Sergey B Kirpichev.

View file

@ -1,2 +0,0 @@
Support underscore and comma as thousands separators in the fractional part
for :class:`~fractions.Fraction`'s formatting. Patch by Sergey B Kirpichev.

View file

@ -1,3 +0,0 @@
Accept leading zeros in precision and width fields for
:class:`~fractions.Fraction` formatting, for example ``format(Fraction(1,
3), '.016f')``.

View file

@ -1,3 +0,0 @@
+Accept leading zeros in precision and width fields for
+:class:`~decimal.Decimal` formatting, for example ``format(Decimal(1.25),
'.016f')``.

View file

@ -1,3 +0,0 @@
Fix the "Invalid error handling" exception in
:class:`!encodings.idna.IncrementalDecoder` to correctly replace the
'errors' parameter.

View file

@ -1,2 +0,0 @@
:mod:`multiprocessing`: Flush ``stdout`` and ``stderr`` after preloading
modules in the ``forkserver``.

View file

@ -1,2 +0,0 @@
Fix :meth:`!reprlib.Repr.repr_int` when given integers with more than
:func:`sys.get_int_max_str_digits` digits. Patch by Bénédikt Tran.

View file

@ -1,2 +0,0 @@
Fix a crash on DEBUG builds when an HACL* HMAC routine fails. Patch by
Bénédikt Tran.

View file

@ -1,2 +0,0 @@
Only fetch globals and locals if necessary in
:func:`annotationlib.get_annotations`

View file

@ -1,2 +0,0 @@
Fix races on :mod:`heapq` updates and :class:`list` reads on the :term:`free threaded <free threading>`
build.

View file

@ -1 +0,0 @@
Raise consistent :exc:`NameError` exceptions in :func:`annotationlib.ForwardRef.evaluate`

View file

@ -1,2 +0,0 @@
Added ``supports_isolated_interpreters`` field to
:data:`sys.implementation`.

View file

@ -1,4 +0,0 @@
Address bug where it was possible to call
:func:`xml.etree.ElementTree.ElementTree.write` on an ElementTree object with
an invalid root element. This behavior blanked the file passed to ``write``
if it already existed.

View file

@ -1,2 +0,0 @@
:mod:`netrc`: skip security checks if :func:`os.getuid` is missing.
Patch by Bénédikt Tran.

View file

@ -1,3 +0,0 @@
Raise :exc:`TypeError` instead of :exc:`SystemError` when
:func:`!_interpreters.set___main___attrs` is passed a non-dict object.
Patch by Brian Schubert.

View file

@ -1 +0,0 @@
Fix :exc:`IndexError` in :meth:`asyncio.loop.create_connection` that could occur when the Happy Eyeballs algorithm resulted in an empty exceptions list during connection attempts.

View file

@ -1,3 +0,0 @@
Fix :exc:`IndexError` in :meth:`asyncio.loop.create_connection` that could
occur when non-\ :exc:`OSError` exception is raised during connection and
socket's ``close()`` raises :exc:`!OSError`.

View file

@ -1,3 +0,0 @@
Fixes a crash of :class:`types.SimpleNamespace` on :term:`free threading` builds,
when several threads were calling its :meth:`~object.__repr__` method at the
same time.

View file

@ -1,4 +0,0 @@
An earlier change, which was introduced in 3.14.0b2, has been reverted. It
disabled logging for a logger during handling of log messages for that
logger. Since the reversion, the behaviour should be as it was before
3.14.0b2.

View file

@ -1,2 +0,0 @@
Fix :func:`time.strptime` for ``%c`` and ``%x`` formats on locales byn_ER,
wal_ET and lzh_TW, and for ``%X`` format on locales ar_SA, bg_BG and lzh_TW.

View file

@ -1 +0,0 @@
In the palmos encoding, make byte ``0x9b`` decode to ```` (U+203A - SINGLE RIGHT-POINTING ANGLE QUOTATION MARK).

View file

@ -1,3 +0,0 @@
Fix parsing month names containing "İ" (U+0130, LATIN CAPITAL LETTER I WITH
DOT ABOVE) in :func:`time.strptime`. This affects locales az_AZ, ber_DZ,
ber_MA and crh_UA.

View file

@ -1,3 +0,0 @@
If ``zoneinfo._common.load_tzdata`` is given a package without a resource a
:exc:`zoneinfo.ZoneInfoNotFoundError` is raised rather than a :exc:`PermissionError`.
Patch by Victor Stinner.

View file

@ -1,2 +0,0 @@
Improve support for evaluating nested forward references in
:func:`typing.evaluate_forward_ref`.

View file

@ -1,2 +0,0 @@
Fix pickling failures for protocols 0 and 1 for many objects realted to
subinterpreters.

View file

@ -1,3 +0,0 @@
Fix comment parsing in :class:`html.parser.HTMLParser` according to the
HTML5 standard. ``--!>`` now ends the comment. ``-- >`` no longer ends the
comment. Support abnormally ended empty comments ``<-->`` and ``<--->``.

View file

@ -1,25 +0,0 @@
Fix parsing start and end tags in :class:`html.parser.HTMLParser`
according to the HTML5 standard.
* Whitespaces no longer accepted between ``</`` and the tag name.
E.g. ``</ script>`` does not end the script section.
* Vertical tabulation (``\v``) and non-ASCII whitespaces no longer recognized
as whitespaces. The only whitespaces are ``\t\n\r\f`` and space.
* Null character (U+0000) no longer ends the tag name.
* Attributes and slashes after the tag name in end tags are now ignored,
instead of terminating after the first ``>`` in quoted attribute value.
E.g. ``</script/foo=">"/>``.
* Multiple slashes and whitespaces between the last attribute and closing ``>``
are now ignored in both start and end tags. E.g. ``<a foo=bar/ //>``.
* Multiple ``=`` between attribute name and value are no longer collapsed.
E.g. ``<a foo==bar>`` produces attribute "foo" with value "=bar".
* Whitespaces between the ``=`` separator and attribute name or value are no
longer ignored. E.g. ``<a foo =bar>`` produces two attributes "foo" and
"=bar", both with value None; ``<a foo= bar>`` produces two attributes:
"foo" with value "" and "bar" with value None.

View file

@ -1 +0,0 @@
:mod:`marshal`: fix a possible crash when deserializing :class:`slice` objects.

View file

@ -1,2 +0,0 @@
Fix regrtest to support excluding tests from ``--pgo`` tests. Patch by
Victor Stinner.

View file

@ -1 +0,0 @@
The iOS testbed now handles the ``app_packages`` folder as a site directory.

View file

@ -1,4 +0,0 @@
Backport file reorganization for Tools/wasm/wasi.
This should make backporting future code changes easier. It also simplifies
instructions around how to do WASI builds in the devguide.

View file

@ -1 +0,0 @@
Stubs for ``strip`` are now provided as part of an iOS install.

View file

@ -1,4 +1,4 @@
This is Python version 3.14.0 beta 3
This is Python version 3.14.0 beta 4
====================================
.. image:: https://github.com/python/cpython/actions/workflows/build.yml/badge.svg?branch=main&event=push