.. date: 2025-02-25-10-25-27
.. gh-issue: 128540
.. nonce: QDz3OL
.. release date: 2025-03-14
.. section: macOS

Ensure web browser is launched by :func:`webbrowser.open` on macOS, even for
``file://`` URLs.

..

.. date: 2025-03-09-19-57-35
.. gh-issue: 131020
.. nonce: _c87wf
.. section: Windows

:source:`pylauncher <PC/launcher2.c>` correctly detects a BOM when searching
for the shebang. Fix by Chris Eibl.

..

.. date: 2025-02-28-23-24-03
.. gh-issue: 130453
.. nonce: EK0Vk_
.. section: Tools/Demos

Make it possible to override default keywords in :program:`pygettext`.

..

.. date: 2025-02-24-21-36-23
.. gh-issue: 85012
.. nonce: 9K1U0E
.. section: Tools/Demos

Correctly reset ``msgctxt`` when compiling messages in :program:`msgfmt`.

..

.. date: 2025-02-22-18-08-35
.. gh-issue: 130453
.. nonce: njRXG8
.. section: Tools/Demos

Extend support for specifying custom keywords in :program:`pygettext`.

..

.. date: 2025-02-16-19-00-00
.. gh-issue: 130195
.. nonce: 19274
.. section: Tools/Demos

Add warning messages when ``pygettext`` unimplemented ``-a/--extract-all``
option is called.

..

.. date: 2025-02-12-23-24-37
.. gh-issue: 130057
.. nonce: TKUKI6
.. section: Tools/Demos

Add support for translator comments in :program:`pygettext.py`.

..

.. date: 2025-02-12-14-58-54
.. gh-issue: 130025
.. nonce: _-mp5K
.. section: Tools/Demos

The iOS testbed now correctly handles symlinks used as Python framework
references.

..

.. date: 2025-02-09-20-29-06
.. gh-issue: 129911
.. nonce: uMFtf1
.. section: Tools/Demos

Fix the keyword entry in the help output of :program:`pygettext`.

..

.. date: 2025-02-26-15-10-16
.. gh-issue: 129200
.. nonce: XH4TeC
.. section: Tests

Multiple iOS testbed runners can now be started at the same time without
introducing an ambiguity over simulator ownership.

..

.. date: 2025-02-20-13-50-07
.. gh-issue: 130292
.. nonce: RvK2Ou
.. section: Tests

The iOS testbed will now run successfully on a machine that has not
previously run Xcode tests (such as CI configurations).

..

.. date: 2025-02-20-13-39-12
.. gh-issue: 130293
.. nonce: 5igSsu
.. section: Tests

The tests of terminal colorization are no longer sensitive to the value of
the ``TERM`` variable in the testing environment.

..

.. date: 2025-02-10-14-34-29
.. gh-issue: 129401
.. nonce: Cq6Ruy
.. section: Tests

Fix a flaky test in ``test_repr_rlock`` that checks the representation of
:class:`multiprocessing.RLock`.

..

.. date: 2025-01-26-20-17-58
.. gh-issue: 126332
.. nonce: c0wUS-
.. section: Tests

Add unit tests for pyrepl.

..

.. date: 2024-11-28-20-29-21
.. gh-issue: 127371
.. nonce: PeEhUd
.. section: Security

Avoid unbounded buffering for
:meth:`!tempfile.SpooledTemporaryFile.writelines`. Previously, disk
spillover was only checked after the lines iterator had been exhausted. This
is now done after each line is written.

..

.. date: 2025-03-14-09-28-13
.. gh-issue: 131204
.. nonce: wogNEX
.. section: Library

Use monospace font from System Font Stack for cross-platform support in
:class:`difflib.HtmlDiff`.

..

.. date: 2025-03-13-19-53-57
.. gh-issue: 131196
.. nonce: 3sBFv2
.. section: Library

Improve performance of :attr:`uuid.UUID.hex` and :meth:`uuid.UUID.__str__
<object.__str__>`.

..

.. date: 2025-03-13-07-06-22
.. gh-issue: 130940
.. nonce: i5cUI5
.. section: Library

The behavior of ``PyConfig.use_system_logger`` was modified to be enabled by
default on iOS. It remains disabled by default on macOS.

..

.. date: 2025-03-11-23-58-45
.. gh-issue: 131123
.. nonce: WB6tPh
.. section: Library

Supported completions for attributes of convenience variables in :mod:`pdb`.

..

.. date: 2025-03-11-20-35-41
.. gh-issue: 93096
.. nonce: Jdt_8a
.. section: Library

Removed undocumented CLI ``python -m difflib``. Use ``python -m doctest
Lib/difflib.py -v`` instead. Patch by Semyon Moroz.

..

.. date: 2025-03-11-08-07-07
.. gh-issue: 93096
.. nonce: DyPXUX
.. section: Library

Removed undocumented ``-t`` and ``-v`` arguments of ``python -m pickle``.
Use ``python -m doctest Lib/pickle.py -v`` instead. Patch by Semyon Moroz.

..

.. date: 2025-03-10-20-23-00
.. gh-issue: 81267
.. nonce: a39381
.. section: Library

Correct :func:`time.sleep` error message when an object that cannot be
interpreted as an integer or float is provided.

..

.. date: 2025-03-10-14-44-04
.. gh-issue: 93096
.. nonce: kmt59U
.. section: Library

Removed undocumented ``-t`` and ``-v`` arguments of ``python -m
pickletools``. Use ``python -m doctest Lib/pickletools.py -v`` instead.
Patch by Semyon Moroz.

..

.. date: 2025-03-10-12-26-56
.. gh-issue: 131045
.. nonce: s1TssJ
.. section: Library

Fix issue with ``__contains__``, values, and pseudo-members for
:class:`enum.Flag`.

..

.. date: 2025-03-07-19-24-27
.. gh-issue: 130959
.. nonce: xO8vVS
.. section: Library

Fix pure-Python implementation of :func:`datetime.time.fromisoformat` to
reject times with spaces in fractional part (for example, ``12:34:56.400
+02:00``), matching the C implementation. Patch by Michał Gorny.

..

.. date: 2025-03-05-20-02-21
.. gh-issue: 130806
.. nonce: o0l2FJ
.. section: Library

Deleting :class:`gzip.GzipFile` before it is closed now emits a
:exc:`ResourceWarning`.

..

.. date: 2025-03-01-02-19-28
.. gh-issue: 130637
.. nonce: swet54w4rs
.. section: Library

Add validation for numeric response data in poplib.POP3.stat() method

..

.. date: 2025-02-28-11-56-19
.. gh-issue: 130665
.. nonce: cfksVk
.. section: Library

Only apply locale to :ref:`calendar CLI <calendar-cli>` when set via
``--locale`` and not via ``LANG`` environment variable.

..

.. date: 2025-02-28-01-10-14
.. gh-issue: 130660
.. nonce: VIThEz
.. section: Library

``sys.ps1`` and ``sys.ps2`` are now restored after :func:`code.interact`
call.

..

.. date: 2025-02-26-21-21-08
.. gh-issue: 130608
.. nonce: f7ix0Y
.. section: Library

Remove *dirs_exist_ok* argument from :meth:`pathlib.Path.copy` and
:meth:`~pathlib.Path.copy_into`. These methods are new in Python 3.14.

..

.. date: 2025-02-25-03-53-00
.. gh-issue: 130461
.. nonce: asr2dg
.. section: Library

Remove ``.. index::`` directives from the :mod:`uuid` module documentation.
These directives previously created entries in the general index for
:func:`~uuid.getnode` as well as the :func:`~uuid.uuid1`,
:func:`~uuid.uuid3`, :func:`~uuid.uuid4`, :func:`~uuid.uuid5`, and
:func:`~uuid.uuid8` constructor functions.

..

.. date: 2025-02-24-14-46-20
.. gh-issue: 130379
.. nonce: lsef7A
.. section: Library

The zipapp module now calculates the list of files to be added to the
archive before creating the archive. This avoids accidentally including the
target when it is being created in the source directory.

..

.. date: 2025-02-24-01-49-11
.. gh-issue: 82987
.. nonce: vHfQlG
.. section: Library

Inline breakpoints like :func:`breakpoint` or :func:`pdb.set_trace` will
always stop the program at calling frame, ignoring the ``skip`` pattern (if
any).

..

.. date: 2025-02-22-19-44-00
.. gh-issue: 125377
.. nonce: LFTK0H
.. section: Library

``<tab>`` at the beginning of the line in :mod:`pdb` multi-line input will
fill in a 4-space indentation now, instead of inserting a ``\t`` character.

..

.. date: 2025-02-21-21-50-21
.. gh-issue: 125413
.. nonce: DEAD0L
.. section: Library

Ensure the path returned from :meth:`pathlib.Path.copy` or
:meth:`~pathlib.Path.move` has fresh :attr:`~pathlib.Path.info`.

..

.. date: 2025-02-21-20-22-45
.. gh-issue: 65697
.. nonce: BLxt6y
.. section: Library

stdlib configparser will now attempt to validate that keys it writes will
not result in file corruption (creating a file unable to be accurately
parsed by a future read() call from the same parser). Attempting a
corrupting write() will raise an InvalidWriteError.

..

.. date: 2025-02-21-20-16-32
.. gh-issue: 125413
.. nonce: YJ7Msf
.. section: Library

Speed up :meth:`Path.copy <pathlib.Path.copy>` by making better use of
:attr:`~pathlib.Path.info` internally.

..

.. date: 2025-02-21-10-32-05
.. gh-issue: 130285
.. nonce: C0fkh7
.. section: Library

Fix corner case for :func:`random.sample` allowing the *counts* parameter to
specify an empty population. So now, ``sample([], 0, counts=[])`` and
``sample('abc', k=0, counts=[0, 0, 0])`` both give the same result as
``sample([], 0)``.

..

.. date: 2025-02-21-09-05-44
.. gh-issue: 124703
.. nonce: AMJD4Y
.. section: Library

Executing ``quit`` command in :mod:`pdb` will raise :exc:`bdb.BdbQuit` when
:mod:`pdb` is started from an interactive console using :func:`breakpoint`
or :func:`pdb.set_trace`.

..

.. date: 2025-02-19-20-29-33
.. gh-issue: 107773
.. nonce: 7y6Ug2
.. section: Library

Make :mod:`datetime` subclass :meth:`~object.__repr__` consistent both
implementations. Patch by Semyon Moroz.

..

.. date: 2025-02-19-19-29-19
.. gh-issue: 130250
.. nonce: T00tql
.. section: Library

Fix regression in ``traceback.print_last()``.

..

.. date: 2025-02-19-08-06-37
.. gh-issue: 123471
.. nonce: br7uyR
.. section: Library

Make concurrent iterations over :class:`itertools.batched` safe under
free-threading.

..

.. date: 2025-02-19-01-29-16
.. gh-issue: 57537
.. nonce: 4tdVuK
.. section: Library

Support breakpoints for :mod:`zipimport` modules on :mod:`pdb`

..

.. date: 2025-02-17-21-16-51
.. gh-issue: 130230
.. nonce: 9ta9P9
.. section: Library

Fix crash in :func:`pow` with only :class:`~decimal.Decimal` third argument.

..

.. date: 2025-02-17-21-01-25
.. gh-issue: 126944
.. nonce: 49YTHZ
.. section: Library

Show explicit errors when required arguments of :mod:`pdb` commands are
missing

..

.. date: 2025-02-17-12-36-39
.. gh-issue: 127750
.. nonce: ZC-hBq
.. section: Library

Improve repr of :class:`functools.singledispatchmethod` methods and
descriptors.

..

.. date: 2025-02-16-18-13-40
.. gh-issue: 128520
.. nonce: iZtOMz
.. section: Library

Apply type conversion consistently in :class:`pathlib.PurePath` and
:class:`~pathlib.Path` methods can accept a path object as an argument, such
as :meth:`~pathlib.PurePath.match` and :meth:`~pathlib.Path.rename`. The
argument is now converted to path object if it lacks a
:meth:`~pathlib.PurePath.with_segments` attribute, and not otherwise.

..

.. date: 2025-02-16-10-12-27
.. gh-issue: 118761
.. nonce: TNw5ZC
.. section: Library

Reverts a change in the previous release attempting to make some stdlib
imports used within the :mod:`subprocess` module lazy as this was causing
errors during ``__del__`` finalizers calling methods such as ``terminate``,
or ``kill``, or ``send_signal``.

..

.. date: 2025-02-16-08-56-48
.. gh-issue: 130164
.. nonce: vvoaU2
.. section: Library

Fixed failure to raise :exc:`TypeError` in :meth:`inspect.Signature.bind`
for positional-only arguments provided by keyword when a variadic keyword
argument (e.g. ``**kwargs``) is present.

..

.. date: 2025-02-15-12-36-49
.. gh-issue: 130151
.. nonce: 3IFumF
.. section: Library

Fix reference leaks in :func:`!_hashlib.hmac_new` and
:func:`!_hashlib.hmac_digest`. Patch by Bénédikt Tran.

..

.. date: 2025-02-15-07-50-37
.. gh-issue: 130145
.. nonce: I0CkV0
.. section: Library

Fix :meth:`!asyncio.AbstractEventloop.run_forever` when another loop is
already running.

..

.. date: 2025-02-15-01-37-47
.. gh-issue: 130139
.. nonce: gntc7B
.. section: Library

Fix bug where :func:`ast.parse` did not error on AST input which is not of
the correct type, when called with optimize=False.

..

.. date: 2025-02-14-23-38-03
.. gh-issue: 127260
.. nonce: dXQ8P0
.. section: Library

Forbid the use of colon (":") as a fractional component separator and other
improvements to the consistency of error raising between the C and Python
implementations of :meth:`datetime.time.fromisoformat` and
:meth:`datetime.datetime.fromisoformat`. Patch by Semyon Moroz.

..

.. date: 2025-02-13-15-10-56
.. gh-issue: 85795
.. nonce: jeXXI9
.. section: Library

Using :func:`super` and ``__class__`` :term:`closure variable` in
user-defined methods of :class:`typing.NamedTuple` subclasses is now
explicitly prohibited at runtime. Contributed by Bartosz Sławecki in
:gh:`130082`.

..

.. date: 2025-02-13-02-03-38
.. gh-issue: 118761
.. nonce: le_qEg
.. section: Library

Improve import time of :mod:`cmd` by lazy importing :mod:`inspect` and
removing :mod:`string`. Patch by Semyon Moroz.

..

.. date: 2025-02-12-12-38-24
.. gh-issue: 129726
.. nonce: jB0sxu
.. section: Library

Fix :class:`gzip.GzipFile` raising an unraisable exception during garbage
collection when referring to a temporary object by breaking the reference
loop with :mod:`weakref`.

..

.. date: 2025-02-11-18-37-26
.. gh-issue: 127750
.. nonce: 41SDhF
.. section: Library

Remove broken :func:`functools.singledispatchmethod` caching introduced in
:gh:`85160`. Achieve the same performance using different optimization.

..

.. date: 2025-02-11-06-42-17
.. gh-issue: 129948
.. nonce: ZcugY9
.. section: Library

Add support for shared :class:`set` to
:class:`multiprocessing.managers.SyncManager` via :meth:`SyncManager.set()
<multiprocessing.managers.SyncManager.set>`.

..

.. date: 2025-02-10-19-16-48
.. gh-issue: 129965
.. nonce: B6wik0
.. section: Library

Update MIME types for ``.avi`` and ``.wav``. Add MIME types for ``.docx``,
``.pptx``, ``.xlsx``, ``.epub``, ``.flac``, ``.m4a``, ``.odg``, ``.odp``,
``.ods``, ``.odt``, ``.oga``, ``.ogg``, ``.ogx`` and ``.weba``. Patch by
Hugo van Kemenade.

..

.. date: 2025-02-10-09-45-49
.. gh-issue: 129889
.. nonce: PBHXU5
.. section: Library

Support context manager protocol by :class:`contextvars.Token`. Patch by
Andrew Svetlov.

..

.. date: 2025-02-08-15-13-43
.. gh-issue: 97850
.. nonce: jQ0CvW
.. section: Library

Update the deprecation warning of ``importlib.abc.Loader.load_module``.

..

.. date: 2025-02-05-15-17-31
.. gh-issue: 129678
.. nonce: GIUrmV
.. section: Library

:class:`configparser.ConfigParser`: do not write an empty unnamed section

..

.. date: 2025-02-02-23-47-35
.. gh-issue: 128641
.. nonce: GFs673
.. section: Library

Restore :meth:`configparser.ConfigParser.read` performance.

..

.. date: 2025-02-02-16-30-27
.. gh-issue: 129569
.. nonce: i0kPOG
.. section: Library

Fix :func:`unicodedata.normalize` to always return a built-in :class:`str`
object when given an input of a :class:`str` subclass, regardless of whether
the string is already normalized.

..

.. date: 2025-01-30-22-49-42
.. gh-issue: 128231
.. nonce: SuEC18
.. section: Library

Execution of multiple statements in the new REPL now stops immediately upon
the first exception encountered. Patch by Bartosz Sławecki.

..

.. date: 2025-01-26-19-35-06
.. gh-issue: 96092
.. nonce: mMg3gL
.. section: Library

Fix bug in :func:`traceback.walk_stack` called with None where it was
skipping more frames than in prior versions. This bug fix also changes
walk_stack to walk the stack in the frame where it was called rather than
where it first gets used.

..

.. date: 2025-01-26-15-35-53
.. gh-issue: 129288
.. nonce: wB3uxU
.. section: Library

Add optional ``l2_cid`` and ``l2_bdaddr_type`` fields to :mod:`socket`
``BTPROTO_L2CAP`` sockaddr tuple.

..

.. date: 2025-01-15-12-04-30
.. gh-issue: 128703
.. nonce: 6WPf38
.. section: Library

Fix :func:`mimetypes.guess_type` to use default mapping for empty
``Content-Type`` in registry.

..

.. date: 2025-01-08-15-14-17
.. gh-issue: 128647
.. nonce: GabglU
.. section: Library

Eagerly write to buffers passed to :class:`gzip.GzipFile`'s
:meth:`~io.BufferedIOBase.readinto` and :meth:`~io.BufferedIOBase.readinto1`
implementations, avoiding unnecessary allocations. Patch by Chris
Markiewicz.

..

.. date: 2024-12-23-17-00-35
.. gh-issue: 128184
.. nonce: cRQvgM
.. section: Library

Improve display of :class:`annotationlib.ForwardRef` object within
:class:`inspect.Signature` representations. This also fixes a
:exc:`NameError` that was raised when using :func:`dataclasses.dataclass` on
classes with unresolvable forward references.

..

.. date: 2024-12-17-18-53-21
.. gh-issue: 128041
.. nonce: W96kAr
.. section: Library

Add :meth:`concurrent.futures.ProcessPoolExecutor.terminate_workers` and
:meth:`concurrent.futures.ProcessPoolExecutor.kill_workers` as ways to
terminate or kill all living worker processes in the given pool.
(Contributed by Charles Machalow in :gh:`130849`.)

..

.. date: 2024-12-05-19-54-16
.. gh-issue: 127647
.. nonce: Xd78Vs
.. section: Library

Add protocols :class:`io.Reader` and :class:`io.Writer` as alternatives to
:class:`typing.IO`, :class:`typing.TextIO`, and :class:`typing.BinaryIO`.

..

.. date: 2024-11-27-23-29-05
.. gh-issue: 109798
.. nonce: OPj1CT
.. section: Library

Added additional information into error messages in :mod:`datetime`, and
made the messages more consistent between the C and Python implementations.
Patch by Semyon Moroz.

..

.. date: 2024-10-20-13-01-05
.. gh-issue: 125746
.. nonce: wDLTay
.. section: Library

Delay deprecated :meth:`!zipimport.zipimporter.load_module` removal time to
3.15. Use :meth:`zipimport.zipimporter.exec_module` instead.

..

.. date: 2024-10-18-10-27-54
.. gh-issue: 74028
.. nonce: 4d4vVD
.. section: Library

Add the optional ``buffersize`` parameter to
:meth:`concurrent.futures.Executor.map` to limit the number of submitted
tasks whose results have not yet been yielded. If the buffer is full,
iteration over the *iterables* pauses until a result is yielded from the
buffer.

..

.. date: 2024-10-05-13-25-07
.. gh-issue: 124927
.. nonce: uzNA32
.. section: Library

Non-printing characters are now properly handled in the new REPL.

..

.. date: 2024-09-16-17-03-52
.. gh-issue: 124096
.. nonce: znin0O
.. section: Library

Turn on virtual terminal mode and enable bracketed paste in REPL on Windows
console. (If the terminal does not support bracketed paste, enabling it does
nothing.)

..

.. date: 2024-06-28-11-27-25
.. gh-issue: 89083
.. nonce: DKL_Sk
.. section: Library

Add :func:`uuid.uuid7` for generating UUIDv7 objects as specified in
:rfc:`9562`. Patch by Bénédikt Tran.

..

.. date: 2024-06-17-17-31-27
.. gh-issue: 89083
.. nonce: nW00Yq
.. section: Library

Add :func:`uuid.uuid6` for generating UUIDv6 objects as specified in
:rfc:`9562`. Patch by Bénédikt Tran.

..

.. date: 2024-04-30-14-03-09
.. gh-issue: 117151
.. nonce: yt2H8c
.. section: Library

Increase ``io.DEFAULT_BUFFER_SIZE`` from 8k to 128k and adjust :func:`open`
on platforms where :meth:`os.fstat` provides a ``st_blksize`` field (such as
Linux) to use ``max(min(blocksize, 8 MiB), io.DEFAULT_BUFFER_SIZE)`` rather
than always using the device block size. This should improve I/O
performance. Patch by Romain Morotti.

..

.. date: 2023-06-08-07-56-05
.. gh-issue: 105499
.. nonce: 7jV6cP
.. section: Library

Make :class:`types.UnionType` an alias for :class:`typing.Union`. Both ``int
| str`` and ``Union[int, str]`` now create instances of the same type. Patch
by Jelle Zijlstra.

..

.. date: 2022-05-28-19-41-02
.. gh-issue: 93096
.. nonce: qjUyRG
.. section: Library

Document the command-line for :mod:`mimetypes`. It now exits with ``1`` on
failure instead of ``0`` and ``2`` on incorrect command-line parameters
instead of ``1``. Also, errors are printed to stderr instead of stdout and
their text is made tighter. Patch by Oleg Iarygin and Hugo van Kemenade.

..

.. date: 2025-02-22-02-24-39
.. gh-issue: 125722
.. nonce: zDIUFV
.. section: Documentation

Require Sphinx 8.2.0 or later to build the Python documentation. Patch by
Adam Turner.

..

.. date: 2025-02-21-08-44-31
.. gh-issue: 129712
.. nonce: 4AcfWQ
.. section: Documentation

The wheel tags supported by each macOS universal SDK option are now
documented.

..

.. date: 2025-02-16-14-57-00
.. gh-issue: 46236
.. nonce: 2HuS4S
.. section: Documentation

C API: Document :c:func:`PyUnicode_RSplit`, :c:func:`PyUnicode_Partition`
and :c:func:`PyUnicode_RPartition`.

..

.. date: 2025-03-12-11-19-46
.. gh-issue: 131141
.. nonce: tQz594
.. section: Core and Builtins

Fix data race in :data:`sys.monitoring` instrumentation while registering
callback.

..

.. date: 2025-03-10-21-46-37
.. gh-issue: 130804
.. nonce: 0PpcTx
.. section: Core and Builtins

Fix support of unicode characters on Windows in the new REPL.

..

.. date: 2025-03-06-22-56-02
.. gh-issue: 130932
.. nonce: QVHaKT
.. section: Core and Builtins

Fix incorrect exception handling in ``_PyModule_IsPossiblyShadowing``

..

.. date: 2025-03-05-21-52-20
.. gh-issue: 122029
.. nonce: d_z93q
.. section: Core and Builtins

:func:`sys.setprofile` and :func:`sys.settrace` will not generate a
``c_call`` event for ``INSTRUMENTED_CALL_FUNCTION_EX`` if the callable is a
method with a C function wrapped, because we do not generate ``c_return``
event in such case.

..

.. date: 2025-03-05-15-19-21
.. gh-issue: 129964
.. nonce: jqu89w
.. section: Core and Builtins

Fix JIT crash on Windows on Arm. Patch by Diego Russo and Brandt Bucher.

..

.. date: 2025-03-04-20-33-28
.. gh-issue: 130851
.. nonce: MT9j7n
.. section: Core and Builtins

Fix a crash in the :term:`free threading` build when constructing a
:class:`code` object with :attr:`~codeobject.co_consts` that contains
instances of types that are not otherwise generated by the bytecode
compiler.

..

.. date: 2025-03-04-15-12-32
.. gh-issue: 128534
.. nonce: 3A0K3D
.. section: Core and Builtins

Ensure that both left and right branches have the same source for ``async
for`` loops. Add these branches to the ``co_branches()`` iterator.

..

.. date: 2025-03-03-20-33-44
.. gh-issue: 130794
.. nonce: LwtGQc
.. section: Core and Builtins

Fix memory leak in the :term:`free threaded <free threading>` build when
resizing a shared list or dictionary from multiple short-lived threads.

..

.. date: 2025-03-03-01-21-04
.. gh-issue: 130415
.. nonce: ibOV6B
.. section: Core and Builtins

Improve JIT understanding of integers in boolean context.

..

.. date: 2025-02-28-16-13-02
.. gh-issue: 130382
.. nonce: 66VTmy
.. section: Core and Builtins

Fix ``PyRefTracer_DESTROY`` not being sent from :file:`Python/ceval.c`
``Py_DECREF()``.

..

.. date: 2025-02-28-13-34-51
.. gh-issue: 130574
.. nonce: ujr3Vx
.. section: Core and Builtins

Renumber :opcode:`RESUME` from 149 to 128.

..

.. date: 2025-02-27-18-48-42
.. gh-issue: 124878
.. nonce: DS0MIL
.. section: Core and Builtins

Fix race conditions during runtime finalization that could lead to accessing
freed memory.

..

.. date: 2025-02-27-17-05-05
.. gh-issue: 130415
.. nonce: iijvfW
.. section: Core and Builtins

Improve the experimental JIT's ability to narrow boolean values based on the
results of truthiness tests.

..

.. date: 2025-02-27-15-07-06
.. gh-issue: 130618
.. nonce: JTcsRB
.. section: Core and Builtins

Fix a bug that was causing ``UnicodeDecodeError`` or ``SystemError`` to be
raised when using f-strings with ``lambda`` expressions with non-ASCII
characters. Patch by Pablo Galindo

..

.. date: 2025-02-27-10-47-09
.. gh-issue: 123044
.. nonce: 8182Un
.. section: Core and Builtins

Make sure that the location of branch targets in ``match`` cases is in the
body, not the pattern.

..

.. date: 2025-02-26-10-32-48
.. gh-issue: 128534
.. nonce: JEiQex
.. section: Core and Builtins

Add branch monitoring (``BRANCH_LEFT`` and ``BRANCH_RIGHT`` events) for
``async for`` loops.

..

.. date: 2025-02-24-14-25-36
.. gh-issue: 130163
.. nonce: rGpc9v
.. section: Core and Builtins

Fix possible crashes related to concurrent change and use of the :mod:`sys`
module attributes.

..

.. date: 2025-02-23-20-48-31
.. gh-issue: 122029
.. nonce: iW8GvA
.. section: Core and Builtins

``INSTRUMENTED_CALL_KW`` will expand the method before monitoring to reflect
the actual behavior more accurately.

..

.. date: 2025-02-22-22-49-00
.. gh-issue: 130415
.. nonce: WyxBYS
.. section: Core and Builtins

Improve JIT's ability to optimize strings in boolean contexts.

..

.. date: 2025-02-21-11-12-41
.. gh-issue: 130396
.. nonce: SIenSP
.. section: Core and Builtins

Use actual stack limits (from  :manpage:`pthread_getattr_np(3)`) for linux,
and other systems with ``_GNU_SOURCE`` defined, when determining limits for
C stack protection.

..

.. date: 2025-02-17-18-59-33
.. gh-issue: 128396
.. nonce: iVtoYY
.. section: Core and Builtins

Fix a crash that occurs when calling :func:`locals` inside an inline
comprehension that uses the same local variable as the outer frame scope
where the variable is a free or cell var.

..

.. date: 2025-02-17-15-32-26
.. gh-issue: 129107
.. nonce: fPPBLw
.. section: Core and Builtins

Fix two more :class:`bytearray` functions for :term:`free threading`.

..

.. date: 2025-02-17-12-48-00
.. gh-issue: 127705
.. nonce: Qad2hx
.. section: Core and Builtins

Use tagged references (``_PyStackRef``) for the default build as well as for
the free-threading build. This has a small negative performance impact
short-term but will enable larger speedups in the future and significantly
reduce maintenance costs by allowing a single implementation of tagged
references in the future.

..

.. date: 2025-02-14-00-32-52
.. gh-issue: 130094
.. nonce: m3EF9E
.. section: Core and Builtins

Fix two race conditions involving concurrent imports that could lead to
spurious failures with :exc:`ModuleNotFoundError`.

..

.. date: 2025-02-13-20-42-53
.. gh-issue: 129107
.. nonce: _olg-L
.. section: Core and Builtins

Make :class:`bytearray` iterator safe under :term:`free threading`.

..

.. date: 2025-02-13-12-31-53
.. gh-issue: 115802
.. nonce: 0kN4xM
.. section: Core and Builtins

Use the more efficient "medium" code model for JIT-compiled code on
supported platforms.

..

.. date: 2025-02-13-02-39-42
.. gh-issue: 107956
.. nonce: dLguDW
.. section: Core and Builtins

A ``build-details.json`` file is now install in the platform-independent
standard library directory (:pep:`739` implementation).

..

.. date: 2025-02-13-00-28-43
.. gh-issue: 116042
.. nonce: 861juq
.. section: Core and Builtins

Fix location for SyntaxErrors of invalid escapes in the tokenizer. Patch by
Pablo Galindo

..

.. date: 2025-02-12-12-44-36
.. gh-issue: 91079
.. nonce: 8Nq08d
.. section: Core and Builtins

Change C stack overflow protection to consider the amount of stack consumed,
rather than a counter. This allows deeper recursion in many cases, but
remains safe.

..

.. date: 2025-02-11-22-20-21
.. gh-issue: 129715
.. nonce: mopO8n
.. section: Core and Builtins

Improve the experimental JIT's handling of returns to unknown callers.

..

.. date: 2025-02-11-20-38-37
.. gh-issue: 129983
.. nonce: _1Fujo
.. section: Library

Fix data race in compile_template in :file:`sre.c`.

..

.. date: 2025-02-10-20-01-56
.. gh-issue: 129967
.. nonce: J60tEl
.. section: Core and Builtins

Fix a race condition in the :term:`free threading` build when ``repr(set)``
is called concurrently with ``set.clear()``.

..

.. date: 2025-02-10-11-30-13
.. gh-issue: 129953
.. nonce: wipsl_
.. section: Core and Builtins

The internal (evaluation) stack is now spilled to memory whenever execution
escapes from the interpreter or JIT compiled code. This should have no
observable effect in either Python or builtin extensions, but will allow
various important optimizations in the future.

..

.. date: 2025-02-09-11-30-38
.. gh-issue: 129515
.. nonce: 3L3vmo
.. section: Core and Builtins

Clarify syntax error messages for conditional expressions when a statement
is specified before an :keyword:`if` or after an :keyword:`else` keyword.

..

.. date: 2025-02-08-09-55-33
.. gh-issue: 129349
.. nonce: PkcG-l
.. section: Core and Builtins

:meth:`bytes.fromhex` and :meth:`bytearray.fromhex` now accepts ASCII
:class:`bytes` and :term:`bytes-like objects <bytes-like object>`.

..

.. date: 2025-01-25-20-07-03
.. gh-issue: 129149
.. nonce: njeFJi
.. section: Core and Builtins

Add fast path for medium-size integers in :c:func:`PyLong_FromSsize_t`.
Patch by Chris Eibl.

..

.. date: 2025-01-20-23-34-14
.. gh-issue: 129107
.. nonce: T5gBva
.. section: Core and Builtins

Make the :type:`bytearray` safe under :term:`free threading`.

..

.. date: 2025-01-18-10-50-04
.. gh-issue: 128974
.. nonce: KltI-A
.. section: Core and Builtins

Fix a crash in :meth:`UnicodeError.__str__ <object.__str__>` when custom
attributes implement :meth:`~object.__str__` with side-effects. Patch by
Bénédikt Tran.

..

.. date: 2024-12-15-16-56-26
.. gh-issue: 126085
.. nonce: BvyEXk
.. section: Core and Builtins

:class:`typing.TypeAliasType` now supports star unpacking.

..

.. date: 2024-10-29-23-30-35
.. gh-issue: 125331
.. nonce: quKQ7V
.. section: Core and Builtins

``from __future__ import barry_as_FLUFL`` now works in more contexts,
including when it is used in files, with the ``-c`` flag, and in the REPL
when there are multiple statements on the same line. Previously, it worked
only on subsequent lines in the REPL, and when the appropriate flags were
passed directly to :func:`compile`. Patch by Pablo Galindo.

..

.. date: 2024-10-19-20-22-19
.. gh-issue: 121464
.. nonce: IHwfpK
.. section: Core and Builtins

Make concurrent iterations over the same :func:`enumerate` iterator safe
under free-threading. See `Strategy for Iterators in Free Threading
<https://github.com/python/cpython/issues/124397>`_.

..

.. date: 2024-10-11-10-41-05
.. gh-issue: 87790
.. nonce: mlfEGl
.. section: Core and Builtins

Support underscore and comma as thousands separators in the fractional part
for floating-point presentation types of the new-style string formatting
(with :func:`format` or :ref:`f-strings`).  Patch by Sergey B Kirpichev.

..

.. date: 2024-09-25-13-45-01
.. gh-issue: 124445
.. nonce: zfsD7q
.. section: Core and Builtins

Fix specialization of generic aliases that are generic over a
:class:`typing.ParamSpec` and have been specialized with a nested type
variable.

..

.. date: 2024-06-24-20-08-55
.. gh-issue: 120608
.. nonce: d75n8U
.. section: Core and Builtins

Adapt :func:`reversed` for use in the free-threading build. The
:func:`reversed` is still not thread-safe in the sense that concurrent
iterations may see the same object, but they will not corrupt the
interpreter state.

..

.. date: 2022-12-21-14-28-01
.. gh-issue: 100388
.. nonce: vne8ky
.. section: Library

Fix the ``platform._sys_version()`` method when ``__DATE__`` is undefined at
buildtime by changing default buildtime datetime string to the UNIX epoch.

..

.. bpo: 44369
.. date: 2021-06-09-23-04-58
.. nonce: R7QkFv
.. section: Core and Builtins

Improve syntax errors for incorrectly closed strings. Patch by Pablo Galindo

..

.. date: 2025-03-12-08-29-23
.. gh-issue: 111178
.. nonce: Jny_YJ
.. section: C API

Fix :c:type:`PyCMethod` API: replace ``size_t nargs`` with ``Py_ssize_t
nargs`` in :c:type:`PyCMethod`. Patch by Victor Stinner.

..

.. date: 2025-03-07-14-49-06
.. gh-issue: 130947
.. nonce: _Pw0IX
.. section: C API

Add again :c:func:`PySequence_Fast` to the limited C API. Patch by Victor
Stinner.

..

.. date: 2025-02-19-14-41-26
.. gh-issue: 128863
.. nonce: TELwyV
.. section: C API

The following private functions are deprecated and planned for removal in
Python 3.18:

* :c:func:`!_PyUnicodeWriter_Init`:
  replace ``_PyUnicodeWriter_Init(&writer)`` with
  :c:func:`writer = PyUnicodeWriter_Create(0) <PyUnicodeWriter_Create>`.
* :c:func:`!_PyUnicodeWriter_Finish`:
  replace ``_PyUnicodeWriter_Finish(&writer)`` with
  :c:func:`PyUnicodeWriter_Finish(writer) <PyUnicodeWriter_Finish>`.
* :c:func:`!_PyUnicodeWriter_Dealloc`:
  replace ``_PyUnicodeWriter_Dealloc(&writer)`` with
  :c:func:`PyUnicodeWriter_Discard(writer) <PyUnicodeWriter_Discard>`.
* :c:func:`!_PyUnicodeWriter_WriteChar`:
  replace ``_PyUnicodeWriter_WriteChar(&writer, ch)`` with
  :c:func:`PyUnicodeWriter_WriteChar(writer, ch) <PyUnicodeWriter_WriteChar>`.
* :c:func:`!_PyUnicodeWriter_WriteStr`:
  replace ``_PyUnicodeWriter_WriteStr(&writer, str)`` with
  :c:func:`PyUnicodeWriter_WriteStr(writer, str) <PyUnicodeWriter_WriteStr>`.
* :c:func:`!_PyUnicodeWriter_WriteSubstring`:
  replace ``_PyUnicodeWriter_WriteSubstring(&writer, str, start, end)`` with
  :c:func:`PyUnicodeWriter_WriteSubstring(writer, str, start, end) <PyUnicodeWriter_WriteSubstring>`.
* :c:func:`!_PyUnicodeWriter_WriteASCIIString`:
  replace ``_PyUnicodeWriter_WriteASCIIString(&writer, str)`` with
  :c:func:`PyUnicodeWriter_WriteUTF8(writer, str) <PyUnicodeWriter_WriteUTF8>`.
* :c:func:`!_PyUnicodeWriter_WriteLatin1String`:
  replace ``_PyUnicodeWriter_WriteLatin1String(&writer, str)`` with
  :c:func:`PyUnicodeWriter_WriteUTF8(writer, str) <PyUnicodeWriter_WriteUTF8>`.
* :c:func:`!_PyUnicodeWriter_Prepare`: (no replacement).
* :c:func:`!_PyUnicodeWriter_PrepareKind`: (no replacement).

The `pythoncapi-compat project
<https://github.com/python/pythoncapi-compat/>`__ can be used to get these
new public functions on Python 3.13 and older.

Patch by Victor Stinner.

..

.. date: 2025-02-13-00-57-05
.. gh-issue: 45325
.. nonce: Cwif9z
.. section: C API

Add a new ``p`` format parameter to :c:func:`Py_BuildValue` that allows to
take a C integer and produce a Python :class:`bool` object. Patch by Pablo
Galindo.

..

.. date: 2025-03-10-10-52-25
.. gh-issue: 131035
.. nonce: KF1w4j
.. section: Build

Use ``-flto=thin`` for faster build times using clang-cl on Windows. Patch
by Chris Eibl.

..

.. date: 2025-03-01-18-27-42
.. gh-issue: 130740
.. nonce: nDFSHR
.. section: Build

Ensure that ``Python.h`` is included before ``stdbool.h`` unless
``pyconfig.h`` is included before or in some platform-specific contexts.

..

.. date: 2025-02-13-19-21-41
.. gh-issue: 130090
.. nonce: 3ngJaV
.. section: Build

Building with ``PlatformToolset=ClangCL`` on Windows now supports PGO
(profile guided optimization). Patch by Chris Eibl with invaluable support
from Steve Dover.

..

.. date: 2025-02-11-08-06-44
.. gh-issue: 129819
.. nonce: 7rn4dY
.. section: Build

Allow building the JIT with the tailcall interpreter.

..

.. date: 2025-02-11-07-55-28
.. gh-issue: 129989
.. nonce: kaSKlD
.. section: Build

Fix a bug where the tailcall interpreter was enabled when
``--without-tail-call-interp`` was provided to the configure script.

..

.. date: 2025-02-07-21-20-21
.. gh-issue: 129838
.. nonce: fkuiEc
.. section: Build

Don't redefine ``_Py_NO_SANITIZE_UNDEFINED`` when compiling with a recent
GCC version and undefined sanitizer enabled.

..

.. date: 2023-04-02-14-20-29
.. gh-issue: 82909
.. nonce: LGcZJy
.. section: Build

``#pragma``-based linking with ``python3*.lib`` can now be switched off with
:c:expr:`Py_NO_LINK_LIB`. Patch by Jean-Christophe Fillion-Robin.
