.. date: 2023-11-20-14-13-02
.. gh-issue: 112243
.. nonce: FKdQnr
.. release date: 2023-11-22
.. section: Core and Builtins

Don't include comments in f-string debug expressions. Patch by Pablo Galindo

..

.. date: 2023-11-20-10-40-40
.. gh-issue: 112287
.. nonce: 15gWAK
.. section: Core and Builtins

Slightly optimize the Tier 2 (uop) interpreter by only loading ``oparg`` and
``operand`` when needed. Also double the trace size limit again, to 512 this
time.

..

.. date: 2023-11-19-15-57-23
.. gh-issue: 112266
.. nonce: BSJMbR
.. section: Core and Builtins

Change docstrings of :attr:`~object.__dict__` and
:attr:`~object.__weakref__`.

..

.. date: 2023-11-17-16-49-32
.. gh-issue: 111807
.. nonce: QvjP9_
.. section: Core and Builtins

Lower the max parser stack depth to 1000 under WASI debug builds.

..

.. date: 2023-11-15-20-20-51
.. gh-issue: 111798
.. nonce: cs-3t3
.. section: Core and Builtins

When Python is built in debug mode, set the C recursion limit to 500 instead
of 1500. A debug build is likely built with low optimization level which
implies higher stack memory usage than a release build. Patch by Victor
Stinner.

..

.. date: 2023-11-15-16-14-10
.. gh-issue: 106529
.. nonce: Y48ax9
.. section: Core and Builtins

Enable translating unspecialized ``FOR_ITER`` to Tier 2.

..

.. date: 2023-11-14-22-12-11
.. gh-issue: 111916
.. nonce: ZGCayL
.. section: Core and Builtins

Make hashlib related modules thread-safe without the GIL

..

.. date: 2023-11-07-12-59-02
.. gh-issue: 81137
.. nonce: qFpJCY
.. section: Core and Builtins

Deprecate assignment to a function's ``__code__`` field when the new code
object is of a mismatched type (e.g., from a generator to a plain function).

..

.. date: 2023-11-06-16-44-09
.. gh-issue: 79932
.. nonce: 2qv7uD
.. section: Core and Builtins

Raise exception if :meth:`frame.clear` is called on a suspended frame.

..

.. date: 2023-11-05-20-59-10
.. gh-issue: 81925
.. nonce: wKHLSS
.. section: Core and Builtins

Implement native thread ids for GNU KFreeBSD.

..

.. date: 2023-11-05-06-40-35
.. gh-issue: 111843
.. nonce: c045cB
.. section: Core and Builtins

Use exponential backoff to reduce the number of failed tier 2 optimization
attempts by over 99%.

..

.. date: 2023-11-04-13-36-51
.. gh-issue: 110829
.. nonce: Pa0CJI
.. section: Core and Builtins

Joining a thread now ensures the underlying OS thread has exited. This is
required for safer fork() in multi-threaded processes.

..

.. date: 2023-11-03-22-48-29
.. gh-issue: 109369
.. nonce: ELYaxJ
.. section: Core and Builtins

Make sure that tier 2 traces are de-optimized if the code is instrumented

..

.. date: 2023-11-03-19-25-38
.. gh-issue: 111772
.. nonce: aRQvOn
.. section: Core and Builtins

Specialize slot loads and stores for _Py_T_OBJECT as well as Py_T_OBJECT_EX

..

.. date: 2023-11-03-01-23-48
.. gh-issue: 111666
.. nonce: l8Q8G5
.. section: Core and Builtins

Speed up :meth:`BaseExceptionGroup.derive`,
:meth:`BaseExceptionGroup.subgroup`, and :meth:`BaseExceptionGroup.split` by
changing how they parse passed arguments.

..

.. date: 2023-11-03-01-04-55
.. gh-issue: 111654
.. nonce: scUhDO
.. section: Core and Builtins

Fix runtime crash when some error happens in opcode
``LOAD_FROM_DICT_OR_DEREF``.

..

.. date: 2023-11-02-15-00-57
.. gh-issue: 111623
.. nonce: BZxYc8
.. section: Core and Builtins

Add support for sharing tuples between interpreters using the
cross-interpreter API.  Patch by Anthony Shaw.

..

.. date: 2023-11-02-14-49-19
.. gh-issue: 111354
.. nonce: gIS3f-
.. section: Core and Builtins

The oparg of :opcode:`YIELD_VALUE` is now ``1`` if the instruction is part
of a yield-from or await, and ``0`` otherwise.

The SUSPENDED frame state is now split into ``SUSPENDED`` and
``SUSPENDED_YIELD_FROM``. This simplifies the code in ``_PyGen_yf``.

..

.. date: 2023-10-31-21-33-35
.. gh-issue: 111520
.. nonce: vw-rxJ
.. section: Core and Builtins

Merge the Tier 1 (bytecode) and Tier 2 (micro-ops) interpreters together,
moving the Tier 2 interpreter loop and switch into
``_PyEval_EvalFrameDefault()`` in ``Python/ceval.c``. The
``Python/executor.c`` file is gone. Also the ``TIER_ONE`` and ``TIER_TWO``
macros are now handled by the code generator.

**Beware!** This changes the environment variables to enable micro-ops and
their debugging to ``PYTHON_UOPS`` and ``PYTHON_LLTRACE``.

..

.. date: 2023-10-31-14-25-21
.. gh-issue: 109181
.. nonce: 11h6Mc
.. section: Core and Builtins

Speed up :class:`Traceback` object creation by lazily compute the line number.
Patch by Pablo Galindo

..

.. date: 2023-10-29-20-11-21
.. gh-issue: 111420
.. nonce: IUT-GK
.. section: Core and Builtins

Allow type comments in parenthesized ``with`` statements

..

.. date: 2023-10-29-12-33-33
.. gh-issue: 111438
.. nonce: bHTLLl
.. section: Core and Builtins

Add support for sharing floats between interpreters using the
cross-interpreter API.  Patch by Anthony Shaw.

..

.. date: 2023-10-29-11-35-21
.. gh-issue: 111435
.. nonce: ageUWQ
.. section: Core and Builtins

Add support for sharing of ``True`` and ``False`` between interpreters using the
cross-interpreter API.  Patch by Anthony Shaw.

..

.. date: 2023-10-27-19-38-33
.. gh-issue: 102388
.. nonce: vd5YUZ
.. section: Core and Builtins

Fix a bug where ``iso2022_jp_3`` and ``iso2022_jp_2004`` codecs read out of
bounds

..

.. date: 2023-10-27-12-17-49
.. gh-issue: 111366
.. nonce: _TSknV
.. section: Core and Builtins

Fix an issue in the :mod:`codeop` that was causing :exc:`SyntaxError`
exceptions raised in the presence of invalid syntax to not contain precise
error messages. Patch by Pablo Galindo

..

.. date: 2023-10-27-11-51-40
.. gh-issue: 111380
.. nonce: vgSbir
.. section: Core and Builtins

Fix a bug that was causing :exc:`SyntaxWarning` to appear twice when parsing
if invalid syntax is encountered later. Patch by Pablo galindo

..

.. date: 2023-10-27-11-22-09
.. gh-issue: 111374
.. nonce: e9lrPZ
.. section: Core and Builtins

Added a new environment variable :envvar:`PYTHON_FROZEN_MODULES`. It
determines whether or not frozen modules are ignored by the import
machinery, equivalent of the :option:`-X frozen_modules <-X>` command-line
option.

..

.. date: 2023-10-26-18-45-20
.. gh-issue: 111354
.. nonce: GrT-Wf
.. section: Core and Builtins

Remove ``oparg`` from :opcode:`YIELD_VALUE`. Change ``oparg`` of
:opcode:`RESUME` to include information about the except-depth. These
changes make it possible to simplify the code in generator close.

..

.. date: 2023-10-23-22-11-09
.. gh-issue: 94438
.. nonce: y2pITu
.. section: Core and Builtins

Fix a regression that prevented jumping across ``is None`` and ``is not
None`` when debugging. Patch by Savannah Ostrowski.

..

.. date: 2023-10-23-15-44-47
.. gh-issue: 67224
.. nonce: S4D6CR
.. section: Core and Builtins

Show source lines in tracebacks when using the ``-c`` option when running
Python. Patch by Pablo Galindo

..

.. date: 2023-10-20-23-14-06
.. gh-issue: 111123
.. nonce: jjVc3M
.. section: Core and Builtins

Fix a bug where a :keyword:`global` declaration in an :keyword:`except`
block is rejected when the global is used in the :keyword:`else` block.

..

.. date: 2023-10-17-11-03-45
.. gh-issue: 110938
.. nonce: X3sbMb
.. section: Core and Builtins

Fix error messages for indented blocks with functions and classes with
generic type parameters. Patch by Pablo Galindo

..

.. date: 2023-10-16-15-51-37
.. gh-issue: 109214
.. nonce: -RGTFH
.. section: Core and Builtins

Remove unnecessary instruction pointer updates before returning from frames.

..

.. date: 2023-10-16-12-12-48
.. gh-issue: 110912
.. nonce: uEJGi_
.. section: Core and Builtins

Correctly display the traceback for :exc:`MemoryError` exceptions using the
:mod:`traceback` module. Patch by Pablo Galindo

..

.. date: 2023-10-15-22-18-45
.. gh-issue: 109894
.. nonce: UAmo06
.. section: Core and Builtins

Fixed crash due to improperly initialized static :exc:`MemoryError` in
subinterpreter.

..

.. date: 2023-10-15-20-45-35
.. gh-issue: 110892
.. nonce: oA6eVY
.. section: Core and Builtins

Return ``NULL`` for ``PyTrace_RETURN`` events caused by an exception

..

.. date: 2023-10-14-12-19-34
.. gh-issue: 110864
.. nonce: -baPDE
.. section: Core and Builtins

Fix argument parsing by ``_PyArg_UnpackKeywordsWithVararg`` for functions
defining pos-or-keyword, vararg, and kw-only parameters.

..

.. date: 2023-10-13-16-55-55
.. gh-issue: 109094
.. nonce: ziL4cJ
.. section: Core and Builtins

Replace ``prev_instr`` on the interpreter frame by ``instr_ptr`` which
points to the beginning of the instruction that is currently executing (or
will execute once the frame resumes).

..

.. date: 2023-10-13-09-21-29
.. gh-issue: 110805
.. nonce: vhU7A7
.. section: Core and Builtins

Allow the repl to show source code and complete tracebacks. Patch by Pablo
Galindo

..

.. date: 2023-10-12-17-15-23
.. gh-issue: 110722
.. nonce: sjMwQe
.. section: Core and Builtins

Add :envvar:`PYTHON_PRESITE=package.module` to import a module early in the
interpreter lifecycle before ``site.py`` is executed.  Python needs to be
:ref:`built in debug mode <debug-build>` for this option to exist.

..

.. date: 2023-10-12-12-09-01
.. gh-issue: 110481
.. nonce: 3Er3it
.. section: Core and Builtins

Implement biased reference counting in ``--disable-gil`` builds.

..

.. date: 2023-10-09-19-54-33
.. gh-issue: 110543
.. nonce: 1wrxO8
.. section: Core and Builtins

Fix regression in Python 3.12 where :meth:`types.CodeType.replace` would
produce a broken code object if called on a module or class code object that
contains a comprehension. Patch by Jelle Zijlstra.

..

.. date: 2023-09-30-17-30-11
.. gh-issue: 89519
.. nonce: hz2pZf
.. section: Core and Builtins

Removed chained :class:`classmethod` descriptors (introduced in
:issue:`19072`).  This can no longer be used to wrap other descriptors such
as :class:`property`.  The core design of this feature was flawed and caused
a number of downstream problems.  To "pass-through" a :class:`classmethod`,
consider using the :attr:`!__wrapped__` attribute that was added in Python
3.10.

..

.. date: 2023-09-15-23-39-43
.. gh-issue: 103615
.. nonce: WZavly
.. section: Core and Builtins

Use local events for opcode tracing

..

.. bpo: 46657
.. date: 2023-09-06-12-36-11
.. nonce: xea1T_
.. section: Core and Builtins

Add mimalloc memory allocator support.

..

.. date: 2023-08-31-11-42-16
.. gh-issue: 106718
.. nonce: _-57DA
.. section: Core and Builtins

When PyConfig.stdlib_dir is explicitly set, it's now respected and won't be
overridden by PyConfig.home.

..

.. date: 2023-07-20-11-41-16
.. gh-issue: 106905
.. nonce: AyZpuB
.. section: Core and Builtins

Fix incorrect SystemError about AST constructor recursion depth mismatch.

..

.. date: 2022-12-27-02-51-45
.. gh-issue: 100445
.. nonce: C8f6ph
.. section: Core and Builtins

Improve error message for unterminated strings with escapes.

..

.. bpo: 45759
.. date: 2021-11-10-10-40-05
.. nonce: WJoB3D
.. section: Core and Builtins

Improved error messages for ``elif``/``else`` statements not matching any
valid statements. Patch by Jeremiah Vivian.

..

.. date: 2023-11-14-18-43-55
.. gh-issue: 111942
.. nonce: x1pnrj
.. section: Library

Fix SystemError in the TextIOWrapper constructor with non-encodable "errors"
argument in non-debug mode.

..

.. date: 2023-11-14-16-31-59
.. gh-issue: 111995
.. nonce: OoX8JJ
.. section: Library

Added the ``NI_IDN`` constant to the :mod:`socket` module when present in C
at build time for use with :func:`socket.getnameinfo`.

..

.. date: 2023-11-11-16-42-48
.. gh-issue: 109538
.. nonce: cMG5ux
.. section: Library

Issue warning message instead of having :class:`RuntimeError` be displayed
when event loop has already been closed at :meth:`StreamWriter.__del__`.

..

.. date: 2023-11-10-22-08-28
.. gh-issue: 111942
.. nonce: MDFm6v
.. section: Library

Fix crashes in :meth:`io.TextIOWrapper.reconfigure` when pass invalid
arguments, e.g. non-string encoding.

..

.. date: 2023-11-09-12-57-43
.. gh-issue: 111460
.. nonce: TQaz9I
.. section: Library

:mod:`curses`: restore wide character support (including
:func:`curses.unget_wch` and :meth:`~curses.window.get_wch`) on macOS, which
was unavailable due to a regression in Python 3.12.

..

.. date: 2023-11-09-10-45-56
.. gh-issue: 103791
.. nonce: sdfkja
.. section: Library

:class:`contextlib.suppress` now supports suppressing exceptions raised as
part of a :exc:`BaseExceptionGroup`, in addition to the recent support for
:exc:`ExceptionGroup`.

..

.. date: 2023-11-08-23-32-03
.. gh-issue: 111835
.. nonce: ufFiuW
.. section: Library

The :class:`mmap.mmap` class now has an :meth:`~mmap.mmap.seekable` method
that can be used when a seekable file-like object is required.
The :meth:`~mmap.mmap.seek` method now returns the new absolute position.
Patch by Donghee Na.

..

.. date: 2023-11-08-15-58-57
.. gh-issue: 111804
.. nonce: uAXTOL
.. section: Library

Remove posix.fallocate() under WASI as the underlying posix_fallocate() is
not available in WASI preview2.

..

.. date: 2023-11-08-11-50-49
.. gh-issue: 111841
.. nonce: iSqdQf
.. section: Library

Fix truncating arguments on an embedded null character in :meth:`os.putenv`
and :meth:`os.unsetenv` on Windows.

..

.. date: 2023-11-08-07-42-53
.. gh-issue: 111768
.. nonce: g-WpnV
.. section: Library

:func:`wsgiref.util.is_hop_by_hop` is now exposed correctly in ``__all__``.

..

.. date: 2023-11-04-21-12-27
.. gh-issue: 80731
.. nonce: Wq51xg
.. section: Library

Avoid executing the default function in :class:`cmd.Cmd` in an except block

..

.. date: 2023-11-04-10-24-25
.. gh-issue: 111541
.. nonce: x0RBI1
.. section: Library

Fix :mod:`doctest` for :exc:`SyntaxError` not-builtin subclasses.

..

.. date: 2023-11-04-01-20-23
.. gh-issue: 111719
.. nonce: fUiKBD
.. section: Library

Add extra argument validation for ``alias`` command in :mod:`pdb`

..

.. date: 2023-11-02-12-15-46
.. gh-issue: 111482
.. nonce: FWqZIU
.. section: Library

:mod:`time`: Make :func:`time.clock_gettime` and
:func:`time.clock_gettime_ns` functions up to 2x faster by faster calling
convention. Patch by Victor Stinner.

..

.. date: 2023-11-01-14-03-24
.. gh-issue: 110894
.. nonce: 7-wZxC
.. section: Library

Call loop exception handler for exceptions in ``client_connected_cb`` of
:func:`asyncio.start_server` so that applications can handle it. Patch by
Kumar Aditya.

..

.. date: 2023-10-31-07-46-56
.. gh-issue: 111531
.. nonce: 6zUV_G
.. section: Library

Fix reference leaks in ``bind_class()`` and ``bind_all()`` methods of
:mod:`tkinter` widgets.

..

.. date: 2023-10-30-14-47-23
.. gh-issue: 111246
.. nonce: QJ_ehs
.. section: Library

:meth:`asyncio.loop.create_unix_server` will now automatically remove the
Unix socket when the server is closed.

..

.. date: 2023-10-30-08-50-46
.. gh-issue: 111356
.. nonce: Bc8LvA
.. section: Library

Added :func:`io.text_encoding`, :data:`io.DEFAULT_BUFFER_SIZE`, and
:class:`io.IncrementalNewlineDecoder` to ``io.__all__``.

..

.. date: 2023-10-29-03-46-27
.. gh-issue: 66425
.. nonce: FWTdDo
.. section: Library

Remove the code to set the REMOTE_HOST header from wsgiref module, as it is
unreachable. This header is used for performance reasons, which is not
necessary in the wsgiref module.

..

.. date: 2023-10-28-22-11-11
.. gh-issue: 111429
.. nonce: mJGxuQ
.. section: Library

Speed up :meth:`pathlib.PurePath.relative_to` and
:meth:`~pathlib.PurePath.is_relative_to`.

..

.. date: 2023-10-28-04-21-17
.. gh-issue: 111342
.. nonce: m8Ln1k
.. section: Library

Fixed typo in :func:`math.sumprod`.

..

.. date: 2023-10-27-12-46-56
.. gh-issue: 68166
.. nonce: 0EbWW4
.. section: Library

Remove mention of not supported "vsapi" element type in
:meth:`tkinter.ttk.Style.element_create`. Add tests for ``element_create()``
and other ``ttk.Style`` methods. Add examples for ``element_create()`` in
the documentation.

..

.. date: 2023-10-27-09-56-20
.. gh-issue: 111388
.. nonce: SlmDbC
.. section: Library

Add ``show_group`` parameter to :func:`traceback.format_exception_only`,
which allows to format :exc:`ExceptionGroup` instances.

..

.. date: 2023-10-25-11-54-00
.. gh-issue: 79033
.. nonce: 5ePgFl
.. section: Library

Another attempt at fixing :func:`asyncio.Server.wait_closed`. It now
blocks until both conditions are true: the server is closed, *and* there are
no more active connections. (This means that in some cases where in 3.12.0
this function would *incorrectly* have returned immediately, it will now
block; in particular, when there are no active connections but the server
hasn't been closed yet.)

..

.. date: 2023-10-25-11-13-35
.. gh-issue: 111259
.. nonce: z7ndeA
.. section: Library

Optimize recursive wildcards in :mod:`pathlib`.

..

.. date: 2023-10-25-08-42-05
.. gh-issue: 111295
.. nonce: H2K4lf
.. section: Library

Fix :mod:`time` not checking for errors when initializing.

..

.. date: 2023-10-24-12-20-46
.. gh-issue: 111253
.. nonce: HFywSK
.. section: Library

Add error checking during :mod:`!_socket` module init.

..

.. date: 2023-10-24-12-09-46
.. gh-issue: 111251
.. nonce: urFYtn
.. section: Library

Fix :mod:`!_blake2` not checking for errors when initializing.

..

.. date: 2023-10-23-23-14-54
.. gh-issue: 111233
.. nonce: sCdCC0
.. section: Library

Fix :mod:`select` not checking for errors when initializing.

..

.. date: 2023-10-23-22-40-47
.. gh-issue: 111230
.. nonce: k3Jm84
.. section: Library

Fix :mod:`ssl` not checking for errors when initializing.

..

.. date: 2023-10-23-13-53-58
.. gh-issue: 111174
.. nonce: Oohmzd
.. section: Library

Fix crash in :meth:`io.BytesIO.getbuffer` called repeatedly for empty
BytesIO.

..

.. date: 2023-10-22-21-28-05
.. gh-issue: 111187
.. nonce: _W11Ab
.. section: Library

Postpone removal version for locale.getdefaultlocale() to Python 3.15.

..

.. date: 2023-10-21-13-57-06
.. gh-issue: 111159
.. nonce: GoHp7s
.. section: Library

Fix :mod:`doctest` output comparison for exceptions with notes.

..

.. date: 2023-10-20-15-29-10
.. gh-issue: 110910
.. nonce: u2oPwX
.. section: Library

Fix invalid state handling in :class:`asyncio.TaskGroup` and
:class:`asyncio.Timeout`. They now raise proper RuntimeError if they are
improperly used and are left in consistent state after this.

..

.. date: 2023-10-19-22-46-34
.. gh-issue: 111092
.. nonce: hgut12
.. section: Library

Make turtledemo run without default root enabled.

..

.. date: 2023-10-16-18-41-51
.. gh-issue: 110944
.. nonce: CmUKXo
.. section: Library

Support alias and convenience vars for :mod:`pdb` completion

..

.. date: 2023-10-15-08-08-26
.. gh-issue: 110745
.. nonce: mxEkh0
.. section: Library

Added *newline* parameter to :meth:`pathlib.Path.read_text`. Patch by Junya
Okabe.

..

.. date: 2023-10-14-21-33-57
.. gh-issue: 84583
.. nonce: -Cmn4_
.. section: Library

Make :mod:`pdb` enter post-mortem mode even for :exc:`SyntaxError`

..

.. date: 2023-10-14-20-15-53
.. gh-issue: 80675
.. nonce: _M-cQC
.. section: Library

Set ``f_trace_lines = True`` on all frames upon :func:`pdb.set_trace`

..

.. date: 2023-10-13-06-47-20
.. gh-issue: 110771
.. nonce: opwdlc
.. section: Library

Expose the setup and cleanup portions of ``asyncio.run_forever()`` as the
standalone methods ``asyncio.run_forever_setup()`` and
``asyncio.run_forever_cleanup()``. This allows for tighter integration with
GUI event loops.

..

.. date: 2023-10-12-15-16-44
.. gh-issue: 110774
.. nonce: AdCb5A
.. section: Library

Support setting the :class:`asyncio.Runner` loop_factory kwarg in
:class:`unittest.IsolatedAsyncioTestCase`

..

.. date: 2023-10-10-17-56-41
.. gh-issue: 110392
.. nonce: 6g6CnP
.. section: Library

Fix :func:`tty.setraw` and :func:`tty.setcbreak`: previously they returned
partially modified list of the original tty attributes.
:func:`tty.cfmakeraw` and :func:`tty.cfmakecbreak` now make a copy of the
list of special characters before modifying it.

..

.. date: 2023-10-09-23-59-04
.. gh-issue: 59013
.. nonce: qPbS-G
.. section: Library

Make line number of function breakpoint more precise in :mod:`pdb`

..

.. date: 2023-10-08-18-38-09
.. gh-issue: 88434
.. nonce: 2Q_IkG
.. section: Library

Emit deprecation warning for non-integer numbers in :mod:`gettext` functions
and methods that consider plural forms even if the translation was not
found.

..

.. date: 2023-10-08-14-17-06
.. gh-issue: 110395
.. nonce: _tdCsV
.. section: Library

Ensure that :func:`select.kqueue` objects correctly appear as closed in
forked children, to prevent operations on an invalid file descriptor.

..

.. date: 2023-10-02-05-23-27
.. gh-issue: 110196
.. nonce: djwt0z
.. section: Library

Add ``__reduce__`` method to :class:`IPv6Address` in order to keep
``scope_id``

..

.. date: 2023-09-25-20-05-41
.. gh-issue: 109747
.. nonce: _cRJH8
.. section: Library

Improve errors for unsupported look-behind patterns. Now re.error is raised
instead of OverflowError or RuntimeError for too large width of look-behind
pattern.

..

.. date: 2023-09-15-12-30-21
.. gh-issue: 109466
.. nonce: 6ah-aw
.. section: Library

Add the :attr:`ipaddress.IPv4Address.ipv6_mapped` property, which returns the
IPv4-mapped IPv6 address.

..

.. date: 2023-09-08-12-10-10
.. gh-issue: 85098
.. nonce: DfQbeJ
.. section: Library

Implement the CLI of the :mod:`symtable` module and improve the repr of
:class:`~symtable.Symbol`.

..

.. date: 2023-09-02-16-07-23
.. gh-issue: 108791
.. nonce: fBcAqh
.. section: Library

Improved error handling in :mod:`pdb` command line interface, making it
produce more concise error messages.

..

.. date: 2023-08-30-19-10-35
.. gh-issue: 105931
.. nonce: Lpwve8
.. section: Library

Change :mod:`compileall` to only strip the stripdir prefix from the full
path recorded in the compiled ``.pyc`` file, when the prefix matches the
start of the full path in its entirety. When the prefix does not match, no
stripping is performed and a warning to this effect is displayed.

Previously all path components of the stripdir prefix that matched the full
path were removed, while those that did not match were left alone (including
ones interspersed between matching components).

..

.. date: 2023-07-29-19-00-39
.. gh-issue: 107431
.. nonce: 1GzJ2p
.. section: Library

Make the ``DictProxy`` and ``ListProxy`` types in
:mod:`multiprocessing.managers` :ref:`Generic Alias
Types<types-genericalias>` for ``[]`` use in typing contexts.

..

.. date: 2023-07-13-00-24-52
.. gh-issue: 72904
.. nonce: Yn5-j0
.. section: Library

Add :func:`glob.translate`. This function converts a pathname with
shell-style wildcards to a regular expression.

..

.. date: 2023-05-30-02-01-14
.. gh-issue: 90026
.. nonce: FyCXw8
.. section: Library

Define ``USE_XATTRS`` on Cygwin so that XATTR-related functions in the
:mod:`os` module become available.

..

.. date: 2023-04-26-16-37-00
.. gh-issue: 90890
.. nonce: fIag4w
.. section: Library

New methods :meth:`mailbox.Maildir.get_info`,
:meth:`mailbox.Maildir.set_info`, :meth:`mailbox.Maildir.get_flags`,
:meth:`mailbox.Maildir.set_flags`, :meth:`mailbox.Maildir.add_flag`,
:meth:`mailbox.Maildir.remove_flag`. These methods speed up accessing a
message's info and/or flags and are useful when it is not necessary to
access the message's contents, as when iterating over a Maildir to find
messages with specific flags.

..

.. date: 2023-04-15-14-45-21
.. gh-issue: 102956
.. nonce: Z6qeUy
.. section: Library

Fix returning of empty byte strings after seek in zipfile module

..

.. date: 2023-03-22-02-01-30
.. gh-issue: 102895
.. nonce: HiEqaZ
.. section: Library

Added a parameter ``local_exit`` for :func:`code.interact` to prevent
``exit()`` and ``quit`` from closing ``sys.stdin`` and raise ``SystemExit``.

..

.. date: 2022-10-14-21-11-10
.. gh-issue: 97928
.. nonce: Pdxh1G
.. section: Library

Change the behavior of :meth:`tkinter.Text.count`. It now always returns an
integer if one or less counting options are specified. Previously it could
return a single count as a 1-tuple, an integer (only if option ``"update"``
was specified) or ``None`` if no items found. The result is now the same if
``wantobjects`` is set to ``0``.

..

.. date: 2022-10-05-15-01-36
.. gh-issue: 96954
.. nonce: ezwkrU
.. section: Library

Switch the storage of the unicode codepoint names to use a different
data-structure, a `directed acyclic word graph
<https://en.wikipedia.org/wiki/Deterministic_acyclic_finite_state_automaton>`_.
This makes the unicodedata shared library about 440 KiB smaller. Contributed
by Carl Friedrich Bolz-Tereick using code from the PyPy project.

..

.. date: 2022-05-28-20-55-07
.. gh-issue: 73561
.. nonce: YRmAvy
.. section: Library

Omit the interface scope from an IPv6 address when used as Host header by
:mod:`http.client`.

..

.. date: 2022-05-06-15-49-57
.. gh-issue: 86826
.. nonce: rf006W
.. section: Library

:mod:`zipinfo` now supports the full range of values in the TZ string
determined by RFC 8536 and detects all invalid formats. Both Python and C
implementations now raise exceptions of the same type on invalid data.

..

.. date: 2023-11-17-15-20-41
.. gh-issue: 111808
.. nonce: jtIayt
.. section: Tests

Make the default value of ``test.support.infinite_recursion()`` to be
conditional based on whether optimizations were used when compiling the
interpreter. This helps with platforms like WASI whose stack size is greatly
restricted in debug builds.

..

.. date: 2023-11-03-18-59-13
.. gh-issue: 110722
.. nonce: jvT1pb
.. section: Tests

Gathering line coverage of standard libraries within the regression test
suite is now precise, as well as much faster. Patch by Łukasz Langa.

..

.. date: 2023-10-31-22-09-25
.. gh-issue: 110367
.. nonce: UhQi44
.. section: Tests

Make regrtest ``--verbose3`` option compatible with ``--huntrleaks -jN``
options. The ``./python -m test -j1 -R 3:3 --verbose3`` command now works as
expected. Patch by Victor Stinner.

..

.. date: 2023-10-21-19-27-36
.. gh-issue: 111165
.. nonce: FU6mUk
.. section: Tests

Remove no longer used functions ``run_unittest()`` and ``run_doctest()``
from the :mod:`test.support` module.

..

.. date: 2023-10-21-00-10-36
.. gh-issue: 110932
.. nonce: jktjJU
.. section: Tests

Fix regrtest if the ``SOURCE_DATE_EPOCH`` environment variable is defined:
use the variable value as the random seed. Patch by Victor Stinner.

..

.. date: 2023-10-17-17-54-36
.. gh-issue: 110995
.. nonce: Fx8KRD
.. section: Tests

test_gdb: Fix detection of gdb built without Python scripting support. Patch
by Victor Stinner.

..

.. date: 2023-10-16-13-47-24
.. gh-issue: 110918
.. nonce: aFgZK3
.. section: Tests

Test case matching patterns specified by options ``--match``, ``--ignore``,
``--matchfile`` and ``--ignorefile`` are now tested in the order of
specification, and the last match determines whether the test case be run or
ignored.

..

.. date: 2023-09-15-15-00-14
.. gh-issue: 108747
.. nonce: ql0owS
.. section: Tests

Add unit test for ``usercustomize`` and ``sitecustomize`` hooks from
:class:`site`.

..

.. date: 2023-11-15-16-56-20
.. gh-issue: 96954
.. nonce: 6FYvKn
.. section: Build

Make ``make regen-unicodedata`` work for out-of-tree builds of CPython.

..

.. date: 2023-11-15-13-40-29
.. gh-issue: 112088
.. nonce: UJQxxh
.. section: Build

Add ``Tools/build/regen-configure.sh`` script to regenerate the
``configure`` with an Ubuntu container image. The
``quay.io/tiran/cpython_autoconf:271`` container image
(`tiran/cpython_autoconf <https://github.com/tiran/cpython_autoconf>`_) is
no longer used. Patch by Victor Stinner.

..

.. date: 2023-10-20-15-29-31
.. gh-issue: 111046
.. nonce: 2DxQl8
.. section: Build

For wasi-threads, memory is now exported to fix compatibility issues with
some wasm runtimes.

..

.. date: 2023-10-17-03-10-40
.. gh-issue: 110828
.. nonce: 31vQ9B
.. section: Build

AIX 32bit needs ``-latomic`` to build the :mod:`!_testcapi` extension
module.

..

.. date: 2023-10-17-01-56-11
.. gh-issue: 85283
.. nonce: V156T2
.. section: Build

The ``errno``, ``md5``, ``resource``, ``winsound``, ``_ctypes_test``,
``_multiprocessing.posixshmem``, ``_scproxy``, ``_stat``,
``_testimportmultiple`` and ``_uuid`` C extensions are now built with the
:ref:`limited C API <limited-c-api>`. Patch by Victor Stinner.

..

.. date: 2023-11-13-22-35-27
.. gh-issue: 111856
.. nonce: vEtA5z
.. section: Windows

Fixes :func:`~os.fstat` on file systems that do not support file ID
requests. This includes FAT32 and exFAT.

..

.. date: 2023-10-25-05-01-28
.. gh-issue: 111293
.. nonce: FSsLT6
.. section: Windows

Fix :data:`os.DirEntry.inode` dropping higher 64 bits of a file id on some
filesystems on Windows.

..

.. date: 2023-10-19-21-46-18
.. gh-issue: 110913
.. nonce: CWlPfg
.. section: Windows

WindowsConsoleIO now correctly chunks large buffers without splitting up
UTF-8 sequences.

..

.. date: 2023-10-31-22-13-05
.. gh-issue: 59703
.. nonce: SML6Ag
.. section: macOS

For macOS framework builds, in ``getpath.c`` use the system ``dladdr``
function to find the path to the shared library rather than depending on
deprecated macOS APIs.

..

.. date: 2023-10-18-17-26-36
.. gh-issue: 110950
.. nonce: sonoma
.. section: macOS

Update macOS installer to include an upstream Tcl/Tk fix for the ``Secure
coding is not enabled for restorable state!`` warning encountered in Tkinter
on macOS 14 Sonoma.

..

.. date: 2023-10-18-01-40-36
.. gh-issue: 111015
.. nonce: NaLI2L
.. section: macOS

Ensure that IDLE.app and Python Launcher.app are installed with appropriate
permissions on macOS builds.

..

.. date: 2023-09-02-08-49-57
.. gh-issue: 71383
.. nonce: Ttkchg
.. section: macOS

Update macOS installer to include an upstream Tcl/Tk fix for the
``ttk::ThemeChanged`` error encountered in Tkinter.

..

.. date: 2023-08-30-16-33-57
.. gh-issue: 92603
.. nonce: ATkKVO
.. section: macOS

Update macOS installer to include a fix accepted by upstream Tcl/Tk for a
crash encountered after the first :meth:`tkinter.Tk` instance is destroyed.

..

.. bpo: 35668
.. date: 2019-01-07-06-18-25
.. nonce: JimxP5
.. section: IDLE

Add docstrings to the IDLE debugger module. Fix two bugs: initialize
``Idb.botframe`` (should be in Bdb); in ``Idb.in_rpc_code``, check whether
``prev_frame`` is ``None`` before trying to use it. Greatly expand test_debugger.

..

.. date: 2023-11-09-13-04-29
.. gh-issue: 111903
.. nonce: 7Prryr
.. section: Tools/Demos

Argument Clinic now supports the ``@critical_section`` directive that
instructs Argument Clinic to generate a critical section around the function
call, which locks the ``self`` object in ``--disable-gil`` builds. Patch by
Sam Gross.

..

.. date: 2023-11-15-18-36-21
.. gh-issue: 112026
.. nonce: _Yybr5
.. section: C API

Add again the private ``_PyThreadState_UncheckedGet()`` function as an alias
to the new public :c:func:`PyThreadState_GetUnchecked` function. Patch by
Victor Stinner.

..

.. date: 2023-11-15-17-10-09
.. gh-issue: 112026
.. nonce: ts9yyn
.. section: C API

Restore the removed ``_PyDict_GetItemStringWithError()`` function. It is
used by numpy. Patch by Victor Stinner.

..

.. date: 2023-11-15-16-07-57
.. gh-issue: 112026
.. nonce: bnr8dd
.. section: C API

Restore removed private C API functions, macros and structures which have no
simple replacement for now:

* _PyDict_GetItem_KnownHash()
* _PyDict_NewPresized()
* _PyHASH_BITS
* _PyHASH_IMAG
* _PyHASH_INF
* _PyHASH_MODULUS
* _PyHASH_MULTIPLIER
* _PyLong_Copy()
* _PyLong_FromDigits()
* _PyLong_New()
* _PyLong_Sign()
* _PyObject_CallMethodId()
* _PyObject_CallMethodNoArgs()
* _PyObject_CallMethodOneArg()
* _PyObject_CallOneArg()
* _PyObject_EXTRA_INIT
* _PyObject_FastCallDict()
* _PyObject_GetAttrId()
* _PyObject_Vectorcall()
* _PyObject_VectorcallMethod()
* _PyStack_AsDict()
* _PyThread_CurrentFrames()
* _PyUnicodeWriter structure
* _PyUnicodeWriter_Dealloc()
* _PyUnicodeWriter_Finish()
* _PyUnicodeWriter_Init()
* _PyUnicodeWriter_Prepare()
* _PyUnicodeWriter_PrepareKind()
* _PyUnicodeWriter_WriteASCIIString()
* _PyUnicodeWriter_WriteChar()
* _PyUnicodeWriter_WriteLatin1String()
* _PyUnicodeWriter_WriteStr()
* _PyUnicodeWriter_WriteSubstring()
* _PyUnicode_AsString()
* _PyUnicode_FromId()
* _PyVectorcall_Function()
* _Py_IDENTIFIER()
* _Py_c_abs()
* _Py_c_diff()
* _Py_c_neg()
* _Py_c_pow()
* _Py_c_prod()
* _Py_c_quot()
* _Py_c_sum()
* _Py_static_string()
* _Py_static_string_init()

Patch by Victor Stinner.

..

.. date: 2023-11-13-17-57-11
.. gh-issue: 112026
.. nonce: WJLJcI
.. section: C API

Add again ``<ctype.h>`` and ``<unistd.h>`` includes in ``Python.h``, but
don't include them in the limited C API version 3.13 and newer. Patch by
Victor Stinner.

..

.. date: 2023-11-10-10-24-28
.. gh-issue: 111956
.. nonce: ImE6Cx
.. section: C API

Add internal-only one-time initialization API: ``_PyOnceFlag`` and
``_PyOnceFlag_CallOnce``.

..

.. date: 2023-11-10-10-21-38
.. gh-issue: 111262
.. nonce: 2utB5m
.. section: C API

Add :c:func:`PyDict_Pop` and :c:func:`PyDict_PopString` functions: remove a
key from a dictionary and optionally return the removed value. This is
similar to :meth:`dict.pop`, but without the default value and not raising
:exc:`KeyError` if the key missing. Patch by Stefan Behnel and Victor
Stinner.

..

.. date: 2023-11-08-20-28-03
.. gh-issue: 111863
.. nonce: RPeFAX
.. section: C API

Rename ``Py_NOGIL`` to ``Py_GIL_DISABLED``. Patch by Hugo van Kemenade.

..

.. date: 2023-11-08-18-37-19
.. gh-issue: 111138
.. nonce: 3Ypq8h
.. section: C API

Add :c:func:`PyList_Extend` and :c:func:`PyList_Clear` functions: similar to
Python ``list.extend()`` and ``list.clear()`` methods. Patch by Victor
Stinner.

..

.. date: 2023-10-31-18-22-03
.. gh-issue: 108765
.. nonce: _beYv8
.. section: C API

On Windows, ``Python.h`` no longer includes the ``<stddef.h>`` standard
header file. If needed, it should now be included explicitly. Patch by
Victor Stinner.

..

.. date: 2023-10-31-14-58-17
.. gh-issue: 111569
.. nonce: _V8iu4
.. section: C API

Implement "Python Critical Sections" from :pep:`703`. These are macros to
help replace the GIL with per-object locks in the ``--disable-gil`` build of
CPython. The macros are no-ops in the default build.

..

.. date: 2023-10-30-18-13-01
.. gh-issue: 111506
.. nonce: EUdO22
.. section: C API

In the limited C API version 3.13, :c:func:`Py_SET_REFCNT` function is now
implemented as an opaque function call. Patch by Victor Stinner.

..

.. date: 2023-10-19-22-39-24
.. gh-issue: 108082
.. nonce: uJytvc
.. section: C API

Add :c:func:`PyErr_FormatUnraisable` function.

..

.. date: 2023-10-17-10-21-59
.. gh-issue: 110964
.. nonce: OxqEjd
.. section: C API

Move the undocumented private _PyArg functions and _PyArg_Parser structure
to internal C API (``pycore_modsupport.h``). Patch by Victor Stinner.

..

.. date: 2023-10-13-14-18-06
.. gh-issue: 110815
.. nonce: tEFLVl
.. section: C API

Support non-ASCII keyword names in :c:func:`PyArg_ParseTupleAndKeywords`.

..

.. date: 2023-10-02-23-08-53
.. gh-issue: 109587
.. nonce: UqqnDY
.. section: C API

Introduced :c:func:`PyUnstable_PerfTrampoline_CompileCode`,
:c:func:`PyUnstable_PerfTrampoline_SetPersistAfterFork` and
:c:func:`PyUnstable_CopyPerfMapFile`. These functions allow extension
modules to initialize trampolines eagerly, after the application is "warmed
up". This makes it possible to have perf-trampolines running in an
always-enabled fashion.

..

.. date: 2023-08-28-17-40-51
.. gh-issue: 85283
.. nonce: raFNiD
.. section: C API

Add the :c:func:`PySys_Audit` function to the limited C API. Patch by Victor
Stinner.

..

.. date: 2023-08-28-17-34-10
.. gh-issue: 85283
.. nonce: f1zXcc
.. section: C API

Add :c:func:`PyMem_RawMalloc`, :c:func:`PyMem_RawCalloc`,
:c:func:`PyMem_RawRealloc` and :c:func:`PyMem_RawFree` to the limited C API.
Patch by Victor Stinner.

..

.. date: 2023-07-12-12-14-52
.. gh-issue: 106672
.. nonce: fkRjmi
.. section: C API

Functions :c:func:`PyDict_GetItem`, :c:func:`PyDict_GetItemString`,
:c:func:`PyMapping_HasKey`, :c:func:`PyMapping_HasKeyString`,
:c:func:`PyObject_HasAttr`, :c:func:`PyObject_HasAttrString`, and
:c:func:`PySys_GetObject`, which clear all errors occurred during calling
the function, report now them using :func:`sys.unraisablehook`.

..

.. date: 2023-06-08-21-12-44
.. gh-issue: 67565
.. nonce: UkK3x-
.. section: C API

Remove redundant C-contiguity check in :file:`getargs.c`, :mod:`binascii`,
:mod:`ssl` and Argument Clinic. Patched by Stefan Krah and Furkan Onder
