mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Python 3.14.0b4
This commit is contained in:
parent
376e037ecc
commit
7ec1faba0c
49 changed files with 807 additions and 177 deletions
|
@ -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--*/
|
||||
|
||||
|
||||
|
|
|
@ -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,26 +5131,55 @@ 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
|
||||
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)*
|
||||
fraction: "." digitpart
|
||||
exponent: ("e" | "E") ["+" | "-"] digitpart
|
||||
|
||||
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.
|
||||
|
||||
Some examples of floating-point literals:
|
||||
|
||||
3.14 10. .001 1e100 3.14e-10 0e0 3.14_15_93
|
||||
|
||||
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
484
Misc/NEWS.d/3.14.0b4.rst
Normal 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``
|
|
@ -1 +0,0 @@
|
|||
Add support for configuring compiler flags for the JIT with ``CFLAGS_JIT``
|
|
@ -1 +0,0 @@
|
|||
Fix compilation errors when compiling the internal headers with a C++ compiler.
|
|
@ -1,2 +0,0 @@
|
|||
Disable constant folding for ``~`` with a boolean argument.
|
||||
This moves the deprecation warning from compile time to runtime.
|
|
@ -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``.
|
|
@ -1 +0,0 @@
|
|||
Fix a crash in the JIT involving attributes of modules.
|
|
@ -1,2 +0,0 @@
|
|||
Fix potential :mod:`weakref` races in an object's destructor on the :term:`free threaded <free
|
||||
threading>` build.
|
|
@ -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.
|
|
@ -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.
|
|
@ -1,2 +0,0 @@
|
|||
Differentiate between t-strings and f-strings in syntax error for newlines
|
||||
in format specifiers of single-quoted interpolated strings.
|
|
@ -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``).
|
|
@ -1 +0,0 @@
|
|||
Fix memory error handling in :c:func:`PyDict_SetDefault`.
|
|
@ -1 +0,0 @@
|
|||
EPUB builds are fixed by excluding non-XHTML-compatible tags.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -1,3 +0,0 @@
|
|||
Accept leading zeros in precision and width fields for
|
||||
:class:`~fractions.Fraction` formatting, for example ``format(Fraction(1,
|
||||
3), '.016f')``.
|
|
@ -1,3 +0,0 @@
|
|||
+Accept leading zeros in precision and width fields for
|
||||
+:class:`~decimal.Decimal` formatting, for example ``format(Decimal(1.25),
|
||||
'.016f')``.
|
|
@ -1,3 +0,0 @@
|
|||
Fix the "Invalid error handling" exception in
|
||||
:class:`!encodings.idna.IncrementalDecoder` to correctly replace the
|
||||
'errors' parameter.
|
|
@ -1,2 +0,0 @@
|
|||
:mod:`multiprocessing`: Flush ``stdout`` and ``stderr`` after preloading
|
||||
modules in the ``forkserver``.
|
|
@ -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.
|
|
@ -1,2 +0,0 @@
|
|||
Fix a crash on DEBUG builds when an HACL* HMAC routine fails. Patch by
|
||||
Bénédikt Tran.
|
|
@ -1,2 +0,0 @@
|
|||
Only fetch globals and locals if necessary in
|
||||
:func:`annotationlib.get_annotations`
|
|
@ -1,2 +0,0 @@
|
|||
Fix races on :mod:`heapq` updates and :class:`list` reads on the :term:`free threaded <free threading>`
|
||||
build.
|
|
@ -1 +0,0 @@
|
|||
Raise consistent :exc:`NameError` exceptions in :func:`annotationlib.ForwardRef.evaluate`
|
|
@ -1,2 +0,0 @@
|
|||
Added ``supports_isolated_interpreters`` field to
|
||||
:data:`sys.implementation`.
|
|
@ -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.
|
|
@ -1,2 +0,0 @@
|
|||
:mod:`netrc`: skip security checks if :func:`os.getuid` is missing.
|
||||
Patch by Bénédikt Tran.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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`.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -1 +0,0 @@
|
|||
In the palmos encoding, make byte ``0x9b`` decode to ``›`` (U+203A - SINGLE RIGHT-POINTING ANGLE QUOTATION MARK).
|
|
@ -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.
|
|
@ -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.
|
|
@ -1,2 +0,0 @@
|
|||
Improve support for evaluating nested forward references in
|
||||
:func:`typing.evaluate_forward_ref`.
|
|
@ -1,2 +0,0 @@
|
|||
Fix pickling failures for protocols 0 and 1 for many objects realted to
|
||||
subinterpreters.
|
|
@ -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 ``<--->``.
|
|
@ -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.
|
|
@ -1 +0,0 @@
|
|||
:mod:`marshal`: fix a possible crash when deserializing :class:`slice` objects.
|
|
@ -1,2 +0,0 @@
|
|||
Fix regrtest to support excluding tests from ``--pgo`` tests. Patch by
|
||||
Victor Stinner.
|
|
@ -1 +0,0 @@
|
|||
The iOS testbed now handles the ``app_packages`` folder as a site directory.
|
|
@ -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.
|
|
@ -1 +0,0 @@
|
|||
Stubs for ``strip`` are now provided as part of an iOS install.
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue