See :c:func:`PyUnstable_ThreadState_ResetStackProtection` for undoing this operation.
- .. versionadded:: next
+ .. versionadded:: 3.14.1
.. warning::
See :c:func:`PyUnstable_ThreadState_SetStackProtection` for an explanation.
- .. versionadded:: next
+ .. versionadded:: 3.14.1
.. warning::
The corresponding :attr:`~ExpatError.lineno` and :attr:`~ExpatError.offset`
should not be used as they may have no special meaning.
- .. versionadded:: next
+ .. versionadded:: 3.14.1
.. method:: xmlparser.SetAllocTrackerMaximumAmplification(max_factor, /)
that can be adjusted by :meth:`.SetAllocTrackerActivationThreshold`
is exceeded.
- .. versionadded:: next
+ .. versionadded:: 3.14.1
:class:`xmlparser` objects have the following attributes:
If the *size* parameter is used, then it is best for it to retain the same
value from one :meth:`fetchmany` call to the next.
- .. versionchanged:: next
+ .. versionchanged:: 3.14.1
Negative *size* values are rejected by raising :exc:`ValueError`.
.. method:: fetchall()
Read/write attribute that controls the number of rows returned by :meth:`fetchmany`.
The default value is 1 which means a single row would be fetched per call.
- .. versionchanged:: next
+ .. versionchanged:: 3.14.1
Negative values are rejected by raising :exc:`ValueError`.
.. attribute:: connection
/*--start constants--*/
#define PY_MAJOR_VERSION 3
#define PY_MINOR_VERSION 14
-#define PY_MICRO_VERSION 0
+#define PY_MICRO_VERSION 1
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_FINAL
#define PY_RELEASE_SERIAL 0
/* Version as a string */
-#define PY_VERSION "3.14.0+"
+#define PY_VERSION "3.14.1"
/*--end constants--*/
-# Autogenerated by Sphinx on Tue Oct 7 12:34:44 2025
+# Autogenerated by Sphinx on Tue Dec 2 14:51:32 2025
# as part of the release process.
topics = {
'bltin-ellipsis-object': r'''The Ellipsis Object
*******************
-This object is commonly used used to indicate that something is
-omitted. It supports no special operations. There is exactly one
-ellipsis object, named "Ellipsis" (a built-in name).
-"type(Ellipsis)()" produces the "Ellipsis" singleton.
+This object is commonly used to indicate that something is omitted. It
+supports no special operations. There is exactly one ellipsis object,
+named "Ellipsis" (a built-in name). "type(Ellipsis)()" produces the
+"Ellipsis" singleton.
It is written as "Ellipsis" or "...".
"except*" clause
----------------
-The "except*" clause(s) are used for handling "ExceptionGroup"s. The
-exception type for matching is interpreted as in the case of "except",
-but in the case of exception groups we can have partial matches when
-the type matches some of the exceptions in the group. This means that
-multiple "except*" clauses can execute, each handling part of the
-exception group. Each clause executes at most once and handles an
-exception group of all matching exceptions. Each exception in the
-group is handled by at most one "except*" clause, the first that
-matches it.
+The "except*" clause(s) specify one or more handlers for groups of
+exceptions ("BaseExceptionGroup" instances). A "try" statement can
+have either "except" or "except*" clauses, but not both. The exception
+type for matching is mandatory in the case of "except*", so "except*:"
+is a syntax error. The type is interpreted as in the case of "except",
+but matching is performed on the exceptions contained in the group
+that is being handled. An "TypeError" is raised if a matching type is
+a subclass of "BaseExceptionGroup", because that would have ambiguous
+semantics.
+
+When an exception group is raised in the try block, each "except*"
+clause splits (see "split()") it into the subgroups of matching and
+non-matching exceptions. If the matching subgroup is not empty, it
+becomes the handled exception (the value returned from
+"sys.exception()") and assigned to the target of the "except*" clause
+(if there is one). Then, the body of the "except*" clause executes. If
+the non-matching subgroup is not empty, it is processed by the next
+"except*" in the same manner. This continues until all exceptions in
+the group have been matched, or the last "except*" clause has run.
+
+After all "except*" clauses execute, the group of unhandled exceptions
+is merged with any exceptions that were raised or re-raised from
+within "except*" clauses. This merged exception group propagates on.:
>>> try:
... raise ExceptionGroup("eg",
caught <class 'ExceptionGroup'> with nested (TypeError(2),)
caught <class 'ExceptionGroup'> with nested (OSError(3), OSError(4))
+ Exception Group Traceback (most recent call last):
- | File "<stdin>", line 2, in <module>
- | ExceptionGroup: eg
+ | File "<doctest default[0]>", line 2, in <module>
+ | raise ExceptionGroup("eg",
+ | [ValueError(1), TypeError(2), OSError(3), OSError(4)])
+ | ExceptionGroup: eg (1 sub-exception)
+-+---------------- 1 ----------------
| ValueError: 1
+------------------------------------
-Any remaining exceptions that were not handled by any "except*" clause
-are re-raised at the end, along with all exceptions that were raised
-from within the "except*" clauses. If this list contains more than one
-exception to reraise, they are combined into an exception group.
-
-If the raised exception is not an exception group and its type matches
-one of the "except*" clauses, it is caught and wrapped by an exception
-group with an empty message string.
+If the exception raised from the "try" block is not an exception group
+and its type matches one of the "except*" clauses, it is caught and
+wrapped by an exception group with an empty message string. This
+ensures that the type of the target "e" is consistently
+"BaseExceptionGroup":
>>> try:
... raise BlockingIOError
...
ExceptionGroup('', (BlockingIOError()))
-An "except*" clause must have a matching expression; it cannot be
-"except*:". Furthermore, this expression cannot contain exception
-group types, because that would have ambiguous semantics.
-
-It is not possible to mix "except" and "except*" in the same "try".
-The "break", "continue", and "return" statements cannot appear in an
-"except*" clause.
+"break", "continue" and "return" cannot appear in an "except*" clause.
"else" clause
If only keyword patterns are present, they are processed as
follows, one by one:
- I. The keyword is looked up as an attribute on the subject.
+ 1. The keyword is looked up as an attribute on the subject.
* If this raises an exception other than "AttributeError", the
exception bubbles up.
the class pattern fails; if this succeeds, the match proceeds
to the next keyword.
- II. If all keyword patterns succeed, the class pattern succeeds.
+ 2. If all keyword patterns succeed, the class pattern succeeds.
If any positional patterns are present, they are converted to
keyword patterns using the "__match_args__" attribute on the class
"name_or_attr" before matching:
- I. The equivalent of "getattr(cls, "__match_args__", ())" is
- called.
+ 1. The equivalent of "getattr(cls, "__match_args__", ())" is
+ called.
* If this raises an exception, the exception bubbles up.
Customizing positional arguments in class pattern matching
- II. Once all positional patterns have been converted to keyword
- patterns,
- the match proceeds as if there were only keyword patterns.
+ 2. Once all positional patterns have been converted to keyword
+ patterns, the match proceeds as if there were only keyword
+ patterns.
For the following built-in types the handling of positional
subpatterns is different:
available for commands and command arguments, e.g. the current global
and local names are offered as arguments of the "p" command.
+
+Command-line interface
+======================
+
You can also invoke "pdb" from the command line to debug other
scripts. For example:
-c, --command <command>
To execute commands as if given in a ".pdbrc" file; see Debugger
- Commands.
+ commands.
Changed in version 3.2: Added the "-c" option.
See the documentation for the functions explained above.
-Debugger Commands
+Debugger commands
=================
The commands recognized by the debugger are listed below. Most
See also the description of the "try" statement in section The try
statement and "raise" statement in section The raise statement.
-
--[ Footnotes ]-
-
-[1] This limitation occurs because the code that is executed by these
- operations is not available at the time the module is compiled.
''',
'execmodel': r'''Execution model
***************
See also the description of the "try" statement in section The try
statement and "raise" statement in section The raise statement.
+
+Runtime Components
+==================
+
+
+General Computing Model
+-----------------------
+
+Python’s execution model does not operate in a vacuum. It runs on a
+host machine and through that host’s runtime environment, including
+its operating system (OS), if there is one. When a program runs, the
+conceptual layers of how it runs on the host look something like this:
+
+ **host machine**
+ **process** (global resources)
+ **thread** (runs machine code)
+
+Each process represents a program running on the host. Think of each
+process itself as the data part of its program. Think of the process’
+threads as the execution part of the program. This distinction will
+be important to understand the conceptual Python runtime.
+
+The process, as the data part, is the execution context in which the
+program runs. It mostly consists of the set of resources assigned to
+the program by the host, including memory, signals, file handles,
+sockets, and environment variables.
+
+Processes are isolated and independent from one another. (The same is
+true for hosts.) The host manages the process’ access to its assigned
+resources, in addition to coordinating between processes.
+
+Each thread represents the actual execution of the program’s machine
+code, running relative to the resources assigned to the program’s
+process. It’s strictly up to the host how and when that execution
+takes place.
+
+From the point of view of Python, a program always starts with exactly
+one thread. However, the program may grow to run in multiple
+simultaneous threads. Not all hosts support multiple threads per
+process, but most do. Unlike processes, threads in a process are not
+isolated and independent from one another. Specifically, all threads
+in a process share all of the process’ resources.
+
+The fundamental point of threads is that each one does *run*
+independently, at the same time as the others. That may be only
+conceptually at the same time (“concurrently”) or physically (“in
+parallel”). Either way, the threads effectively run at a non-
+synchronized rate.
+
+Note:
+
+ That non-synchronized rate means none of the process’ memory is
+ guaranteed to stay consistent for the code running in any given
+ thread. Thus multi-threaded programs must take care to coordinate
+ access to intentionally shared resources. Likewise, they must take
+ care to be absolutely diligent about not accessing any *other*
+ resources in multiple threads; otherwise two threads running at the
+ same time might accidentally interfere with each other’s use of some
+ shared data. All this is true for both Python programs and the
+ Python runtime.The cost of this broad, unstructured requirement is
+ the tradeoff for the kind of raw concurrency that threads provide.
+ The alternative to the required discipline generally means dealing
+ with non-deterministic bugs and data corruption.
+
+
+Python Runtime Model
+--------------------
+
+The same conceptual layers apply to each Python program, with some
+extra data layers specific to Python:
+
+ **host machine**
+ **process** (global resources)
+ Python global runtime (*state*)
+ Python interpreter (*state*)
+ **thread** (runs Python bytecode and “C-API”)
+ Python thread *state*
+
+At the conceptual level: when a Python program starts, it looks
+exactly like that diagram, with one of each. The runtime may grow to
+include multiple interpreters, and each interpreter may grow to
+include multiple thread states.
+
+Note:
+
+ A Python implementation won’t necessarily implement the runtime
+ layers distinctly or even concretely. The only exception is places
+ where distinct layers are directly specified or exposed to users,
+ like through the "threading" module.
+
+Note:
+
+ The initial interpreter is typically called the “main” interpreter.
+ Some Python implementations, like CPython, assign special roles to
+ the main interpreter.Likewise, the host thread where the runtime was
+ initialized is known as the “main” thread. It may be different from
+ the process’ initial thread, though they are often the same. In
+ some cases “main thread” may be even more specific and refer to the
+ initial thread state. A Python runtime might assign specific
+ responsibilities to the main thread, such as handling signals.
+
+As a whole, the Python runtime consists of the global runtime state,
+interpreters, and thread states. The runtime ensures all that state
+stays consistent over its lifetime, particularly when used with
+multiple host threads.
+
+The global runtime, at the conceptual level, is just a set of
+interpreters. While those interpreters are otherwise isolated and
+independent from one another, they may share some data or other
+resources. The runtime is responsible for managing these global
+resources safely. The actual nature and management of these resources
+is implementation-specific. Ultimately, the external utility of the
+global runtime is limited to managing interpreters.
+
+In contrast, an “interpreter” is conceptually what we would normally
+think of as the (full-featured) “Python runtime”. When machine code
+executing in a host thread interacts with the Python runtime, it calls
+into Python in the context of a specific interpreter.
+
+Note:
+
+ The term “interpreter” here is not the same as the “bytecode
+ interpreter”, which is what regularly runs in threads, executing
+ compiled Python code.In an ideal world, “Python runtime” would refer
+ to what we currently call “interpreter”. However, it’s been called
+ “interpreter” at least since introduced in 1997 (CPython:a027efa5b).
+
+Each interpreter completely encapsulates all of the non-process-
+global, non-thread-specific state needed for the Python runtime to
+work. Notably, the interpreter’s state persists between uses. It
+includes fundamental data like "sys.modules". The runtime ensures
+multiple threads using the same interpreter will safely share it
+between them.
+
+A Python implementation may support using multiple interpreters at the
+same time in the same process. They are independent and isolated from
+one another. For example, each interpreter has its own "sys.modules".
+
+For thread-specific runtime state, each interpreter has a set of
+thread states, which it manages, in the same way the global runtime
+contains a set of interpreters. It can have thread states for as many
+host threads as it needs. It may even have multiple thread states for
+the same host thread, though that isn’t as common.
+
+Each thread state, conceptually, has all the thread-specific runtime
+data an interpreter needs to operate in one host thread. The thread
+state includes the current raised exception and the thread’s Python
+call stack. It may include other thread-specific resources.
+
+Note:
+
+ The term “Python thread” can sometimes refer to a thread state, but
+ normally it means a thread created using the "threading" module.
+
+Each thread state, over its lifetime, is always tied to exactly one
+interpreter and exactly one host thread. It will only ever be used in
+that thread and with that interpreter.
+
+Multiple thread states may be tied to the same host thread, whether
+for different interpreters or even the same interpreter. However, for
+any given host thread, only one of the thread states tied to it can be
+used by the thread at a time.
+
+Thread states are isolated and independent from one another and don’t
+share any data, except for possibly sharing an interpreter and objects
+or other resources belonging to that interpreter.
+
+Once a program is running, new Python threads can be created using the
+"threading" module (on platforms and Python implementations that
+support threads). Additional processes can be created using the "os",
+"subprocess", and "multiprocessing" modules. Interpreters can be
+created and used with the "interpreters" module. Coroutines (async)
+can be run using "asyncio" in each interpreter, typically only in a
+single thread (often the main thread).
+
-[ Footnotes ]-
[1] This limitation occurs because the code that is executed by these
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".
+Unlike in integer literals, leading zeros are allowed. For example,
+"077.010" is legal, and denotes the same number as "77.01".
As in integer literals, single underscores may occur between digits to
help readability:
without "global", although free variables may refer to globals without
being declared global.
-The "global" statement applies to the entire scope of a function or
-class body. A "SyntaxError" is raised if a variable is used or
-assigned to prior to its global declaration in the scope.
+The "global" statement applies to the entire current scope (module,
+function body or class definition). A "SyntaxError" is raised if a
+variable is used or assigned to prior to its global declaration in the
+scope.
+
+At the module level, all variables are global, so a "global" statement
+has no effect. However, variables must still not be used or assigned
+to prior to their "global" declaration. This requirement is relaxed in
+the interactive prompt (*REPL*).
**Programmer’s note:** "global" is a directive to the parser. It
applies only to code parsed at the same time as the "global"
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".
+Unlike in integer literals, leading zeros are allowed. For example,
+"077.010" is legal, and denotes the same number as "77.01".
As in integer literals, single underscores may occur between digits to
help readability:
*************************
*Objects* are Python’s abstraction for data. All data in a Python
-program is represented by objects or by relations between objects. (In
-a sense, and in conformance to Von Neumann’s model of a “stored
-program computer”, code is also represented by objects.)
+program is represented by objects or by relations between objects.
+Even code is represented by objects.
Every object has an identity, a type and a value. An object’s
*identity* never changes once it has been created; you may think of it
the numeric index of a positional argument, or the name of a
keyword argument. Returns a copy of the string where each
replacement field is replaced with the string value of the
- corresponding argument.
+ corresponding argument. For example:
- >>> "The sum of 1 + 2 is {0}".format(1+2)
- 'The sum of 1 + 2 is 3'
+ >>> "The sum of 1 + 2 is {0}".format(1+2)
+ 'The sum of 1 + 2 is 3'
+ >>> "The sum of {a} + {b} is {answer}".format(answer=1+2, a=1, b=2)
+ 'The sum of 1 + 2 is 3'
+ >>> "{1} expects the {0} Inquisition!".format("Spanish", "Nobody")
+ 'Nobody expects the Spanish Inquisition!'
See Format String Syntax for a description of the various
formatting options that can be specified in format strings.
database as “Letter”, i.e., those with general category property
being one of “Lm”, “Lt”, “Lu”, “Ll”, or “Lo”. Note that this is
different from the Alphabetic property defined in the section 4.10
- ‘Letters, Alphabetic, and Ideographic’ of the Unicode Standard.
+ ‘Letters, Alphabetic, and Ideographic’ of the Unicode Standard. For
+ example:
+
+ >>> 'Letters and spaces'.isalpha()
+ False
+ >>> 'LettersOnly'.isalpha()
+ True
+ >>> 'µ'.isalpha() # non-ASCII characters can be considered alphabetical too
+ True
+
+ See Unicode Properties.
str.isascii()
Return "True" if the string is empty or all characters in the
string are ASCII, "False" otherwise. ASCII characters have code
- points in the range U+0000-U+007F.
+ points in the range U+0000-U+007F. For example:
+
+ >>> 'ASCII characters'.isascii()
+ True
+ >>> 'µ'.isascii()
+ False
Added in version 3.7.
Return "True" if all characters in the string are decimal
characters and there is at least one character, "False" otherwise.
Decimal characters are those that can be used to form numbers in
- base 10, e.g. U+0660, ARABIC-INDIC DIGIT ZERO. Formally a decimal
- character is a character in the Unicode General Category “Nd”.
+ base 10, such as U+0660, ARABIC-INDIC DIGIT ZERO. Formally a
+ decimal character is a character in the Unicode General Category
+ “Nd”. For example:
+
+ >>> '0123456789'.isdecimal()
+ True
+ >>> '٠١٢٣٤٥٦٧٨٩'.isdecimal() # Arabic-Indic digits zero to nine
+ True
+ >>> 'alphabetic'.isdecimal()
+ False
str.isdigit()
follow uncased characters and lowercase characters only cased ones.
Return "False" otherwise.
+ For example:
+
+ >>> 'Spam, Spam, Spam'.istitle()
+ True
+ >>> 'spam, spam, spam'.istitle()
+ False
+ >>> 'SPAM, SPAM, SPAM'.istitle()
+ False
+
+ See also "title()".
+
str.isupper()
Return "True" if all cased characters [4] in the string are
Return a string which is the concatenation of the strings in
*iterable*. A "TypeError" will be raised if there are any non-
string values in *iterable*, including "bytes" objects. The
- separator between elements is the string providing this method.
+ separator between elements is the string providing this method. For
+ example:
+
+ >>> ', '.join(['spam', 'spam', 'spam'])
+ 'spam, spam, spam'
+ >>> '-'.join('Python')
+ 'P-y-t-h-o-n'
+
+ See also "split()".
str.ljust(width, fillchar=' ', /)
>>> " foo ".split(maxsplit=0)
['foo ']
+ See also "join()".
+
str.splitlines(keepends=False)
Return a list of the lines in the string, breaking at line
>>> titlecase("they're bill's friends.")
"They're Bill's Friends."
+ See also "istitle()".
+
str.translate(table, /)
Return a copy of the string in which each character has been mapped
"except*" clause
================
-The "except*" clause(s) are used for handling "ExceptionGroup"s. The
-exception type for matching is interpreted as in the case of "except",
-but in the case of exception groups we can have partial matches when
-the type matches some of the exceptions in the group. This means that
-multiple "except*" clauses can execute, each handling part of the
-exception group. Each clause executes at most once and handles an
-exception group of all matching exceptions. Each exception in the
-group is handled by at most one "except*" clause, the first that
-matches it.
+The "except*" clause(s) specify one or more handlers for groups of
+exceptions ("BaseExceptionGroup" instances). A "try" statement can
+have either "except" or "except*" clauses, but not both. The exception
+type for matching is mandatory in the case of "except*", so "except*:"
+is a syntax error. The type is interpreted as in the case of "except",
+but matching is performed on the exceptions contained in the group
+that is being handled. An "TypeError" is raised if a matching type is
+a subclass of "BaseExceptionGroup", because that would have ambiguous
+semantics.
+
+When an exception group is raised in the try block, each "except*"
+clause splits (see "split()") it into the subgroups of matching and
+non-matching exceptions. If the matching subgroup is not empty, it
+becomes the handled exception (the value returned from
+"sys.exception()") and assigned to the target of the "except*" clause
+(if there is one). Then, the body of the "except*" clause executes. If
+the non-matching subgroup is not empty, it is processed by the next
+"except*" in the same manner. This continues until all exceptions in
+the group have been matched, or the last "except*" clause has run.
+
+After all "except*" clauses execute, the group of unhandled exceptions
+is merged with any exceptions that were raised or re-raised from
+within "except*" clauses. This merged exception group propagates on.:
>>> try:
... raise ExceptionGroup("eg",
caught <class 'ExceptionGroup'> with nested (TypeError(2),)
caught <class 'ExceptionGroup'> with nested (OSError(3), OSError(4))
+ Exception Group Traceback (most recent call last):
- | File "<stdin>", line 2, in <module>
- | ExceptionGroup: eg
+ | File "<doctest default[0]>", line 2, in <module>
+ | raise ExceptionGroup("eg",
+ | [ValueError(1), TypeError(2), OSError(3), OSError(4)])
+ | ExceptionGroup: eg (1 sub-exception)
+-+---------------- 1 ----------------
| ValueError: 1
+------------------------------------
-Any remaining exceptions that were not handled by any "except*" clause
-are re-raised at the end, along with all exceptions that were raised
-from within the "except*" clauses. If this list contains more than one
-exception to reraise, they are combined into an exception group.
-
-If the raised exception is not an exception group and its type matches
-one of the "except*" clauses, it is caught and wrapped by an exception
-group with an empty message string.
+If the exception raised from the "try" block is not an exception group
+and its type matches one of the "except*" clauses, it is caught and
+wrapped by an exception group with an empty message string. This
+ensures that the type of the target "e" is consistently
+"BaseExceptionGroup":
>>> try:
... raise BlockingIOError
...
ExceptionGroup('', (BlockingIOError()))
-An "except*" clause must have a matching expression; it cannot be
-"except*:". Furthermore, this expression cannot contain exception
-group types, because that would have ambiguous semantics.
-
-It is not possible to mix "except" and "except*" in the same "try".
-The "break", "continue", and "return" statements cannot appear in an
-"except*" clause.
+"break", "continue" and "return" cannot appear in an "except*" clause.
"else" clause
| | "X.__bases__" will be exactly equal to "(A, B, |
| | C)". |
+----------------------------------------------------+----------------------------------------------------+
+| type.__base__ | **CPython implementation detail:** The single base |
+| | class in the inheritance chain that is responsible |
+| | for the memory layout of instances. This attribute |
+| | corresponds to "tp_base" at the C level. |
++----------------------------------------------------+----------------------------------------------------+
| type.__doc__ | The class’s documentation string, or "None" if |
| | undefined. Not inherited by subclasses. |
+----------------------------------------------------+----------------------------------------------------+
--- /dev/null
+.. date: 2025-10-08-22-54-38
+.. gh-issue: 139810
+.. nonce: LAaemi
+.. release date: 2025-12-02
+.. section: Windows
+
+Installing with ``py install 3[.x]-dev`` will now select final versions as
+well as prereleases.
+
+..
+
+.. date: 2025-11-18-13-55-47
+.. gh-issue: 141692
+.. nonce: tud9if
+.. section: Tools/Demos
+
+Each slice of an iOS XCframework now contains a ``lib`` folder that contains
+a symlink to the libpython dylib. This allows binary modules to be compiled
+for iOS using dynamic libreary linking, rather than Framework linking.
+
+..
+
+.. date: 2025-11-12-12-54-28
+.. gh-issue: 141442
+.. nonce: 50dS3P
+.. section: Tools/Demos
+
+The iOS testbed now correctly handles test arguments that contain spaces.
+
+..
+
+.. date: 2025-10-29-15-20-19
+.. gh-issue: 140702
+.. nonce: ZXtW8h
+.. section: Tools/Demos
+
+The iOS testbed app will now expose the ``GITHUB_ACTIONS`` environment
+variable to iOS apps being tested.
+
+..
+
+.. date: 2025-08-06-11-54-55
+.. gh-issue: 137484
+.. nonce: 8iFAQs
+.. section: Tools/Demos
+
+Have ``Tools/wasm/wasi`` put the build Python into a directory named after
+the build triple instead of "build".
+
+..
+
+.. date: 2025-07-30-11-15-47
+.. gh-issue: 137248
+.. nonce: 8IxwY3
+.. section: Tools/Demos
+
+Add a ``--logdir`` option to ``Tools/wasm/wasi`` for specifying where to
+write log files.
+
+..
+
+.. date: 2025-07-30-10-28-35
+.. gh-issue: 137243
+.. nonce: NkdUqH
+.. section: Tools/Demos
+
+Have Tools/wasm/wasi detect a WASI SDK install in /opt when it was directly
+extracted from a release tarball.
+
+..
+
+.. date: 2025-10-23-16-39-49
+.. gh-issue: 140482
+.. nonce: ZMtyeD
+.. section: Tests
+
+Preserve and restore the state of ``stty echo`` as part of the test
+environment.
+
+..
+
+.. date: 2025-10-15-00-52-12
+.. gh-issue: 140082
+.. nonce: fpET50
+.. section: Tests
+
+Update ``python -m test`` to set ``FORCE_COLOR=1`` when being run with color
+enabled so that :mod:`unittest` which is run by it with redirected output
+will output in color.
+
+..
+
+.. date: 2025-09-22-15-40-09
+.. gh-issue: 139208
+.. nonce: Tc13dl
+.. section: Tests
+
+Fix regrtest ``--fast-ci --verbose``: don't ignore the ``--verbose`` option
+anymore. Patch by Victor Stinner.
+
+..
+
+.. date: 2025-07-09-21-45-51
+.. gh-issue: 136442
+.. nonce: jlbklP
+.. section: Tests
+
+Use exitcode ``1`` instead of ``5`` if :func:`unittest.TestCase.setUpClass`
+raises an exception
+
+..
+
+.. date: 2025-10-07-19-31-34
+.. gh-issue: 139700
+.. nonce: vNHU1O
+.. section: Security
+
+Check consistency of the zip64 end of central directory record. Support
+records with "zip64 extensible data" if there are no bytes prepended to the
+ZIP file.
+
+..
+
+.. date: 2025-09-24-13-39-56
+.. gh-issue: 139283
+.. nonce: jODz_q
+.. section: Security
+
+:mod:`sqlite3`: correctly handle maximum number of rows to fetch in
+:meth:`Cursor.fetchmany <sqlite3.Cursor.fetchmany>` and reject negative
+values for :attr:`Cursor.arraysize <sqlite3.Cursor.arraysize>`. Patch by
+Bénédikt Tran.
+
+..
+
+.. date: 2025-08-15-23-08-44
+.. gh-issue: 137836
+.. nonce: b55rhh
+.. section: Security
+
+Add support of the "plaintext" element, RAWTEXT elements "xmp", "iframe",
+"noembed" and "noframes", and optionally RAWTEXT element "noscript" in
+:class:`html.parser.HTMLParser`.
+
+..
+
+.. date: 2025-06-28-13-23-53
+.. gh-issue: 136063
+.. nonce: aGk0Jv
+.. section: Security
+
+:mod:`email.message`: ensure linear complexity for legacy HTTP parameters
+parsing. Patch by Bénédikt Tran.
+
+..
+
+.. date: 2025-05-30-22-33-27
+.. gh-issue: 136065
+.. nonce: bu337o
+.. section: Security
+
+Fix quadratic complexity in :func:`os.path.expandvars`.
+
+..
+
+.. date: 2024-05-23-11-47-48
+.. gh-issue: 119451
+.. nonce: qkJe9-
+.. section: Security
+
+Fix a potential memory denial of service in the :mod:`http.client` module.
+When connecting to a malicious server, it could cause an arbitrary amount of
+memory to be allocated. This could have led to symptoms including a
+:exc:`MemoryError`, swapping, out of memory (OOM) killed processes or
+containers, or even system crashes.
+
+..
+
+.. date: 2024-05-21-22-11-31
+.. gh-issue: 119342
+.. nonce: BTFj4Z
+.. section: Security
+
+Fix a potential memory denial of service in the :mod:`plistlib` module. When
+reading a Plist file received from untrusted source, it could cause an
+arbitrary amount of memory to be allocated. This could have led to symptoms
+including a :exc:`MemoryError`, swapping, out of memory (OOM) killed
+processes or containers, or even system crashes.
+
+..
+
+.. date: 2025-11-29-04-20-44
+.. gh-issue: 74389
+.. nonce: pW3URj
+.. section: Library
+
+When the stdin being used by a :class:`subprocess.Popen` instance is closed,
+this is now ignored in :meth:`subprocess.Popen.communicate` instead of
+leaving the class in an inconsistent state.
+
+..
+
+.. date: 2025-11-29-03-02-45
+.. gh-issue: 87512
+.. nonce: bn4xbm
+.. section: Library
+
+Fix :func:`subprocess.Popen.communicate` timeout handling on Windows when
+writing large input. Previously, the timeout was ignored during stdin
+writing, causing the method to block indefinitely if the child process did
+not consume input quickly. The stdin write is now performed in a background
+thread, allowing the timeout to be properly enforced.
+
+..
+
+.. date: 2025-11-27-20-16-38
+.. gh-issue: 141473
+.. nonce: Wq4xVN
+.. section: Library
+
+When :meth:`subprocess.Popen.communicate` was called with *input* and a
+*timeout* and is called for a second time after a
+:exc:`~subprocess.TimeoutExpired` exception before the process has died, it
+should no longer hang.
+
+..
+
+.. date: 2025-11-25-16-00-29
+.. gh-issue: 59000
+.. nonce: YtOyJy
+.. section: Library
+
+Fix :mod:`pdb` breakpoint resolution for class methods when the module
+defining the class is not imported.
+
+..
+
+.. date: 2025-11-18-14-39-31
+.. gh-issue: 141570
+.. nonce: q3n984
+.. section: Library
+
+Support :term:`file-like object` raising :exc:`OSError` from
+:meth:`~io.IOBase.fileno` in color detection (``_colorize.can_colorize()``).
+This can occur when ``sys.stdout`` is redirected.
+
+..
+
+.. date: 2025-11-17-08-16-30
+.. gh-issue: 141659
+.. nonce: QNi9Aj
+.. section: Library
+
+Fix bad file descriptor errors from ``_posixsubprocess`` on AIX.
+
+..
+
+.. date: 2025-11-15-14-58-12
+.. gh-issue: 141600
+.. nonce: XY2BXg
+.. section: Library
+
+Fix musl version detection on Void Linux.
+
+..
+
+.. date: 2025-11-14-16-24-20
+.. gh-issue: 141497
+.. nonce: L_CxDJ
+.. section: Library
+
+:mod:`ipaddress`: ensure that the methods :meth:`IPv4Network.hosts()
+<ipaddress.IPv4Network.hosts>` and :meth:`IPv6Network.hosts()
+<ipaddress.IPv6Network.hosts>` always return an iterator.
+
+..
+
+.. date: 2025-11-13-14-51-30
+.. gh-issue: 140938
+.. nonce: kXsHHv
+.. section: Library
+
+The :func:`statistics.stdev` and :func:`statistics.pstdev` functions now
+raise a :exc:`ValueError` when the input contains an infinity or a NaN.
+
+..
+
+.. date: 2025-11-12-15-42-47
+.. gh-issue: 124111
+.. nonce: hTw4OE
+.. section: Library
+
+Updated Tcl threading configuration in :mod:`_tkinter` to assume that
+threads are always available in Tcl 9 and later.
+
+..
+
+.. date: 2025-11-12-01-49-03
+.. gh-issue: 137109
+.. nonce: D6sq2B
+.. section: Library
+
+The :mod:`os.fork` and related forking APIs will no longer warn in the
+common case where Linux or macOS platform APIs return the number of threads
+in a process and find the answer to be 1 even when a
+:func:`os.register_at_fork` ``after_in_parent=`` callback (re)starts a
+thread.
+
+..
+
+.. date: 2025-11-10-01-47-18
+.. gh-issue: 141314
+.. nonce: baaa28
+.. section: Library
+
+Fix assertion failure in :meth:`io.TextIOWrapper.tell` when reading files
+with standalone carriage return (``\r``) line endings.
+
+..
+
+.. date: 2025-11-09-18-55-13
+.. gh-issue: 141311
+.. nonce: qZ3swc
+.. section: Library
+
+Fix assertion failure in :func:`!io.BytesIO.readinto` and undefined behavior
+arising when read position is above capcity in :class:`io.BytesIO`.
+
+..
+
+.. date: 2025-11-06-15-11-50
+.. gh-issue: 141141
+.. nonce: tgIfgH
+.. section: Library
+
+Fix a thread safety issue with :func:`base64.b85decode`. Contributed by
+Benel Tayar.
+
+..
+
+.. date: 2025-11-04-15-40-35
+.. gh-issue: 137969
+.. nonce: 9VZQVt
+.. section: Library
+
+Fix :meth:`annotationlib.ForwardRef.evaluate` returning
+:class:`~annotationlib.ForwardRef` objects which don't update with new
+globals.
+
+..
+
+.. date: 2025-11-03-17-13-00
+.. gh-issue: 140911
+.. nonce: 7KFvSQ
+.. section: Library
+
+:mod:`collections`: Ensure that the methods ``UserString.rindex()`` and
+``UserString.index()`` accept :class:`collections.UserString` instances as
+the sub argument.
+
+..
+
+.. date: 2025-11-03-16-23-54
+.. gh-issue: 140797
+.. nonce: DuFEeR
+.. section: Library
+
+The undocumented :class:`!re.Scanner` class now forbids regular expressions
+containing capturing groups in its lexicon patterns. Patterns using
+capturing groups could previously lead to crashes with segmentation fault.
+Use non-capturing groups (?:...) instead.
+
+..
+
+.. date: 2025-11-03-05-38-31
+.. gh-issue: 125115
+.. nonce: jGS8MN
+.. section: Library
+
+Refactor the :mod:`pdb` parsing issue so positional arguments can pass
+through intuitively.
+
+..
+
+.. date: 2025-11-02-19-23-32
+.. gh-issue: 140815
+.. nonce: McEG-T
+.. section: Library
+
+:mod:`faulthandler` now detects if a frame or a code object is invalid or
+freed. Patch by Victor Stinner.
+
+..
+
+.. date: 2025-11-02-11-46-00
+.. gh-issue: 100218
+.. nonce: 9Ezfdq
+.. section: Library
+
+Correctly set :attr:`~OSError.errno` when :func:`socket.if_nametoindex` or
+:func:`socket.if_indextoname` raise an :exc:`OSError`. Patch by Bénédikt
+Tran.
+
+..
+
+.. date: 2025-11-02-10-44-23
+.. gh-issue: 140875
+.. nonce: wt6B37
+.. section: Library
+
+Fix handling of unclosed character references (named and numerical) followed
+by the end of file in :class:`html.parser.HTMLParser` with
+``convert_charrefs=False``.
+
+..
+
+.. date: 2025-11-02-09-37-22
+.. gh-issue: 140734
+.. nonce: f8gST9
+.. section: Library
+
+:mod:`multiprocessing`: fix off-by-one error when checking the length of a
+temporary socket file path. Patch by Bénédikt Tran.
+
+..
+
+.. date: 2025-11-01-00-36-14
+.. gh-issue: 140874
+.. nonce: eAWt3K
+.. section: Library
+
+Bump the version of pip bundled in ensurepip to version 25.3
+
+..
+
+.. date: 2025-10-31-15-06-26
+.. gh-issue: 140691
+.. nonce: JzHGtg
+.. section: Library
+
+In :mod:`urllib.request`, when opening a FTP URL fails because a data
+connection cannot be made, the control connection's socket is now closed to
+avoid a :exc:`ResourceWarning`.
+
+..
+
+.. date: 2025-10-31-13-57-55
+.. gh-issue: 103847
+.. nonce: VM7TnW
+.. section: Library
+
+Fix hang when cancelling process created by
+:func:`asyncio.create_subprocess_exec` or
+:func:`asyncio.create_subprocess_shell`. Patch by Kumar Aditya.
+
+..
+
+.. date: 2025-10-29-16-12-41
+.. gh-issue: 120057
+.. nonce: qGj5Dl
+.. section: Library
+
+Add :func:`os.reload_environ` to ``os.__all__``.
+
+..
+
+.. date: 2025-10-28-17-43-51
+.. gh-issue: 140228
+.. nonce: 8kfHhO
+.. section: Library
+
+Avoid making unnecessary filesystem calls for frozen modules in
+:mod:`linecache` when the global module cache is not present.
+
+..
+
+.. date: 2025-10-27-18-29-42
+.. gh-issue: 140590
+.. nonce: LT9HHn
+.. section: Library
+
+Fix arguments checking for the :meth:`!functools.partial.__setstate__` that
+may lead to internal state corruption and crash. Patch by Sergey Miryanov.
+
+..
+
+.. date: 2025-10-27-16-01-41
+.. gh-issue: 125434
+.. nonce: qy0uRA
+.. section: Library
+
+Display thread name in :mod:`faulthandler` on Windows. Patch by Victor
+Stinner.
+
+..
+
+.. date: 2025-10-27-13-49-31
+.. gh-issue: 140634
+.. nonce: ULng9G
+.. section: Library
+
+Fix a reference counting bug in :meth:`!os.sched_param.__reduce__`.
+
+..
+
+.. date: 2025-10-26-16-24-12
+.. gh-issue: 140633
+.. nonce: ioayC1
+.. section: Library
+
+Ignore :exc:`AttributeError` when setting a module's ``__file__`` attribute
+when loading an extension module packaged as Apple Framework.
+
+..
+
+.. date: 2025-10-25-21-26-16
+.. gh-issue: 140593
+.. nonce: OxlLc9
+.. section: Library
+
+:mod:`xml.parsers.expat`: Fix a memory leak that could affect users with
+:meth:`~xml.parsers.expat.xmlparser.ElementDeclHandler` set to a custom
+element declaration handler. Patch by Sebastian Pipping.
+
+..
+
+.. date: 2025-10-25-21-04-00
+.. gh-issue: 140607
+.. nonce: oOZGxS
+.. section: Library
+
+Inside :meth:`io.RawIOBase.read`, validate that the count of bytes returned
+by :meth:`io.RawIOBase.readinto` is valid (inside the provided buffer).
+
+..
+
+.. date: 2025-10-23-19-39-16
+.. gh-issue: 138162
+.. nonce: Znw5DN
+.. section: Library
+
+Fix :class:`logging.LoggerAdapter` with ``merge_extra=True`` and without the
+*extra* argument.
+
+..
+
+.. date: 2025-10-23-12-12-22
+.. gh-issue: 138774
+.. nonce: mnh2gU
+.. section: Library
+
+:func:`ast.unparse` now generates full source code when handling
+:class:`ast.Interpolation` nodes that do not have a specified source.
+
+..
+
+.. date: 2025-10-22-20-52-13
+.. gh-issue: 140474
+.. nonce: xIWlip
+.. section: Library
+
+Fix memory leak in :class:`array.array` when creating arrays from an empty
+:class:`str` and the ``u`` type code.
+
+..
+
+.. date: 2025-10-21-15-54-13
+.. gh-issue: 137530
+.. nonce: ZyIVUH
+.. section: Library
+
+:mod:`dataclasses` Fix annotations for generated ``__init__`` methods by
+replacing the annotations that were in-line in the generated source code
+with ``__annotate__`` functions attached to the methods.
+
+..
+
+.. date: 2025-10-20-12-33-49
+.. gh-issue: 140348
+.. nonce: SAKnQZ
+.. section: Library
+
+Fix regression in Python 3.14.0 where using the ``|`` operator on a
+:class:`typing.Union` object combined with an object that is not a type
+would raise an error.
+
+..
+
+.. date: 2025-10-17-23-58-11
+.. gh-issue: 140272
+.. nonce: lhY8uS
+.. section: Library
+
+Fix memory leak in the :meth:`!clear` method of the :mod:`dbm.gnu` database.
+
+..
+
+.. date: 2025-10-15-21-42-13
+.. gh-issue: 140041
+.. nonce: _Fka2j
+.. section: Library
+
+Fix import of :mod:`ctypes` on Android and Cygwin when ABI flags are
+present.
+
+..
+
+.. date: 2025-10-15-20-47-04
+.. gh-issue: 140120
+.. nonce: 3gffZq
+.. section: Library
+
+Fixed a memory leak in :mod:`hmac` when it was using the hacl-star backend.
+Discovered by ``@ashm-dev`` using AddressSanitizer.
+
+..
+
+.. date: 2025-10-11-10-02-56
+.. gh-issue: 139905
+.. nonce: UyJIR_
+.. section: Library
+
+Add suggestion to error message for :class:`typing.Generic` subclasses when
+``cls.__parameters__`` is missing due to a parent class failing to call
+:meth:`super().__init_subclass__() <object.__init_subclass__>` in its
+``__init_subclass__``.
+
+..
+
+.. date: 2025-10-10-11-22-50
+.. gh-issue: 139894
+.. nonce: ECAXqj
+.. section: Library
+
+Fix incorrect sharing of current task with the child process while forking
+in :mod:`asyncio`. Patch by Kumar Aditya.
+
+..
+
+.. date: 2025-10-09-21-37-20
+.. gh-issue: 139845
+.. nonce: dzx5UP
+.. section: Library
+
+Fix to not print KeyboardInterrupt twice in default asyncio REPL.
+
+..
+
+.. date: 2025-10-09-13-48-28
+.. gh-issue: 139783
+.. nonce: __NUgo
+.. section: Library
+
+Fix :func:`inspect.getsourcelines` for the case when a decorator is followed
+by a comment or an empty line.
+
+..
+
+.. date: 2025-10-09-03-06-19
+.. gh-issue: 139809
+.. nonce: lzHJNu
+.. section: Library
+
+Prevent premature colorization of subparser ``prog`` in
+:meth:`argparse.ArgumentParser.add_subparsers` to respect color environment
+variable changes after parser creation.
+
+..
+
+.. date: 2025-10-08-00-06-30
+.. gh-issue: 139736
+.. nonce: baPeBd
+.. section: Library
+
+Fix excessive indentation in the default :mod:`argparse`
+:class:`!HelpFormatter`. Patch by Alexander Edland.
+
+..
+
+.. date: 2025-10-02-17-40-10
+.. gh-issue: 70765
+.. nonce: zVlLZn
+.. section: Library
+
+:mod:`http.server`: fix default handling of HTTP/0.9 requests in
+:class:`~http.server.BaseHTTPRequestHandler`. Previously,
+:meth:`!BaseHTTPRequestHandler.parse_request` incorrectly waited for headers
+in the request although those are not supported in HTTP/0.9. Patch by
+Bénédikt Tran.
+
+..
+
+.. date: 2025-09-30-12-52-54
+.. gh-issue: 63161
+.. nonce: mECM1A
+.. section: Library
+
+Fix :func:`tokenize.detect_encoding`. Support non-UTF-8 shebang and comments
+if non-UTF-8 encoding is specified. Detect decoding error for non-UTF-8
+encoding. Detect null bytes in source code.
+
+..
+
+.. date: 2025-09-28-16-34-11
+.. gh-issue: 139391
+.. nonce: nRFnmx
+.. section: Library
+
+Fix an issue when, on non-Windows platforms, it was not possible to
+gracefully exit a ``python -m asyncio`` process suspended by Ctrl+Z and
+later resumed by :manpage:`fg` other than with :manpage:`kill`.
+
+..
+
+.. date: 2025-09-25-20-16-10
+.. gh-issue: 101828
+.. nonce: yTxJlJ
+.. section: Library
+
+Fix ``'shift_jisx0213'``, ``'shift_jis_2004'``, ``'euc_jisx0213'`` and
+``'euc_jis_2004'`` codecs truncating null chars as they were treated as part
+of multi-character sequences.
+
+..
+
+.. date: 2025-09-24-14-17-34
+.. gh-issue: 139289
+.. nonce: Vmk25k
+.. section: Library
+
+Do a real lazy-import on :mod:`rlcompleter` in :mod:`pdb` and restore the
+existing completer after importing :mod:`rlcompleter`.
+
+..
+
+.. date: 2025-09-23-09-46-46
+.. gh-issue: 139246
+.. nonce: pzfM-w
+.. section: Library
+
+fix: paste zero-width in default repl width is wrong.
+
+..
+
+.. date: 2025-09-22-14-40-11
+.. gh-issue: 90949
+.. nonce: UM35nb
+.. section: Library
+
+Add :meth:`~xml.parsers.expat.xmlparser.SetAllocTrackerActivationThreshold`
+and :meth:`~xml.parsers.expat.xmlparser.SetAllocTrackerMaximumAmplification`
+to :ref:`xmlparser <xmlparser-objects>` objects to prevent use of
+disproportional amounts of dynamic memory from within an Expat parser. Patch
+by Bénédikt Tran.
+
+..
+
+.. date: 2025-09-21-15-58-57
+.. gh-issue: 139210
+.. nonce: HGbMvz
+.. section: Library
+
+Fix use-after-free when reporting unknown event in
+:func:`xml.etree.ElementTree.iterparse`. Patch by Ken Jin.
+
+..
+
+.. date: 2025-09-20-17-50-31
+.. gh-issue: 138860
+.. nonce: Y9JXap
+.. section: Library
+
+Lazy import :mod:`rlcompleter` in :mod:`pdb` to avoid deadlock in
+subprocess.
+
+..
+
+.. date: 2025-09-19-09-36-42
+.. gh-issue: 112729
+.. nonce: mmty0_
+.. section: Library
+
+Fix crash when calling :func:`concurrent.interpreters.create` when the
+process is out of memory.
+
+..
+
+.. date: 2025-09-18-05-32-18
+.. gh-issue: 135729
+.. nonce: 8AmMza
+.. section: Library
+
+Fix unraisable exception during finalization when using
+:mod:`concurrent.interpreters` in the REPL.
+
+..
+
+.. date: 2025-09-17-21-54-53
+.. gh-issue: 139076
+.. nonce: 2eX9lG
+.. section: Library
+
+Fix a bug in the :mod:`pydoc` module that was hiding functions in a Python
+module if they were implemented in an extension module and the module did
+not have ``__all__``.
+
+..
+
+.. date: 2025-09-17-19-08-34
+.. gh-issue: 139065
+.. nonce: Hu8fM5
+.. section: Library
+
+Fix trailing space before a wrapped long word if the line length is exactly
+*width* in :mod:`textwrap`.
+
+..
+
+.. date: 2025-09-17-12-07-21
+.. gh-issue: 139001
+.. nonce: O6tseN
+.. section: Library
+
+Fix race condition in :class:`pathlib.Path` on the internal ``_raw_paths``
+field.
+
+..
+
+.. date: 2025-09-17-08-32-43
+.. gh-issue: 138813
+.. nonce: LHkHjX
+.. section: Library
+
+:class:`!multiprocessing.BaseProcess` defaults ``kwargs`` to ``None``
+instead of a shared dictionary.
+
+..
+
+.. date: 2025-09-16-16-46-58
+.. gh-issue: 138993
+.. nonce: -8s8_T
+.. section: Library
+
+Dedent :data:`credits` text.
+
+..
+
+.. date: 2025-09-15-21-03-11
+.. gh-issue: 138891
+.. nonce: oZFdtR
+.. section: Library
+
+Fix ``SyntaxError`` when ``inspect.get_annotations(f, eval_str=True)`` is
+called on a function annotated with a :pep:`646` ``star_expression``
+
+..
+
+.. date: 2025-09-15-19-29-12
+.. gh-issue: 130567
+.. nonce: shDEnT
+.. section: Library
+
+Fix possible crash in :func:`locale.strxfrm` due to a platform bug on macOS.
+
+..
+
+.. date: 2025-09-13-12-19-17
+.. gh-issue: 138859
+.. nonce: PxjIoN
+.. section: Library
+
+Fix generic type parameterization raising a :exc:`TypeError` when omitting a
+:class:`ParamSpec` that has a default which is not a list of types.
+
+..
+
+.. date: 2025-09-12-09-34-37
+.. gh-issue: 138764
+.. nonce: mokHoY
+.. section: Library
+
+Prevent :func:`annotationlib.call_annotate_function` from calling
+``__annotate__`` functions that don't support ``VALUE_WITH_FAKE_GLOBALS`` in
+a fake globals namespace with empty globals.
+
+Make ``FORWARDREF`` and ``STRING`` annotations fall back to using ``VALUE``
+annotations in the case that neither their own format, nor
+``VALUE_WITH_FAKE_GLOBALS`` are supported.
+
+..
+
+.. date: 2025-09-11-15-03-37
+.. gh-issue: 138775
+.. nonce: w7rnSx
+.. section: Library
+
+Use of ``python -m`` with :mod:`base64` has been fixed to detect input from
+a terminal so that it properly notices EOF.
+
+..
+
+.. date: 2025-09-11-11-09-28
+.. gh-issue: 138779
+.. nonce: TNZnLr
+.. section: Library
+
+Support device numbers larger than ``2**63-1`` for the
+:attr:`~os.stat_result.st_rdev` field of the :class:`os.stat_result`
+structure.
+
+..
+
+.. date: 2025-09-05-21-10-24
+.. gh-issue: 137706
+.. nonce: 0EztiJ
+.. section: Library
+
+Fix the partial evaluation of annotations that use ``typing.Annotated[T,
+x]`` where ``T`` is a forward reference.
+
+..
+
+.. date: 2025-09-05-15-35-59
+.. gh-issue: 88375
+.. nonce: dC491a
+.. section: Library
+
+Fix normalization of the ``robots.txt`` rules and URLs in the
+:mod:`urllib.robotparser` module. No longer ignore trailing ``?``.
+Distinguish raw special characters ``?``, ``=`` and ``&`` from the
+percent-encoded ones.
+
+..
+
+.. date: 2025-09-04-15-18-11
+.. gh-issue: 111788
+.. nonce: tuTEM5
+.. section: Library
+
+Fix parsing errors in the :mod:`urllib.robotparser` module. Don't fail
+trying to parse weird paths. Don't fail trying to decode non-UTF-8
+``robots.txt`` files.
+
+..
+
+.. date: 2025-09-03-20-18-39
+.. gh-issue: 98896
+.. nonce: tjez89
+.. section: Library
+
+Fix a failure in multiprocessing resource_tracker when SharedMemory names
+contain colons. Patch by Rani Pinchuk.
+
+..
+
+.. date: 2025-09-03-18-26-07
+.. gh-issue: 138425
+.. nonce: cVE9Ho
+.. section: Library
+
+Fix partial evaluation of :class:`annotationlib.ForwardRef` objects which
+rely on names defined as globals.
+
+..
+
+.. date: 2025-09-03-15-20-10
+.. gh-issue: 138432
+.. nonce: RMc7UX
+.. section: Library
+
+:meth:`zoneinfo.reset_tzpath` will now convert any :class:`os.PathLike`
+objects it receives into strings before adding them to ``TZPATH``. It will
+raise ``TypeError`` if anything other than a string is found after this
+conversion. If given an :class:`os.PathLike` object that represents a
+relative path, it will now raise ``ValueError`` instead of ``TypeError``,
+and present a more informative error message.
+
+..
+
+.. date: 2025-08-31-09-06-49
+.. gh-issue: 138008
+.. nonce: heOvsU
+.. section: Library
+
+Fix segmentation faults in the :mod:`ctypes` module due to invalid
+:attr:`~ctypes._CFuncPtr.argtypes`. Patch by Dung Nguyen.
+
+..
+
+.. date: 2025-08-30-10-04-28
+.. gh-issue: 60462
+.. nonce: yh_vDc
+.. section: Library
+
+Fix :func:`locale.strxfrm` on Solaris (and possibly other platforms).
+
+..
+
+.. date: 2025-08-29-12-56-55
+.. gh-issue: 138239
+.. nonce: uthZFI
+.. section: Library
+
+The REPL now highlights :keyword:`type` as a soft keyword in :ref:`type
+statements <type>`.
+
+..
+
+.. date: 2025-08-28-13-20-09
+.. gh-issue: 138204
+.. nonce: 8oLOud
+.. section: Library
+
+Forbid expansion of shared anonymous :mod:`memory maps <mmap>` on Linux,
+which caused a bus error.
+
+..
+
+.. date: 2025-08-27-17-05-36
+.. gh-issue: 138010
+.. nonce: ZZJmPL
+.. section: Library
+
+Fix an issue where defining a class with an :func:`@warnings.deprecated
+<warnings.deprecated>`-decorated base class may not invoke the correct
+:meth:`~object.__init_subclass__` method in cases involving multiple
+inheritance. Patch by Brian Schubert.
+
+..
+
+.. date: 2025-08-26-08-17-56
+.. gh-issue: 138151
+.. nonce: I6CdAk
+.. section: Library
+
+In :mod:`annotationlib`, improve evaluation of forward references to
+nonlocal variables that are not yet defined when the annotations are
+initially evaluated.
+
+..
+
+.. date: 2025-08-16-16-04-15
+.. gh-issue: 137317
+.. nonce: Dl13B5
+.. section: Library
+
+:func:`inspect.signature` now correctly handles classes that use a
+descriptor on a wrapped :meth:`!__init__` or :meth:`!__new__` method.
+Contributed by Yongyu Yan.
+
+..
+
+.. date: 2025-08-16-09-02-11
+.. gh-issue: 137754
+.. nonce: mCev1Y
+.. section: Library
+
+Fix import of the :mod:`zoneinfo` module if the C implementation of the
+:mod:`datetime` module is not available.
+
+..
+
+.. date: 2025-08-07-17-18-57
+.. gh-issue: 137490
+.. nonce: s89ieZ
+.. section: Library
+
+Handle :data:`~errno.ECANCELED` in the same way as :data:`~errno.EINTR` in
+:func:`signal.sigwaitinfo` on NetBSD.
+
+..
+
+.. date: 2025-08-06-23-16-42
+.. gh-issue: 137477
+.. nonce: bk6BDV
+.. section: Library
+
+Fix :func:`!inspect.getblock`, :func:`inspect.getsourcelines` and
+:func:`inspect.getsource` for generator expressions.
+
+..
+
+.. date: 2025-08-03-13-16-39
+.. gh-issue: 137044
+.. nonce: 0hPVL_
+.. section: Library
+
+Return large limit values as positive integers instead of negative integers
+in :func:`resource.getrlimit`. Accept large values and reject negative
+values (except :data:`~resource.RLIM_INFINITY`) for limits in
+:func:`resource.setrlimit`.
+
+..
+
+.. date: 2025-08-01-23-52-49
+.. gh-issue: 75989
+.. nonce: 5aYXNJ
+.. section: Library
+
+:func:`tarfile.TarFile.extractall` and :func:`tarfile.TarFile.extract` now
+overwrite symlinks when extracting hardlinks. (Contributed by Alexander
+Enrique Urieles Nieto in :gh:`75989`.)
+
+..
+
+.. date: 2025-08-01-23-11-25
+.. gh-issue: 137017
+.. nonce: 0yGcNc
+.. section: Library
+
+Fix :obj:`threading.Thread.is_alive` to remain ``True`` until the underlying
+OS thread is fully cleaned up. This avoids false negatives in edge cases
+involving thread monitoring or premature :obj:`threading.Thread.is_alive`
+calls.
+
+..
+
+.. date: 2025-08-01-15-07-59
+.. gh-issue: 137273
+.. nonce: 4V8Xmv
+.. section: Library
+
+Fix debug assertion failure in :func:`locale.setlocale` on Windows.
+
+..
+
+.. date: 2025-07-30-17-42-36
+.. gh-issue: 137239
+.. nonce: qSpj32
+.. section: Library
+
+:mod:`heapq`: Update :data:`!heapq.__all__` with ``*_max`` functions.
+
+..
+
+.. date: 2025-07-28-23-11-29
+.. gh-issue: 81325
+.. nonce: jMJFBe
+.. section: Library
+
+:class:`tarfile.TarFile` now accepts a :term:`path-like <path-like object>`
+when working on a tar archive. (Contributed by Alexander Enrique Urieles
+Nieto in :gh:`81325`.)
+
+..
+
+.. date: 2025-07-28-20-48-32
+.. gh-issue: 137185
+.. nonce: fgI7-B
+.. section: Library
+
+Fix a potential async-signal-safety issue in :mod:`faulthandler` when
+printing C stack traces.
+
+..
+
+.. date: 2025-07-21-15-40-00
+.. gh-issue: 136914
+.. nonce: -GNG-d
+.. section: Library
+
+Fix retrieval of :attr:`doctest.DocTest.lineno` for objects decorated with
+:func:`functools.cache` or :class:`functools.cached_property`.
+
+..
+
+.. date: 2025-07-21-11-56-47
+.. gh-issue: 136912
+.. nonce: zWosAL
+.. section: Library
+
+:func:`hmac.digest` now properly handles large keys and messages by falling
+back to the pure Python implementation when necessary. Patch by Bénédikt
+Tran.
+
+..
+
+.. date: 2025-07-21-01-16-32
+.. gh-issue: 83424
+.. nonce: Y3tEV4
+.. section: Library
+
+Allows creating a :class:`ctypes.CDLL` without name when passing a handle as
+an argument.
+
+..
+
+.. date: 2025-07-17-16-12-23
+.. gh-issue: 136234
+.. nonce: VmTxtj
+.. section: Library
+
+Fix :meth:`asyncio.WriteTransport.writelines` to be robust to connection
+failure, by using the same behavior as
+:meth:`~asyncio.WriteTransport.write`.
+
+..
+
+.. date: 2025-07-10-21-02-43
+.. gh-issue: 136507
+.. nonce: pnEuGS
+.. section: Library
+
+Fix mimetypes CLI to handle multiple file parameters.
+
+..
+
+.. date: 2025-07-01-04-57-57
+.. gh-issue: 136057
+.. nonce: 4-t596
+.. section: Library
+
+Fixed the bug in :mod:`pdb` and :mod:`bdb` where ``next`` and ``step`` can't
+go over the line if a loop exists in the line.
+
+..
+
+.. date: 2025-06-16-15-00-13
+.. gh-issue: 135386
+.. nonce: lNrxLc
+.. section: Library
+
+Fix opening a :mod:`dbm.sqlite3` database for reading from read-only file or
+directory.
+
+..
+
+.. date: 2025-06-16-12-37-02
+.. gh-issue: 135444
+.. nonce: An2eeA
+.. section: Library
+
+Fix :meth:`asyncio.DatagramTransport.sendto` to account for datagram header
+size when data cannot be sent.
+
+..
+
+.. date: 2025-06-10-21-00-48
+.. gh-issue: 126631
+.. nonce: eITVJd
+.. section: Library
+
+Fix :mod:`multiprocessing` ``forkserver`` bug which prevented ``__main__``
+from being preloaded.
+
+..
+
+.. date: 2025-06-10-18-02-29
+.. gh-issue: 135307
+.. nonce: fXGrcK
+.. section: Library
+
+:mod:`email`: Fix exception in ``set_content()`` when encoding text and
+max_line_length is set to ``0`` or ``None`` (unlimited).
+
+..
+
+.. date: 2025-05-30-18-37-44
+.. gh-issue: 134453
+.. nonce: kxkA-o
+.. section: Library
+
+Fixed :func:`subprocess.Popen.communicate` ``input=`` handling of
+:class:`memoryview` instances that were non-byte shaped on POSIX platforms.
+Those are now properly cast to a byte shaped view instead of truncating the
+input. Windows platforms did not have this bug.
+
+..
+
+.. date: 2025-05-26-10-52-27
+.. gh-issue: 134698
+.. nonce: aJ1mZ1
+.. section: Library
+
+Fix a crash when calling methods of :class:`ssl.SSLContext` or
+:class:`ssl.SSLSocket` across multiple threads.
+
+..
+
+.. date: 2025-05-10-17-42-03
+.. gh-issue: 125996
+.. nonce: vaQp0-
+.. section: Library
+
+Fix thread safety of :class:`collections.OrderedDict`. Patch by Kumar
+Aditya.
+
+..
+
+.. date: 2025-05-10-15-10-54
+.. gh-issue: 133789
+.. nonce: I-ZlUX
+.. section: Library
+
+Fix unpickling of :mod:`pathlib` objects that were pickled in Python 3.13.
+
+..
+
+.. date: 2025-04-21-01-05-14
+.. gh-issue: 127081
+.. nonce: Egrpq7
+.. section: Library
+
+Fix libc thread safety issues with :mod:`dbm` by performing stateful
+operations in critical sections.
+
+..
+
+.. date: 2025-04-16-21-02-57
+.. gh-issue: 132551
+.. nonce: Psa7pL
+.. section: Library
+
+Make :class:`io.BytesIO` safe in :term:`free-threaded <free threading>`
+build.
+
+..
+
+.. date: 2025-03-27-08-13-32
+.. gh-issue: 131788
+.. nonce: 0RWiFc
+.. section: Library
+
+Make ``ResourceTracker.send`` from :mod:`multiprocessing` re-entrant safe
+
+..
+
+.. date: 2024-05-13-09-50-31
+.. gh-issue: 118981
+.. nonce: zgOQPv
+.. section: Library
+
+Fix potential hang in ``multiprocessing.popen_spawn_posix`` that can happen
+when the child proc dies early by closing the child fds right away.
+
+..
+
+.. date: 2023-03-21-10-59-40
+.. gh-issue: 102431
+.. nonce: eUDnf4
+.. section: Library
+
+Clarify constraints for "logical" arguments in methods of
+:class:`decimal.Context`.
+
+..
+
+.. date: 2023-02-13-20-34-52
+.. gh-issue: 78319
+.. nonce: V1zzed
+.. section: Library
+
+UTF8 support for the IMAP APPEND command has been made RFC compliant.
+
+..
+
+.. bpo: 38735
+.. date: 2022-01-07-16-56-57
+.. nonce: NFfJX6
+.. section: Library
+
+Fix failure when importing a module from the root directory on unix-like
+platforms with sys.pycache_prefix set.
+
+..
+
+.. bpo: 41839
+.. date: 2020-09-23-11-54-17
+.. nonce: kU5Ywl
+.. section: Library
+
+Allow negative priority values from :func:`os.sched_get_priority_min` and
+:func:`os.sched_get_priority_max` functions.
+
+..
+
+.. date: 2025-10-09-12-53-47
+.. gh-issue: 96491
+.. nonce: 4YKxvy
+.. section: IDLE
+
+Deduplicate version number in IDLE shell title bar after saving to a file.
+
+..
+
+.. date: 2025-10-08-08-35-50
+.. gh-issue: 139742
+.. nonce: B3fZLg
+.. section: IDLE
+
+Colorize t-string prefixes for template strings in IDLE, as done for
+f-string prefixes.
+
+..
+
+.. date: 2025-11-26-23-30-09
+.. gh-issue: 141994
+.. nonce: arBEG6
+.. section: Documentation
+
+:mod:`xml.sax.handler`: Make Documentation of
+:data:`xml.sax.handler.feature_external_ges` warn of opening up to `external
+entity attacks <https://en.wikipedia.org/wiki/XML_external_entity_attack>`_.
+Patch by Sebastian Pipping.
+
+..
+
+.. date: 2025-10-27-23-06-01
+.. gh-issue: 140578
+.. nonce: FMBdEn
+.. section: Documentation
+
+Remove outdated sencence in the documentation for :mod:`multiprocessing`,
+that implied that :class:`concurrent.futures.ThreadPoolExecutor` did not
+exist.
+
+..
+
+.. date: 2025-12-01-20-41-26
+.. gh-issue: 142048
+.. nonce: c2YosX
+.. section: Core and Builtins
+
+Fix quadratically increasing garbage collection delays in free-threaded
+build.
+
+..
+
+.. date: 2025-11-25-13-13-34
+.. gh-issue: 116738
+.. nonce: MnZRdV
+.. section: Core and Builtins
+
+Fix thread safety issue with :mod:`re` scanner objects in free-threaded
+builds.
+
+..
+
+.. date: 2025-11-24-21-09-30
+.. gh-issue: 141930
+.. nonce: hIIzSd
+.. section: Core and Builtins
+
+When importing a module, use Python's regular file object to ensure that
+writes to ``.pyc`` files are complete or an appropriate error is raised.
+
+..
+
+.. date: 2025-11-22-10-43-26
+.. gh-issue: 120158
+.. nonce: 41_rXd
+.. section: Core and Builtins
+
+Fix inconsistent state when enabling or disabling monitoring events too many
+times.
+
+..
+
+.. date: 2025-11-17-14-40-45
+.. gh-issue: 139653
+.. nonce: LzOy1M
+.. section: Core and Builtins
+
+Only raise a ``RecursionError`` or trigger a fatal error if the stack
+pointer is both below the limit pointer *and* above the stack base. If
+outside of these bounds assume that it is OK. This prevents false positives
+when user-space threads swap stacks.
+
+..
+
+.. date: 2025-11-15-23-58-23
+.. gh-issue: 139103
+.. nonce: 9cVYJ0
+.. section: Core and Builtins
+
+Improve multithreaded scaling of dataclasses on the free-threaded build.
+
+..
+
+.. date: 2025-11-15-01-21-00
+.. gh-issue: 141579
+.. nonce: aB7cD9
+.. section: Core and Builtins
+
+Fix :func:`sys.activate_stack_trampoline` to properly support the
+``perf_jit`` backend. Patch by Pablo Galindo.
+
+..
+
+.. date: 2025-11-14-16-25-15
+.. gh-issue: 114203
+.. nonce: n3tlQO
+.. section: Core and Builtins
+
+Skip locking if object is already locked by two-mutex critical section.
+
+..
+
+.. date: 2025-11-14-00-19-45
+.. gh-issue: 141528
+.. nonce: VWdax1
+.. section: Core and Builtins
+
+Suggest using :meth:`concurrent.interpreters.Interpreter.close` instead of
+the private ``_interpreters.destroy`` function when warning about remaining
+subinterpreters. Patch by Sergey Miryanov.
+
+..
+
+.. date: 2025-11-10-23-07-06
+.. gh-issue: 141312
+.. nonce: H-58GB
+.. section: Core and Builtins
+
+Fix the assertion failure in the ``__setstate__`` method of the range
+iterator when a non-integer argument is passed. Patch by Sergey Miryanov.
+
+..
+
+.. date: 2025-11-10-00-14-20
+.. gh-issue: 116738
+.. nonce: IxliC_
+.. section: Core and Builtins
+
+Make csv module thread-safe on the :term:`free threaded <free threading>`
+build.
+
+..
+
+.. date: 2025-11-03-17-21-38
+.. gh-issue: 140939
+.. nonce: FVboAw
+.. section: Core and Builtins
+
+Fix memory leak when :class:`bytearray` or :class:`bytes` is formated with
+the ``%*b`` format with a large width that results in a :exc:`MemoryError`.
+
+..
+
+.. date: 2025-11-02-15-28-33
+.. gh-issue: 140260
+.. nonce: JNzlGz
+.. section: Core and Builtins
+
+Fix :mod:`struct` data race in endian table initialization with
+subinterpreters. Patch by Shamil Abdulaev.
+
+..
+
+.. date: 2025-11-02-12-47-38
+.. gh-issue: 140530
+.. nonce: S934bp
+.. section: Core and Builtins
+
+Fix a reference leak when ``raise exc from cause`` fails. Patch by Bénédikt
+Tran.
+
+..
+
+.. date: 2025-10-29-20-59-10
+.. gh-issue: 140373
+.. nonce: -uoaPP
+.. section: Core and Builtins
+
+Correctly emit ``PY_UNWIND`` event when generator object is closed. Patch by
+Mikhail Efimov.
+
+..
+
+.. date: 2025-10-25-17-36-46
+.. gh-issue: 140576
+.. nonce: kj0SCY
+.. section: Core and Builtins
+
+Fixed crash in :func:`tokenize.generate_tokens` in case of specific
+incorrect input. Patch by Mikhail Efimov.
+
+..
+
+.. date: 2025-10-24-20-42-33
+.. gh-issue: 140551
+.. nonce: -9swrl
+.. section: Core and Builtins
+
+Fixed crash in :class:`dict` if :meth:`dict.clear` is called at the lookup
+stage. Patch by Mikhail Efimov and Inada Naoki.
+
+..
+
+.. date: 2025-10-24-20-16-42
+.. gh-issue: 140517
+.. nonce: cqun-K
+.. section: Core and Builtins
+
+Fixed a reference leak when iterating over the result of :func:`map` with
+``strict=True`` when the input iterables have different lengths. Patch by
+Mikhail Efimov.
+
+..
+
+.. date: 2025-10-23-16-05-50
+.. gh-issue: 140471
+.. nonce: Ax_aXn
+.. section: Core and Builtins
+
+Fix potential buffer overflow in :class:`ast.AST` node initialization when
+encountering malformed :attr:`~ast.AST._fields` containing non-:class:`str`.
+
+..
+
+.. date: 2025-10-22-17-22-22
+.. gh-issue: 140431
+.. nonce: m8D_A-
+.. section: Core and Builtins
+
+Fix a crash in Python's :term:`garbage collector <garbage collection>` due
+to partially initialized :term:`coroutine` objects when coroutine origin
+tracking depth is enabled (:func:`sys.set_coroutine_origin_tracking_depth`).
+
+..
+
+.. date: 2025-10-21-09-20-03
+.. gh-issue: 140398
+.. nonce: SoABwJ
+.. section: Core and Builtins
+
+Fix memory leaks in :mod:`readline` functions
+:func:`~readline.read_init_file`, :func:`~readline.read_history_file`,
+:func:`~readline.write_history_file`, and
+:func:`~readline.append_history_file` when :c:func:`PySys_Audit` fails.
+
+..
+
+.. date: 2025-10-21-06-51-50
+.. gh-issue: 140406
+.. nonce: 0gJs8M
+.. section: Core and Builtins
+
+Fix memory leak when an object's :meth:`~object.__hash__` method returns an
+object that isn't an :class:`int`.
+
+..
+
+.. date: 2025-10-20-11-24-36
+.. gh-issue: 140358
+.. nonce: UQuKdV
+.. section: Core and Builtins
+
+Restore elapsed time and unreachable object count in GC debug output. These
+were inadvertently removed during a refactor of ``gc.c``. The debug log now
+again reports elapsed collection time and the number of unreachable objects.
+Contributed by Pål Grønås Drange.
+
+..
+
+.. date: 2025-10-18-21-29-45
+.. gh-issue: 140306
+.. nonce: xS5CcS
+.. section: Core and Builtins
+
+Fix memory leaks in cross-interpreter channel operations and shared
+namespace handling.
+
+..
+
+.. date: 2025-10-18-18-08-36
+.. gh-issue: 140301
+.. nonce: m-2HxC
+.. section: Core and Builtins
+
+Fix memory leak of ``PyConfig`` in subinterpreters.
+
+..
+
+.. date: 2025-10-17-20-23-19
+.. gh-issue: 140257
+.. nonce: 8Txmem
+.. section: Core and Builtins
+
+Fix data race between interpreter_clear() and take_gil() on eval_breaker
+during finalization with daemon threads.
+
+..
+
+.. date: 2025-10-17-18-03-12
+.. gh-issue: 139951
+.. nonce: IdwM2O
+.. section: Core and Builtins
+
+Fixes a regression in GC performance for a growing heap composed mostly of
+small tuples.
+
+* Counts number of actually tracked objects, instead of trackable objects.
+ This ensures that untracking tuples has the desired effect of reducing GC overhead.
+* Does not track most untrackable tuples during creation.
+ This prevents large numbers of small tuples causing excessive GCs.
+
+..
+
+.. date: 2025-10-16-21-47-00
+.. gh-issue: 140104
+.. nonce: A8SQIm
+.. section: Core and Builtins
+
+Fix a bug with exception handling in the JIT. Patch by Ken Jin. Bug reported
+by Daniel Diniz.
+
+..
+
+.. date: 2025-10-15-00-21-40
+.. gh-issue: 140061
+.. nonce: J0XeDV
+.. section: Core and Builtins
+
+Fixing the checking of whether an object is uniquely referenced to ensure
+free-threaded compatibility. Patch by Sergey Miryanov.
+
+..
+
+.. date: 2025-10-14-17-07-37
+.. gh-issue: 140067
+.. nonce: ID2gOm
+.. section: Core and Builtins
+
+Fix memory leak in sub-interpreter creation.
+
+..
+
+.. date: 2025-10-13-17-56-23
+.. gh-issue: 140000
+.. nonce: tLhn3e
+.. section: Core and Builtins
+
+Fix potential memory leak when a reference cycle exists between an instance
+of :class:`typing.TypeAliasType`, :class:`typing.TypeVar`,
+:class:`typing.ParamSpec`, or :class:`typing.TypeVarTuple` and its
+``__name__`` attribute. Patch by Mikhail Efimov.
+
+..
+
+.. date: 2025-10-13-13-54-19
+.. gh-issue: 139914
+.. nonce: M-y_3E
+.. section: Core and Builtins
+
+Restore support for HP PA-RISC, which has an upwards-growing stack.
+
+..
+
+.. date: 2025-10-12-11-00-06
+.. gh-issue: 139988
+.. nonce: 4wi51t
+.. section: Core and Builtins
+
+Fix a memory leak when failing to create a :class:`~typing.Union` type.
+Patch by Bénédikt Tran.
+
+..
+
+.. date: 2025-10-08-13-52-00
+.. gh-issue: 139748
+.. nonce: jq0yFJ
+.. section: Core and Builtins
+
+Fix reference leaks in error branches of functions accepting path strings or
+bytes such as :func:`compile` and :func:`os.system`. Patch by Bénédikt Tran.
+
+..
+
+.. date: 2025-10-06-13-15-26
+.. gh-issue: 139516
+.. nonce: d9Pkur
+.. section: Core and Builtins
+
+Fix lambda colon erroneously start format spec in f-string in tokenizer.
+
+..
+
+.. date: 2025-10-06-10-03-37
+.. gh-issue: 139640
+.. nonce: gY5oTb2
+.. section: Core and Builtins
+
+:func:`ast.parse` no longer emits syntax warnings for
+``return``/``break``/``continue`` in ``finally`` (see :pep:`765`) -- they
+are only emitted during compilation.
+
+..
+
+.. date: 2025-10-06-10-03-37
+.. gh-issue: 139640
+.. nonce: gY5oTb
+.. section: Core and Builtins
+
+Fix swallowing some syntax warnings in different modules if they
+accidentally have the same message and are emitted from the same line. Fix
+duplicated warnings in the ``finally`` block.
+
+..
+
+.. date: 2025-10-01-18-21-19
+.. gh-issue: 63161
+.. nonce: ef1S6N
+.. section: Core and Builtins
+
+Support non-UTF-8 shebang and comments in Python source files if non-UTF-8
+encoding is specified. Detect decoding error in comments for default (UTF-8)
+encoding. Show the line and position of decoding error for default encoding
+in a traceback. Show the line containing the coding cookie when it conflicts
+with the BOM in a traceback.
+
+..
+
+.. date: 2025-09-21-14-33-17
+.. gh-issue: 116738
+.. nonce: vNaI4h
+.. section: Core and Builtins
+
+Make :mod:`mmap` thread-safe on the :term:`free threaded <free threading>`
+build.
+
+..
+
+.. date: 2025-09-17-17-17-21
+.. gh-issue: 138558
+.. nonce: 0VbzCH
+.. section: Core and Builtins
+
+Fix handling of unusual t-string annotations in annotationlib. Patch by Dave
+Peck.
+
+..
+
+.. date: 2025-09-15-14-04-56
+.. gh-issue: 134466
+.. nonce: yR4fYW
+.. section: Core and Builtins
+
+Don't run PyREPL in a degraded environment where setting termios attributes
+is not allowed.
+
+..
+
+.. date: 2025-09-15-13-06-11
+.. gh-issue: 138944
+.. nonce: PeCgLb
+.. section: Core and Builtins
+
+Fix :exc:`SyntaxError` message when invalid syntax appears on the same line
+as a valid ``import ... as ...`` or ``from ... import ... as ...``
+statement. Patch by Brian Schubert.
+
+..
+
+.. date: 2025-09-06-13-53-33
+.. gh-issue: 105487
+.. nonce: a43YaY
+.. section: Core and Builtins
+
+Remove non-existent :meth:`~object.__copy__`, :meth:`~object.__deepcopy__`,
+and :attr:`~type.__bases__` from the :meth:`~object.__dir__` entries of
+:class:`types.GenericAlias`.
+
+..
+
+.. date: 2025-08-30-17-15-05
+.. gh-issue: 69605
+.. nonce: KjBk99
+.. section: Core and Builtins
+
+Fix some standard library submodules missing from the :term:`REPL`
+auto-completion of imports.
+
+..
+
+.. date: 2025-08-28-09-29-46
+.. gh-issue: 116738
+.. nonce: yLZJpV
+.. section: Core and Builtins
+
+Make :mod:`cProfile` thread-safe on the :term:`free threaded <free
+threading>` build.
+
+..
+
+.. date: 2025-08-21-06-31-42
+.. gh-issue: 138004
+.. nonce: FH2Hre
+.. section: Core and Builtins
+
+On Solaris/Illumos platforms, thread names are now encoded as ASCII to avoid
+errors on systems (e.g. OpenIndiana) that don't support non-ASCII names.
+
+..
+
+.. date: 2025-08-13-13-39-02
+.. gh-issue: 137433
+.. nonce: g6Atfz
+.. section: Core and Builtins
+
+Fix a potential deadlock in the :term:`free threading` build when daemon
+threads enable or disable profiling or tracing while the main thread is
+shutting down the interpreter.
+
+..
+
+.. date: 2025-08-07-09-52-19
+.. gh-issue: 137400
+.. nonce: AK1dy-
+.. section: Core and Builtins
+
+Fix a crash in the :term:`free threading` build when disabling profiling or
+tracing across all threads with :c:func:`PyEval_SetProfileAllThreads` or
+:c:func:`PyEval_SetTraceAllThreads` or their Python equivalents
+:func:`threading.settrace_all_threads` and
+:func:`threading.setprofile_all_threads`.
+
+..
+
+.. date: 2025-08-05-17-22-24
+.. gh-issue: 58124
+.. nonce: q1__53
+.. section: Core and Builtins
+
+Fix name of the Python encoding in Unicode errors of the code page codec:
+use "cp65000" and "cp65001" instead of "CP_UTF7" and "CP_UTF8" which are not
+valid Python code names. Patch by Victor Stinner.
+
+..
+
+.. date: 2025-07-09-21-27-14
+.. gh-issue: 132657
+.. nonce: kSA8R3
+.. section: Core and Builtins
+
+Improve performance of :class:`frozenset` by removing locks in the
+free-threading build.
+
+..
+
+.. date: 2025-05-11-09-40-19
+.. gh-issue: 133400
+.. nonce: zkWla8
+.. section: Core and Builtins
+
+Fixed Ctrl+D (^D) behavior in _pyrepl module to match old pre-3.13 REPL
+behavior.
+
+..
+
+.. date: 2025-01-08-12-52-47
+.. gh-issue: 128640
+.. nonce: 9nbh9z
+.. section: Core and Builtins
+
+Fix a crash when using threads inside of a subinterpreter.
+
+..
+
+.. date: 2025-11-21-10-34-00
+.. gh-issue: 137422
+.. nonce: tzZKLi
+.. section: C API
+
+Fix :term:`free threading` race condition in
+:c:func:`PyImport_AddModuleRef`. It was previously possible for two calls to
+the function return two different objects, only one of which was stored in
+:data:`sys.modules`.
+
+..
+
+.. date: 2025-11-18-04-16-09
+.. gh-issue: 140042
+.. nonce: S1C7id
+.. section: C API
+
+Removed the sqlite3_shutdown call that could cause closing connections for
+sqlite when used with multiple sub interpreters.
+
+..
+
+.. date: 2025-11-06-06-28-14
+.. gh-issue: 141042
+.. nonce: brOioJ
+.. section: C API
+
+Make qNaN in :c:func:`PyFloat_Pack2` and :c:func:`PyFloat_Pack4`, if while
+conversion to a narrower precision floating-point format --- the remaining
+after truncation payload will be zero. Patch by Sergey B Kirpichev.
+
+..
+
+.. date: 2025-10-26-16-45-06
+.. gh-issue: 140487
+.. nonce: fGOqss
+.. section: C API
+
+Fix :c:macro:`Py_RETURN_NOTIMPLEMENTED` in limited C API 3.11 and older:
+don't treat ``Py_NotImplemented`` as immortal. Patch by Victor Stinner.
+
+..
+
+.. date: 2025-10-15-15-59-59
+.. gh-issue: 140153
+.. nonce: BO7sH4
+.. section: C API
+
+Fix :c:func:`Py_REFCNT` definition on limited C API 3.11-3.13. Patch by
+Victor Stinner.
+
+..
+
+.. date: 2025-10-06-22-17-47
+.. gh-issue: 139653
+.. nonce: 6-1MOd
+.. section: C API
+
+Add :c:func:`PyUnstable_ThreadState_SetStackProtection` and
+:c:func:`PyUnstable_ThreadState_ResetStackProtection` functions to set the
+stack protection base address and stack protection size of a Python thread
+state. Patch by Victor Stinner.
+
+..
+
+.. date: 2025-11-28-19-49-01
+.. gh-issue: 141808
+.. nonce: cV5K12
+.. section: Build
+
+Do not generate the jit stencils twice in case of PGO builds on Windows.
+
+..
+
+.. date: 2025-11-20-17-01-05
+.. gh-issue: 141784
+.. nonce: LkYI2n
+.. section: Build
+
+Fix ``_remote_debugging_module.c`` compilation on 32-bit Linux. Include
+Python.h before system headers to make sure that
+``_remote_debugging_module.c`` uses the same types (ABI) than Python. Patch
+by Victor Stinner.
+
+..
+
+.. date: 2025-10-29-12-30-38
+.. gh-issue: 140768
+.. nonce: ITYrzw
+.. section: Build
+
+Warn when the WASI SDK version doesn't match what's supported.
+
+..
+
+.. date: 2025-10-25-08-07-06
+.. gh-issue: 140513
+.. nonce: 6OhLTs
+.. section: Build
+
+Generate a clear compilation error when ``_Py_TAIL_CALL_INTERP`` is enabled
+but either ``preserve_none`` or ``musttail`` is not supported.
+
+..
+
+.. date: 2025-10-16-11-30-53
+.. gh-issue: 140189
+.. nonce: YCrUyt
+.. section: Build
+
+iOS builds were added to CI.
+
+..
+
+.. date: 2025-09-24-13-59-26
+.. gh-issue: 138489
+.. nonce: 1AcuZM
+.. section: Build
+
+When cross-compiling for WASI by ``build_wasm`` or ``build_emscripten``, the
+``build-details.json`` step is now included in the build process, just like
+with native builds.
+
+This fixes the ``libinstall`` task which requires the ``build-details.json``
+file during the process.
+
+..
+
+.. date: 2025-08-10-22-28-06
+.. gh-issue: 137618
+.. nonce: FdNvIE
+.. section: Build
+
+``PYTHON_FOR_REGEN`` now requires Python 3.10 to Python 3.15. Patch by Adam
+Turner.
+
+..
+
+.. date: 2025-01-03-13-02-06
+.. gh-issue: 123681
+.. nonce: gQ67nK
+.. section: Build
+
+Check the ``strftime()`` behavior at runtime instead of at the compile time
+to support cross-compiling. Remove the internal macro
+``_Py_NORMALIZE_CENTURY``.
+++ /dev/null
-Check the ``strftime()`` behavior at runtime instead of at the compile time
-to support cross-compiling.
-Remove the internal macro ``_Py_NORMALIZE_CENTURY``.
+++ /dev/null
-``PYTHON_FOR_REGEN`` now requires Python 3.10 to Python 3.15.\r
-Patch by Adam Turner.\r
+++ /dev/null
-When cross-compiling for WASI by ``build_wasm`` or ``build_emscripten``, the
-``build-details.json`` step is now included in the build process, just like
-with native builds.
-
-This fixes the ``libinstall`` task which requires the ``build-details.json``
-file during the process.
+++ /dev/null
-iOS builds were added to CI.
+++ /dev/null
-Generate a clear compilation error when ``_Py_TAIL_CALL_INTERP`` is enabled but
-either ``preserve_none`` or ``musttail`` is not supported.
+++ /dev/null
-Warn when the WASI SDK version doesn't match what's supported.
+++ /dev/null
-Fix ``_remote_debugging_module.c`` compilation on 32-bit Linux. Include
-Python.h before system headers to make sure that
-``_remote_debugging_module.c`` uses the same types (ABI) than Python. Patch
-by Victor Stinner.
+++ /dev/null
-Do not generate the jit stencils twice in case of PGO builds on Windows.
+++ /dev/null
-Add :c:func:`PyUnstable_ThreadState_SetStackProtection` and
-:c:func:`PyUnstable_ThreadState_ResetStackProtection` functions to set the
-stack protection base address and stack protection size of a Python thread
-state. Patch by Victor Stinner.
+++ /dev/null
-Fix :c:func:`Py_REFCNT` definition on limited C API 3.11-3.13. Patch by
-Victor Stinner.
+++ /dev/null
-Fix :c:macro:`Py_RETURN_NOTIMPLEMENTED` in limited C API 3.11 and older:
-don't treat ``Py_NotImplemented`` as immortal. Patch by Victor Stinner.
+++ /dev/null
-Make qNaN in :c:func:`PyFloat_Pack2` and :c:func:`PyFloat_Pack4`, if while
-conversion to a narrower precision floating-point format --- the remaining
-after truncation payload will be zero. Patch by Sergey B Kirpichev.
+++ /dev/null
-Removed the sqlite3_shutdown call that could cause closing connections for sqlite when used with multiple sub interpreters.
+++ /dev/null
-Fix :term:`free threading` race condition in
-:c:func:`PyImport_AddModuleRef`. It was previously possible for two calls to
-the function return two different objects, only one of which was stored in
-:data:`sys.modules`.
+++ /dev/null
-Fix a crash when using threads inside of a subinterpreter.
+++ /dev/null
-Fixed Ctrl+D (^D) behavior in _pyrepl module to match old pre-3.13 REPL behavior.
+++ /dev/null
-Improve performance of :class:`frozenset` by removing locks in the free-threading build.
+++ /dev/null
-Fix name of the Python encoding in Unicode errors of the code page codec:
-use "cp65000" and "cp65001" instead of "CP_UTF7" and "CP_UTF8" which are not
-valid Python code names. Patch by Victor Stinner.
+++ /dev/null
-Fix a crash in the :term:`free threading` build when disabling profiling or
-tracing across all threads with :c:func:`PyEval_SetProfileAllThreads` or
-:c:func:`PyEval_SetTraceAllThreads` or their Python equivalents
-:func:`threading.settrace_all_threads` and
-:func:`threading.setprofile_all_threads`.
+++ /dev/null
-Fix a potential deadlock in the :term:`free threading` build when daemon
-threads enable or disable profiling or tracing while the main thread is
-shutting down the interpreter.
+++ /dev/null
-On Solaris/Illumos platforms, thread names are now encoded as ASCII to avoid errors on systems (e.g. OpenIndiana) that don't support non-ASCII names.
+++ /dev/null
-Make :mod:`cProfile` thread-safe on the :term:`free threaded <free
-threading>` build.
+++ /dev/null
-Fix some standard library submodules missing from the :term:`REPL` auto-completion of imports.
+++ /dev/null
-Remove non-existent :meth:`~object.__copy__`, :meth:`~object.__deepcopy__`, and :attr:`~type.__bases__` from the :meth:`~object.__dir__` entries of :class:`types.GenericAlias`.
+++ /dev/null
-Fix :exc:`SyntaxError` message when invalid syntax appears on the same line
-as a valid ``import ... as ...`` or ``from ... import ... as ...``
-statement. Patch by Brian Schubert.
+++ /dev/null
-Don't run PyREPL in a degraded environment where setting termios attributes
-is not allowed.
+++ /dev/null
-Fix handling of unusual t-string annotations in annotationlib. Patch by Dave Peck.
+++ /dev/null
-Make :mod:`mmap` thread-safe on the :term:`free threaded <free threading>`
-build.
+++ /dev/null
-Support non-UTF-8 shebang and comments in Python source files if non-UTF-8
-encoding is specified. Detect decoding error in comments for default (UTF-8)
-encoding. Show the line and position of decoding error for default encoding
-in a traceback. Show the line containing the coding cookie when it conflicts
-with the BOM in a traceback.
+++ /dev/null
-Fix swallowing some syntax warnings in different modules if they
-accidentally have the same message and are emitted from the same line.
-Fix duplicated warnings in the ``finally`` block.
+++ /dev/null
-:func:`ast.parse` no longer emits syntax warnings for
-``return``/``break``/``continue`` in ``finally`` (see :pep:`765`) -- they are
-only emitted during compilation.
+++ /dev/null
-Fix lambda colon erroneously start format spec in f-string in tokenizer.
+++ /dev/null
-Fix reference leaks in error branches of functions accepting path strings or
-bytes such as :func:`compile` and :func:`os.system`. Patch by Bénédikt Tran.
+++ /dev/null
-Fix a memory leak when failing to create a :class:`~typing.Union` type.
-Patch by Bénédikt Tran.
+++ /dev/null
-Restore support for HP PA-RISC, which has an upwards-growing stack.
+++ /dev/null
-Fix potential memory leak when a reference cycle exists between an instance
-of :class:`typing.TypeAliasType`, :class:`typing.TypeVar`,
-:class:`typing.ParamSpec`, or :class:`typing.TypeVarTuple` and its
-``__name__`` attribute. Patch by Mikhail Efimov.
+++ /dev/null
-Fix memory leak in sub-interpreter creation.
+++ /dev/null
-Fixing the checking of whether an object is uniquely referenced to ensure
-free-threaded compatibility. Patch by Sergey Miryanov.
+++ /dev/null
-Fix a bug with exception handling in the JIT. Patch by Ken Jin. Bug reported
-by Daniel Diniz.
+++ /dev/null
-Fixes a regression in GC performance for a growing heap composed mostly of
-small tuples.
-
-* Counts number of actually tracked objects, instead of trackable objects.
- This ensures that untracking tuples has the desired effect of reducing GC overhead.
-* Does not track most untrackable tuples during creation.
- This prevents large numbers of small tuples causing excessive GCs.
+++ /dev/null
-Fix data race between interpreter_clear() and take_gil() on eval_breaker
-during finalization with daemon threads.
+++ /dev/null
-Fix memory leak of ``PyConfig`` in subinterpreters.
+++ /dev/null
-Fix memory leaks in cross-interpreter channel operations and shared
-namespace handling.
+++ /dev/null
-Restore elapsed time and unreachable object count in GC debug output. These
-were inadvertently removed during a refactor of ``gc.c``. The debug log now
-again reports elapsed collection time and the number of unreachable objects.
-Contributed by Pål Grønås Drange.
+++ /dev/null
-Fix memory leak when an object's :meth:`~object.__hash__` method returns an
-object that isn't an :class:`int`.
+++ /dev/null
-Fix memory leaks in :mod:`readline` functions
-:func:`~readline.read_init_file`, :func:`~readline.read_history_file`,
-:func:`~readline.write_history_file`, and
-:func:`~readline.append_history_file` when :c:func:`PySys_Audit` fails.
+++ /dev/null
-Fix a crash in Python's :term:`garbage collector <garbage collection>` due to
-partially initialized :term:`coroutine` objects when coroutine origin tracking
-depth is enabled (:func:`sys.set_coroutine_origin_tracking_depth`).
+++ /dev/null
-Fix potential buffer overflow in :class:`ast.AST` node initialization when
-encountering malformed :attr:`~ast.AST._fields` containing non-:class:`str`.
+++ /dev/null
-Fixed a reference leak when iterating over the result of :func:`map`
-with ``strict=True`` when the input iterables have different lengths.
-Patch by Mikhail Efimov.
+++ /dev/null
-Fixed crash in :class:`dict` if :meth:`dict.clear` is called at the lookup
-stage. Patch by Mikhail Efimov and Inada Naoki.
+++ /dev/null
-Fixed crash in :func:`tokenize.generate_tokens` in case of
-specific incorrect input. Patch by Mikhail Efimov.
+++ /dev/null
-Correctly emit ``PY_UNWIND`` event when generator object is closed. Patch by
-Mikhail Efimov.
+++ /dev/null
-Fix a reference leak when ``raise exc from cause`` fails. Patch by Bénédikt
-Tran.
+++ /dev/null
-Fix :mod:`struct` data race in endian table initialization with
-subinterpreters. Patch by Shamil Abdulaev.
+++ /dev/null
-Fix memory leak when :class:`bytearray` or :class:`bytes` is formated with the
-``%*b`` format with a large width that results in a :exc:`MemoryError`.
+++ /dev/null
-Make csv module thread-safe on the :term:`free threaded <free threading>`
-build.
+++ /dev/null
-Fix the assertion failure in the ``__setstate__`` method of the range iterator
-when a non-integer argument is passed. Patch by Sergey Miryanov.
+++ /dev/null
-Suggest using :meth:`concurrent.interpreters.Interpreter.close` instead of the
-private ``_interpreters.destroy`` function when warning about remaining subinterpreters.
-Patch by Sergey Miryanov.
+++ /dev/null
-Skip locking if object is already locked by two-mutex critical section.
+++ /dev/null
-Fix :func:`sys.activate_stack_trampoline` to properly support the
-``perf_jit`` backend. Patch by Pablo Galindo.
+++ /dev/null
-Improve multithreaded scaling of dataclasses on the free-threaded build.
+++ /dev/null
-Only raise a ``RecursionError`` or trigger a fatal error if the stack
-pointer is both below the limit pointer *and* above the stack base. If
-outside of these bounds assume that it is OK. This prevents false positives
-when user-space threads swap stacks.
+++ /dev/null
-Fix inconsistent state when enabling or disabling monitoring events too many
-times.
+++ /dev/null
-When importing a module, use Python's regular file object to ensure that
-writes to ``.pyc`` files are complete or an appropriate error is raised.
+++ /dev/null
-Fix thread safety issue with :mod:`re` scanner objects in free-threaded
-builds.
+++ /dev/null
-Fix quadratically increasing garbage collection delays in free-threaded
-build.
+++ /dev/null
-Remove outdated sencence in the documentation for :mod:`multiprocessing`,
-that implied that :class:`concurrent.futures.ThreadPoolExecutor` did not
-exist.
+++ /dev/null
-:mod:`xml.sax.handler`: Make Documentation of
-:data:`xml.sax.handler.feature_external_ges` warn of opening up to `external
-entity attacks <https://en.wikipedia.org/wiki/XML_external_entity_attack>`_.
-Patch by Sebastian Pipping.
+++ /dev/null
-Colorize t-string prefixes for template strings in IDLE, as done for f-string prefixes.
+++ /dev/null
-Deduplicate version number in IDLE shell title bar after saving to a file.
+++ /dev/null
-Allow negative priority values from :func:`os.sched_get_priority_min` and
-:func:`os.sched_get_priority_max` functions.
+++ /dev/null
-Fix failure when importing a module from the root directory on unix-like
-platforms with sys.pycache_prefix set.
+++ /dev/null
-UTF8 support for the IMAP APPEND command has been made RFC compliant.
+++ /dev/null
-Clarify constraints for "logical" arguments in methods of
-:class:`decimal.Context`.
+++ /dev/null
-Fix potential hang in ``multiprocessing.popen_spawn_posix`` that can happen
-when the child proc dies early by closing the child fds right away.
+++ /dev/null
-Make ``ResourceTracker.send`` from :mod:`multiprocessing` re-entrant safe
+++ /dev/null
-Make :class:`io.BytesIO` safe in :term:`free-threaded <free threading>` build.
+++ /dev/null
-Fix libc thread safety issues with :mod:`dbm` by performing stateful
-operations in critical sections.
+++ /dev/null
-Fix unpickling of :mod:`pathlib` objects that were pickled in Python 3.13.
+++ /dev/null
-Fix thread safety of :class:`collections.OrderedDict`. Patch by Kumar Aditya.
+++ /dev/null
-Fix a crash when calling methods of :class:`ssl.SSLContext` or
-:class:`ssl.SSLSocket` across multiple threads.
+++ /dev/null
-Fixed :func:`subprocess.Popen.communicate` ``input=`` handling of :class:`memoryview`
-instances that were non-byte shaped on POSIX platforms. Those are now properly
-cast to a byte shaped view instead of truncating the input. Windows platforms
-did not have this bug.
+++ /dev/null
-:mod:`email`: Fix exception in ``set_content()`` when encoding text
-and max_line_length is set to ``0`` or ``None`` (unlimited).
+++ /dev/null
-Fix :mod:`multiprocessing` ``forkserver`` bug which prevented ``__main__``
-from being preloaded.
+++ /dev/null
-Fix :meth:`asyncio.DatagramTransport.sendto` to account for datagram header size when
-data cannot be sent.
+++ /dev/null
-Fix opening a :mod:`dbm.sqlite3` database for reading from read-only file
-or directory.
+++ /dev/null
-Fixed the bug in :mod:`pdb` and :mod:`bdb` where ``next`` and ``step`` can't go over the line if a loop exists in the line.
+++ /dev/null
-Fix mimetypes CLI to handle multiple file parameters.
+++ /dev/null
-Fix :meth:`asyncio.WriteTransport.writelines` to be robust to connection
-failure, by using the same behavior as :meth:`~asyncio.WriteTransport.write`.
+++ /dev/null
-Allows creating a :class:`ctypes.CDLL` without name when passing a handle as
-an argument.
+++ /dev/null
-:func:`hmac.digest` now properly handles large keys and messages
-by falling back to the pure Python implementation when necessary.
-Patch by Bénédikt Tran.
+++ /dev/null
-Fix retrieval of :attr:`doctest.DocTest.lineno` for objects decorated with
-:func:`functools.cache` or :class:`functools.cached_property`.
+++ /dev/null
-Fix a potential async-signal-safety issue in :mod:`faulthandler` when
-printing C stack traces.
+++ /dev/null
-:class:`tarfile.TarFile` now accepts a :term:`path-like <path-like object>` when working on a tar archive.
-(Contributed by Alexander Enrique Urieles Nieto in :gh:`81325`.)
+++ /dev/null
-:mod:`heapq`: Update :data:`!heapq.__all__` with ``*_max`` functions.
+++ /dev/null
-Fix debug assertion failure in :func:`locale.setlocale` on Windows.
+++ /dev/null
-Fix :obj:`threading.Thread.is_alive` to remain ``True`` until the underlying OS
-thread is fully cleaned up. This avoids false negatives in edge cases
-involving thread monitoring or premature :obj:`threading.Thread.is_alive` calls.
+++ /dev/null
-:func:`tarfile.TarFile.extractall` and :func:`tarfile.TarFile.extract` now
-overwrite symlinks when extracting hardlinks.
-(Contributed by Alexander Enrique Urieles Nieto in :gh:`75989`.)
+++ /dev/null
-Return large limit values as positive integers instead of negative integers
-in :func:`resource.getrlimit`. Accept large values and reject negative
-values (except :data:`~resource.RLIM_INFINITY`) for limits in
-:func:`resource.setrlimit`.
+++ /dev/null
-Fix :func:`!inspect.getblock`, :func:`inspect.getsourcelines` and
-:func:`inspect.getsource` for generator expressions.
+++ /dev/null
-Handle :data:`~errno.ECANCELED` in the same way as :data:`~errno.EINTR` in
-:func:`signal.sigwaitinfo` on NetBSD.
+++ /dev/null
-Fix import of the :mod:`zoneinfo` module if the C implementation of the
-:mod:`datetime` module is not available.
+++ /dev/null
-:func:`inspect.signature` now correctly handles classes that use a descriptor
-on a wrapped :meth:`!__init__` or :meth:`!__new__` method.
-Contributed by Yongyu Yan.
+++ /dev/null
-In :mod:`annotationlib`, improve evaluation of forward references to
-nonlocal variables that are not yet defined when the annotations are
-initially evaluated.
+++ /dev/null
-Fix an issue where defining a class with an :func:`@warnings.deprecated
-<warnings.deprecated>`-decorated base class may not invoke the correct
-:meth:`~object.__init_subclass__` method in cases involving multiple
-inheritance. Patch by Brian Schubert.
+++ /dev/null
-Forbid expansion of shared anonymous :mod:`memory maps <mmap>` on Linux,
-which caused a bus error.
+++ /dev/null
-The REPL now highlights :keyword:`type` as a soft keyword
-in :ref:`type statements <type>`.
+++ /dev/null
-Fix :func:`locale.strxfrm` on Solaris (and possibly other platforms).
+++ /dev/null
-Fix segmentation faults in the :mod:`ctypes` module due to invalid :attr:`~ctypes._CFuncPtr.argtypes`. Patch by Dung Nguyen.
+++ /dev/null
-:meth:`zoneinfo.reset_tzpath` will now convert any :class:`os.PathLike` objects
-it receives into strings before adding them to ``TZPATH``. It will raise
-``TypeError`` if anything other than a string is found after this conversion.
-If given an :class:`os.PathLike` object that represents a relative path, it
-will now raise ``ValueError`` instead of ``TypeError``, and present a more
-informative error message.
+++ /dev/null
-Fix partial evaluation of :class:`annotationlib.ForwardRef` objects which rely
-on names defined as globals.
+++ /dev/null
-Fix a failure in multiprocessing resource_tracker when SharedMemory names contain colons.\r
-Patch by Rani Pinchuk.
+++ /dev/null
-Fix parsing errors in the :mod:`urllib.robotparser` module.
-Don't fail trying to parse weird paths.
-Don't fail trying to decode non-UTF-8 ``robots.txt`` files.
+++ /dev/null
-Fix normalization of the ``robots.txt`` rules and URLs in the
-:mod:`urllib.robotparser` module. No longer ignore trailing ``?``.
-Distinguish raw special characters ``?``, ``=`` and ``&`` from the
-percent-encoded ones.
+++ /dev/null
-Fix the partial evaluation of annotations that use ``typing.Annotated[T, x]`` where ``T`` is a forward reference.
+++ /dev/null
-Support device numbers larger than ``2**63-1`` for the
-:attr:`~os.stat_result.st_rdev` field of the :class:`os.stat_result`
-structure.
+++ /dev/null
-Use of ``python -m`` with :mod:`base64` has been fixed to detect input from a
-terminal so that it properly notices EOF.
+++ /dev/null
-Prevent :func:`annotationlib.call_annotate_function` from calling ``__annotate__`` functions that don't support ``VALUE_WITH_FAKE_GLOBALS`` in a fake globals namespace with empty globals.\r
-\r
-Make ``FORWARDREF`` and ``STRING`` annotations fall back to using ``VALUE`` annotations in the case that neither their own format, nor ``VALUE_WITH_FAKE_GLOBALS`` are supported.\r
+++ /dev/null
-Fix generic type parameterization raising a :exc:`TypeError` when omitting a :class:`ParamSpec` that has a default which is not a list of types.
+++ /dev/null
-Fix possible crash in :func:`locale.strxfrm` due to a platform bug on
-macOS.
+++ /dev/null
-Fix ``SyntaxError`` when ``inspect.get_annotations(f, eval_str=True)`` is
-called on a function annotated with a :pep:`646` ``star_expression``
+++ /dev/null
-Dedent :data:`credits` text.
+++ /dev/null
-:class:`!multiprocessing.BaseProcess` defaults ``kwargs`` to ``None`` instead of a shared dictionary.
+++ /dev/null
-Fix race condition in :class:`pathlib.Path` on the internal ``_raw_paths``
-field.
+++ /dev/null
-Fix trailing space before a wrapped long word if the line length is exactly
-*width* in :mod:`textwrap`.
+++ /dev/null
-Fix a bug in the :mod:`pydoc` module that was hiding functions in a Python
-module if they were implemented in an extension module and the module did
-not have ``__all__``.
+++ /dev/null
-Fix unraisable exception during finalization when using
-:mod:`concurrent.interpreters` in the REPL.
+++ /dev/null
-Fix crash when calling :func:`concurrent.interpreters.create` when the
-process is out of memory.
+++ /dev/null
-Lazy import :mod:`rlcompleter` in :mod:`pdb` to avoid deadlock in subprocess.
+++ /dev/null
-Fix use-after-free when reporting unknown event in :func:`xml.etree.ElementTree.iterparse`. Patch by Ken Jin.
+++ /dev/null
-Add :meth:`~xml.parsers.expat.xmlparser.SetAllocTrackerActivationThreshold`
-and :meth:`~xml.parsers.expat.xmlparser.SetAllocTrackerMaximumAmplification`
-to :ref:`xmlparser <xmlparser-objects>` objects to prevent use of
-disproportional amounts of dynamic memory from within an Expat parser.
-Patch by Bénédikt Tran.
+++ /dev/null
-fix: paste zero-width in default repl width is wrong.
+++ /dev/null
-Do a real lazy-import on :mod:`rlcompleter` in :mod:`pdb` and restore the existing completer after importing :mod:`rlcompleter`.
+++ /dev/null
-Fix ``'shift_jisx0213'``, ``'shift_jis_2004'``, ``'euc_jisx0213'`` and
-``'euc_jis_2004'`` codecs truncating null chars
-as they were treated as part of multi-character sequences.
+++ /dev/null
-Fix an issue when, on non-Windows platforms, it was not possible to
-gracefully exit a ``python -m asyncio`` process suspended by Ctrl+Z
-and later resumed by :manpage:`fg` other than with :manpage:`kill`.
+++ /dev/null
-Fix :func:`tokenize.detect_encoding`. Support non-UTF-8 shebang and comments
-if non-UTF-8 encoding is specified. Detect decoding error for non-UTF-8
-encoding. Detect null bytes in source code.
+++ /dev/null
-:mod:`http.server`: fix default handling of HTTP/0.9 requests in
-:class:`~http.server.BaseHTTPRequestHandler`. Previously,
-:meth:`!BaseHTTPRequestHandler.parse_request` incorrectly
-waited for headers in the request although those are not
-supported in HTTP/0.9. Patch by Bénédikt Tran.
+++ /dev/null
-Fix excessive indentation in the default :mod:`argparse`
-:class:`!HelpFormatter`. Patch by Alexander Edland.
+++ /dev/null
-Prevent premature colorization of subparser ``prog`` in :meth:`argparse.ArgumentParser.add_subparsers` to respect color environment variable changes after parser creation.
+++ /dev/null
-Fix :func:`inspect.getsourcelines` for the case when a decorator is followed
-by a comment or an empty line.
+++ /dev/null
-Fix to not print KeyboardInterrupt twice in default asyncio REPL.
+++ /dev/null
-Fix incorrect sharing of current task with the child process while forking in :mod:`asyncio`. Patch by Kumar Aditya.
+++ /dev/null
-Add suggestion to error message for :class:`typing.Generic` subclasses when
-``cls.__parameters__`` is missing due to a parent class failing to call
-:meth:`super().__init_subclass__() <object.__init_subclass__>` in its ``__init_subclass__``.
+++ /dev/null
-Fixed a memory leak in :mod:`hmac` when it was using the hacl-star backend.
-Discovered by ``@ashm-dev`` using AddressSanitizer.
+++ /dev/null
-Fix import of :mod:`ctypes` on Android and Cygwin when ABI flags are present.
+++ /dev/null
-Fix memory leak in the :meth:`!clear` method of the :mod:`dbm.gnu` database.
+++ /dev/null
-Fix regression in Python 3.14.0 where using the ``|`` operator on a
-:class:`typing.Union` object combined with an object that is not a type
-would raise an error.
+++ /dev/null
-:mod:`dataclasses` Fix annotations for generated ``__init__`` methods by replacing the annotations that were in-line in the generated source code with ``__annotate__`` functions attached to the methods.
+++ /dev/null
-Fix memory leak in :class:`array.array` when creating arrays from an empty
-:class:`str` and the ``u`` type code.
+++ /dev/null
-:func:`ast.unparse` now generates full source code when handling
-:class:`ast.Interpolation` nodes that do not have a specified source.
+++ /dev/null
-Fix :class:`logging.LoggerAdapter` with ``merge_extra=True`` and without the
-*extra* argument.
+++ /dev/null
-Inside :meth:`io.RawIOBase.read`, validate that the count of bytes returned by
-:meth:`io.RawIOBase.readinto` is valid (inside the provided buffer).
+++ /dev/null
-:mod:`xml.parsers.expat`: Fix a memory leak that could affect users with
-:meth:`~xml.parsers.expat.xmlparser.ElementDeclHandler` set to a custom
-element declaration handler. Patch by Sebastian Pipping.
+++ /dev/null
-Ignore :exc:`AttributeError` when setting a module's ``__file__`` attribute
-when loading an extension module packaged as Apple Framework.
+++ /dev/null
-Fix a reference counting bug in :meth:`!os.sched_param.__reduce__`.
+++ /dev/null
-Display thread name in :mod:`faulthandler` on Windows. Patch by Victor
-Stinner.
+++ /dev/null
-Fix arguments checking for the :meth:`!functools.partial.__setstate__` that
-may lead to internal state corruption and crash. Patch by Sergey Miryanov.
+++ /dev/null
-Avoid making unnecessary filesystem calls for frozen modules in :mod:`linecache` when the global module cache is not present.
+++ /dev/null
-Add :func:`os.reload_environ` to ``os.__all__``.
+++ /dev/null
-Fix hang when cancelling process created by :func:`asyncio.create_subprocess_exec` or :func:`asyncio.create_subprocess_shell`. Patch by Kumar Aditya.
+++ /dev/null
-In :mod:`urllib.request`, when opening a FTP URL fails because a data
-connection cannot be made, the control connection's socket is now closed to
-avoid a :exc:`ResourceWarning`.
+++ /dev/null
-Bump the version of pip bundled in ensurepip to version 25.3
+++ /dev/null
-:mod:`multiprocessing`: fix off-by-one error when checking the length
-of a temporary socket file path. Patch by Bénédikt Tran.
+++ /dev/null
-Fix handling of unclosed character references (named and numerical)
-followed by the end of file in :class:`html.parser.HTMLParser` with
-``convert_charrefs=False``.
+++ /dev/null
-Correctly set :attr:`~OSError.errno` when :func:`socket.if_nametoindex` or
-:func:`socket.if_indextoname` raise an :exc:`OSError`. Patch by Bénédikt
-Tran.
+++ /dev/null
-:mod:`faulthandler` now detects if a frame or a code object is invalid or
-freed. Patch by Victor Stinner.
+++ /dev/null
-Refactor the :mod:`pdb` parsing issue so positional arguments can pass through intuitively.
+++ /dev/null
-The undocumented :class:`!re.Scanner` class now forbids regular expressions containing capturing groups in its lexicon patterns. Patterns using capturing groups could
-previously lead to crashes with segmentation fault. Use non-capturing groups (?:...) instead.
+++ /dev/null
-:mod:`collections`: Ensure that the methods ``UserString.rindex()`` and
-``UserString.index()`` accept :class:`collections.UserString` instances as the
-sub argument.
+++ /dev/null
-Fix :meth:`annotationlib.ForwardRef.evaluate` returning
-:class:`~annotationlib.ForwardRef` objects which don't update with new
-globals.
+++ /dev/null
-Fix a thread safety issue with :func:`base64.b85decode`. Contributed by Benel Tayar.
+++ /dev/null
-Fix assertion failure in :func:`!io.BytesIO.readinto` and undefined behavior
-arising when read position is above capcity in :class:`io.BytesIO`.
+++ /dev/null
-Fix assertion failure in :meth:`io.TextIOWrapper.tell` when reading files with standalone carriage return (``\r``) line endings.
+++ /dev/null
-The :mod:`os.fork` and related forking APIs will no longer warn in the
-common case where Linux or macOS platform APIs return the number of threads
-in a process and find the answer to be 1 even when a
-:func:`os.register_at_fork` ``after_in_parent=`` callback (re)starts a
-thread.
+++ /dev/null
-Updated Tcl threading configuration in :mod:`_tkinter` to assume that
-threads are always available in Tcl 9 and later.
+++ /dev/null
-The :func:`statistics.stdev` and :func:`statistics.pstdev` functions now raise a
-:exc:`ValueError` when the input contains an infinity or a NaN.
+++ /dev/null
-:mod:`ipaddress`: ensure that the methods
-:meth:`IPv4Network.hosts() <ipaddress.IPv4Network.hosts>` and
-:meth:`IPv6Network.hosts() <ipaddress.IPv6Network.hosts>` always return an
-iterator.
+++ /dev/null
-Fix musl version detection on Void Linux.
+++ /dev/null
-Fix bad file descriptor errors from ``_posixsubprocess`` on AIX.
+++ /dev/null
-Support :term:`file-like object` raising :exc:`OSError` from :meth:`~io.IOBase.fileno` in color
-detection (``_colorize.can_colorize()``). This can occur when ``sys.stdout`` is redirected.
+++ /dev/null
-Fix :mod:`pdb` breakpoint resolution for class methods when the module defining the class is not imported.\r
+++ /dev/null
-When :meth:`subprocess.Popen.communicate` was called with *input* and a
-*timeout* and is called for a second time after a
-:exc:`~subprocess.TimeoutExpired` exception before the process has died, it
-should no longer hang.
+++ /dev/null
-Fix :func:`subprocess.Popen.communicate` timeout handling on Windows
-when writing large input. Previously, the timeout was ignored during
-stdin writing, causing the method to block indefinitely if the child
-process did not consume input quickly. The stdin write is now performed
-in a background thread, allowing the timeout to be properly enforced.
+++ /dev/null
-When the stdin being used by a :class:`subprocess.Popen` instance is closed,
-this is now ignored in :meth:`subprocess.Popen.communicate` instead of
-leaving the class in an inconsistent state.
+++ /dev/null
-Fix a potential memory denial of service in the :mod:`plistlib` module.
-When reading a Plist file received from untrusted source, it could cause
-an arbitrary amount of memory to be allocated.
-This could have led to symptoms including a :exc:`MemoryError`, swapping, out
-of memory (OOM) killed processes or containers, or even system crashes.
+++ /dev/null
-Fix a potential memory denial of service in the :mod:`http.client` module.
-When connecting to a malicious server, it could cause
-an arbitrary amount of memory to be allocated.
-This could have led to symptoms including a :exc:`MemoryError`, swapping, out
-of memory (OOM) killed processes or containers, or even system crashes.
+++ /dev/null
-Fix quadratic complexity in :func:`os.path.expandvars`.
+++ /dev/null
-:mod:`email.message`: ensure linear complexity for legacy HTTP parameters
-parsing. Patch by Bénédikt Tran.
+++ /dev/null
-Add support of the "plaintext" element, RAWTEXT elements "xmp", "iframe",
-"noembed" and "noframes", and optionally RAWTEXT element "noscript" in
-:class:`html.parser.HTMLParser`.
+++ /dev/null
-:mod:`sqlite3`: correctly handle maximum number of rows to fetch in
-:meth:`Cursor.fetchmany <sqlite3.Cursor.fetchmany>` and reject negative
-values for :attr:`Cursor.arraysize <sqlite3.Cursor.arraysize>`. Patch by
-Bénédikt Tran.
+++ /dev/null
-Check consistency of the zip64 end of central directory record. Support
-records with "zip64 extensible data" if there are no bytes prepended to the
-ZIP file.
+++ /dev/null
-Use exitcode ``1`` instead of ``5`` if :func:`unittest.TestCase.setUpClass` raises an exception
+++ /dev/null
-Fix regrtest ``--fast-ci --verbose``: don't ignore the ``--verbose`` option
-anymore. Patch by Victor Stinner.
+++ /dev/null
-Update ``python -m test`` to set ``FORCE_COLOR=1`` when being run with color
-enabled so that :mod:`unittest` which is run by it with redirected output will
-output in color.
+++ /dev/null
-Preserve and restore the state of ``stty echo`` as part of the test environment.
+++ /dev/null
-Have Tools/wasm/wasi detect a WASI SDK install in /opt when it was directly
-extracted from a release tarball.
+++ /dev/null
-Add a ``--logdir`` option to ``Tools/wasm/wasi`` for specifying where to
-write log files.
+++ /dev/null
-Have ``Tools/wasm/wasi`` put the build Python into a directory named after
-the build triple instead of "build".
+++ /dev/null
-The iOS testbed app will now expose the ``GITHUB_ACTIONS`` environment
-variable to iOS apps being tested.
+++ /dev/null
-The iOS testbed now correctly handles test arguments that contain spaces.
+++ /dev/null
-Each slice of an iOS XCframework now contains a ``lib`` folder that contains
-a symlink to the libpython dylib. This allows binary modules to be compiled
-for iOS using dynamic libreary linking, rather than Framework linking.
+++ /dev/null
-Installing with ``py install 3[.x]-dev`` will now select final versions as
-well as prereleases.
-This is Python version 3.14.0
+This is Python version 3.14.1
=============================
.. image:: https://github.com/python/cpython/actions/workflows/build.yml/badge.svg?branch=main&event=push