.. date: 2024-01-02-19-52-23
.. gh-issue: 113659
.. nonce: DkmnQc
.. release date: 2024-01-17
.. section: Security

Skip ``.pth`` files with names starting with a dot or hidden file attribute.

..

.. date: 2023-12-06-14-06-59
.. gh-issue: 112302
.. nonce: 3bl20f
.. section: Security

Created a Software Bill-of-Materials document and tooling for tracking
dependencies.

..

.. date: 2024-01-11-16-54-55
.. gh-issue: 107901
.. nonce: Td3JPI
.. section: Core and Builtins

Compiler duplicates basic blocks that have an eval breaker check, no line
number, and multiple predecessors.

..

.. date: 2024-01-11-14-03-31
.. gh-issue: 107901
.. nonce: U65IyC
.. section: Core and Builtins

A jump leaving an exception handler back to normal code no longer checks the
eval breaker.

..

.. date: 2024-01-11-01-28-25
.. gh-issue: 113655
.. nonce: Mfioxp
.. section: Core and Builtins

Set the C recursion limit to 4000 on Windows, and 10000 on Linux/OSX. This
seems to be near the sweet spot to maintain safety, but not compromise
backwards compatibility.

..

.. date: 2024-01-09-23-01-00
.. gh-issue: 113710
.. nonce: pe3flY
.. section: Core and Builtins

Add typed stack effects to the interpreter DSL, along with various
instruction annotations.

..

.. date: 2024-01-08-14-34-02
.. gh-issue: 77046
.. nonce: sDUh2d
.. section: Core and Builtins

On Windows, file descriptors wrapping Windows handles are now created non
inheritable by default (:pep:`446`). Patch by Zackery Spytz and Victor
Stinner.

..

.. date: 2024-01-08-05-36-59
.. gh-issue: 113853
.. nonce: lm-6_a
.. section: Core and Builtins

Guarantee that all executors make progress. This then guarantees that tier 2
execution always makes progress.

..

.. date: 2024-01-05-21-28-48
.. gh-issue: 113753
.. nonce: 2HNiuq
.. section: Core and Builtins

Fix an issue where the finalizer of ``PyAsyncGenASend`` objects might not be
called if they were allocated from a free list.

..

.. date: 2024-01-05-00-49-14
.. gh-issue: 107901
.. nonce: 6JRrb6
.. section: Core and Builtins

Compiler changed so that synthetic jumps which are not at loop end no longer
check the eval breaker.

..

.. date: 2024-01-04-17-15-30
.. gh-issue: 113703
.. nonce: Zsk0pY
.. section: Core and Builtins

Fix a regression in the :mod:`codeop` module that was causing it to
incorrectly identify incomplete f-strings. Patch by Pablo Galindo

..

.. date: 2024-01-03-12-19-37
.. gh-issue: 89811
.. nonce: cZOj6d
.. section: Core and Builtins

Check for a valid ``tp_version_tag`` before performing bytecode
specializations that rely on this value being usable.

..

.. date: 2024-01-02-17-22-57
.. gh-issue: 111488
.. nonce: EJH3Oh
.. section: Core and Builtins

Changed error message in case of no 'in' keyword after 'for' in list
comprehensions

..

.. date: 2024-01-02-11-14-29
.. gh-issue: 113657
.. nonce: CQo9vF
.. section: Core and Builtins

Fix an issue that caused important instruction pointer updates to be
optimized out of tier two traces.

..

.. date: 2024-01-01-23-57-24
.. gh-issue: 113603
.. nonce: ySwovr
.. section: Core and Builtins

Fixed bug where a redundant NOP is not removed, causing an assertion to fail
in the compiler in debug mode.

..

.. date: 2024-01-01-00-07-02
.. gh-issue: 113602
.. nonce: cWuTzk
.. section: Core and Builtins

Fix an error that was causing the parser to try to overwrite existing errors
and crashing in the process. Patch by Pablo Galindo

..

.. date: 2023-12-31-07-46-01
.. gh-issue: 113486
.. nonce: uki19C
.. section: Core and Builtins

No longer issue spurious ``PY_UNWIND`` events for optimized calls to
classes.

..

.. date: 2023-12-20-18-27-11
.. gh-issue: 113297
.. nonce: BZyAI_
.. section: Core and Builtins

Fix segfault in the compiler on with statement with 19 context managers.

..

.. date: 2023-12-20-08-54-54
.. gh-issue: 113212
.. nonce: 62AUlw
.. section: Core and Builtins

Improve :py:class:`super` error messages.

..

.. date: 2023-12-19-22-03-43
.. gh-issue: 111375
.. nonce: M9vuA6
.. section: Core and Builtins

Only use ``NULL`` in the exception stack to indicate an exception was
handled. Patch by Carey Metcalfe.

..

.. date: 2023-12-15-16-26-01
.. gh-issue: 112215
.. nonce: xJS6_6
.. section: Core and Builtins

Increase the C recursion limit by a factor of 3 for non-debug builds, except
for webassembly and s390 platforms which are unchanged. This mitigates some
regressions in 3.12 with deep recursion mixing builtin (C) and Python code.

..

.. date: 2023-12-14-20-08-35
.. gh-issue: 113054
.. nonce: e20CtM
.. section: Core and Builtins

Fixed bug where a redundant NOP is not removed, causing an assertion to fail
in the compiler in debug mode.

..

.. date: 2023-12-13-11-45-53
.. gh-issue: 106905
.. nonce: 5dslTN
.. section: Core and Builtins

Use per AST-parser state rather than global state to track recursion depth
within the AST parser to prevent potential race condition due to
simultaneous parsing.

The issue primarily showed up in 3.11 by multithreaded users of
:func:`ast.parse`.  In 3.12 a change to when garbage collection can be
triggered prevented the race condition from occurring.

..

.. date: 2023-12-12-04-53-19
.. gh-issue: 108866
.. nonce: xbJ-9a
.. section: Core and Builtins

Change the API and contract of ``_PyExecutorObject`` to return the
next_instr pointer, instead of the frame, and to always execute at least one
instruction.

..

.. date: 2023-12-11-19-53-32
.. gh-issue: 90350
.. nonce: -FQy3E
.. section: Core and Builtins

Optimize builtin functions :func:`min` and :func:`max`.

..

.. date: 2023-12-11-00-50-00
.. gh-issue: 112943
.. nonce: RHNZie
.. section: Core and Builtins

Correctly compute end column offsets for multiline tokens in the
:mod:`tokenize` module. Patch by Pablo Galindo

..

.. date: 2023-12-07-13-19-55
.. gh-issue: 112125
.. nonce: 4ADN7i
.. section: Core and Builtins

Fix None.__ne__(None) returning NotImplemented instead of False

..

.. date: 2023-12-07-12-00-04
.. gh-issue: 74616
.. nonce: kgTGVb
.. section: Core and Builtins

:func:`input` now raises a ValueError when output on the terminal if the
prompt contains embedded null characters instead of silently truncating it.

..

.. date: 2023-12-05-20-41-58
.. gh-issue: 112716
.. nonce: hOcx0Y
.. section: Core and Builtins

Fix SystemError in the ``import`` statement and in ``__reduce__()`` methods
of builtin types when ``__builtins__`` is not a dict.

..

.. date: 2023-12-04-23-09-07
.. gh-issue: 112730
.. nonce: BXHlFa
.. section: Core and Builtins

Use color to highlight error locations in tracebacks. Patch by Pablo Galindo

..

.. date: 2023-12-03-19-34-51
.. gh-issue: 112625
.. nonce: QWTlwS
.. section: Core and Builtins

Fixes a bug where a bytearray object could be cleared while iterating over
an argument in the ``bytearray.join()`` method that could result in reading
memory after it was freed.

..

.. date: 2023-12-03-15-29-53
.. gh-issue: 112660
.. nonce: gldBvh
.. section: Core and Builtins

Do not clear unexpected errors during formatting error messages for
ImportError and AttributeError for modules.

..

.. date: 2023-12-01-19-02-21
.. gh-issue: 105967
.. nonce: Puq5Cn
.. section: Core and Builtins

Workaround a bug in Apple's macOS platform zlib library where
:func:`zlib.crc32` and :func:`binascii.crc32` could produce incorrect
results on multi-gigabyte inputs. Including when using :mod:`zipfile` on
zips containing large data.

..

.. date: 2023-12-01-08-16-10
.. gh-issue: 95754
.. nonce: ae4gwy
.. section: Core and Builtins

Provide a better error message when accessing invalid attributes on
partially initialized modules. The origin of the module being accessed is
now included in the message to help with the common issue of shadowing other
modules.

..

.. date: 2023-11-27-18-55-30
.. gh-issue: 112217
.. nonce: SwFLMj
.. section: Core and Builtins

Add check for the type of ``__cause__`` returned from calling the type ``T``
in ``raise from T``.

..

.. date: 2023-11-26-21-30-11
.. gh-issue: 111058
.. nonce: q4DqDY
.. section: Core and Builtins

Change coro.cr_frame/gen.gi_frame to return ``None`` after the
coroutine/generator has been closed. This fixes a bug where
:func:`~inspect.getcoroutinestate` and :func:`~inspect.getgeneratorstate`
return the wrong state for a closed coroutine/generator.

..

.. date: 2023-11-25-22-58-49
.. gh-issue: 112388
.. nonce: MU3cIM
.. section: Core and Builtins

Fix an error that was causing the parser to try to overwrite tokenizer
errors. Patch by pablo Galindo

..

.. date: 2023-11-25-22-39-44
.. gh-issue: 112387
.. nonce: AbBq5W
.. section: Core and Builtins

Fix error positions for decoded strings with backwards tokenize errors.
Patch by Pablo Galindo

..

.. date: 2023-11-25-20-36-38
.. gh-issue: 99606
.. nonce: fDY5hK
.. section: Core and Builtins

Make code generated for an empty f-string identical to the code of an empty
normal string.

..

.. date: 2023-11-24-14-10-57
.. gh-issue: 112367
.. nonce: 9z1IDp
.. section: Core and Builtins

Avoid undefined behaviour when using the perf trampolines by not freeing the
code arenas until shutdown. Patch by Pablo Galindo

..

.. date: 2023-11-22-13-17-54
.. gh-issue: 112320
.. nonce: EddM51
.. section: Core and Builtins

The Tier 2 translator now tracks the confidence level for staying "on trace"
(i.e. not exiting back to the Tier 1 interpreter) for branch instructions
based on the number of bits set in the branch "counter". Trace translation
ends when the confidence drops below 1/3rd.

..

.. date: 2023-09-21-11-54-28
.. gh-issue: 109598
.. nonce: CRidSy
.. section: Core and Builtins

:c:func:`PyComplex_RealAsDouble`/:c:func:`PyComplex_ImagAsDouble` now tries
to convert an object to a :class:`complex` instance using its
``__complex__()`` method before falling back to the ``__float__()`` method.
Patch by Sergey B Kirpichev.

..

.. date: 2022-07-07-05-37-53
.. gh-issue: 94606
.. nonce: hojJ54
.. section: Core and Builtins

Fix UnicodeEncodeError when :func:`email.message.get_payload` reads a
message with a Unicode surrogate character and the message content is not
well-formed for surrogateescape encoding. Patch by Sidney Markowitz.

..

.. bpo: 21861
.. date: 2022-01-23-18-00-10
.. nonce: N8E1zw
.. section: Core and Builtins

Use the object's actual class name in :meth:`_io.FileIO.__repr__`,
:meth:`_io._WindowsConsoleIO` and :meth:`_io.TextIOWrapper.__repr__`, to
make these methods subclass friendly.

..

.. bpo: 45369
.. date: 2021-10-05-05-00-16
.. nonce: tluk_X
.. section: Core and Builtins

Remove LibreSSL workarounds as per :pep:`644`.

..

.. bpo: 34392
.. date: 2018-08-13-13-25-15
.. nonce: 9kIlMF
.. section: Core and Builtins

Added :func:`sys._is_interned`.

..

.. date: 2024-01-15-12-12-54
.. gh-issue: 114077
.. nonce: KcVnfj
.. section: Library

Fix possible :exc:`OverflowError` in :meth:`socket.socket.sendfile` when
pass *count* larger than 2 GiB on 32-bit platform.

..

.. date: 2024-01-13-14-20-31
.. gh-issue: 111803
.. nonce: llpLAw
.. section: Library

:mod:`plistlib` now supports loading more deeply nested lists in binary
format.

..

.. date: 2024-01-13-11-34-29
.. gh-issue: 114014
.. nonce: WRHifN
.. section: Library

Fixed a bug in :class:`fractions.Fraction` where an invalid string using
``d`` in the decimals part creates a different error compared to other
invalid letters/characters. Patch by Jeremiah Gabriel Pascual.

..

.. date: 2024-01-11-22-22-51
.. gh-issue: 108364
.. nonce: QH7C-1
.. section: Library

:meth:`sqlite3.Connection.iterdump` now ensures that foreign key support is
disabled before dumping the database schema, if there is any foreign key
violation. Patch by Erlend E. Aasland and Mariusz Felisiak.

..

.. date: 2024-01-11-16-58-10
.. gh-issue: 113971
.. nonce: skJZ4g
.. section: Library

The :class:`zipfile.ZipInfo` previously protected ``._compresslevel``
attribute has been made public as ``.compress_level`` with the old
``_compresslevel`` name remaining available as a property to retain
compatibility.

..

.. date: 2024-01-10-12-03-38
.. gh-issue: 113877
.. nonce: RxKlrQ
.. section: Library

Fix :mod:`tkinter` method ``winfo_pathname()`` on 64-bit Windows.

..

.. date: 2024-01-09-18-07-08
.. gh-issue: 113868
.. nonce: DlZG2r
.. section: Library

Added :data:`mmap.MAP_NORESERVE`, :data:`mmap.MAP_NOEXTEND`,
:data:`mmap.MAP_HASSEMAPHORE`, :data:`mmap.MAP_NOCACHE`,
:data:`mmap.MAP_JIT`, :data:`mmap.MAP_RESILIENT_CODESIGN`,
:data:`mmap.MAP_RESILIENT_MEDIA`, :data:`mmap.MAP_32BIT`,
:data:`mmap.MAP_TRANSLATED_ALLOW_EXECUTE`, :data:`mmap.MAP_UNIX03` and
:data:`mmap.MAP_TPRO`. All of them are ``mmap(2)`` flags on macOS.

..

.. date: 2024-01-09-12-19-55
.. gh-issue: 113848
.. nonce: kXoCy0
.. section: Library

:func:`asyncio.TaskGroup()` and :func:`asyncio.timeout()` context managers
now handle :exc:`~asyncio.CancelledError` subclasses as well as exact
:exc:`!CancelledError`.

..

.. date: 2024-01-09-08-59-43
.. gh-issue: 113661
.. nonce: asvXSx
.. section: Library

unittest runner: Don't exit 5 if tests were skipped. The intention of
exiting 5 was to detect issues where the test suite wasn't discovered at
all. If we skipped tests, it was correctly discovered.

..

.. date: 2024-01-08-19-38-42
.. gh-issue: 96037
.. nonce: Yr2Y1C
.. section: Library

Insert :exc:`TimeoutError` in the context of the exception that was raised
during exiting an expired :func:`asyncio.timeout` block.

..

.. date: 2024-01-08-14-57-09
.. gh-issue: 113781
.. nonce: IoTnwi
.. section: Library

Silence unraisable AttributeError when warnings are emitted during Python
finalization.

..

.. date: 2024-01-07-23-31-44
.. gh-issue: 113238
.. nonce: wFWBfW
.. section: Library

Add ``Anchor`` to ``importlib.resources`` (in order for the code to comply
with the documentation)

..

.. date: 2024-01-07-13-36-03
.. gh-issue: 111693
.. nonce: xN2LuL
.. section: Library

:func:`asyncio.Condition.wait()` now re-raises the same
:exc:`CancelledError` instance that may have caused it to be interrupted.
Fixed race condition in :func:`asyncio.Semaphore.aquire` when interrupted
with a :exc:`CancelledError`.

..

.. date: 2024-01-07-11-45-56
.. gh-issue: 113791
.. nonce: XF5xSW
.. section: Library

Add ``CLOCK_MONOTONIC_RAW_APPROX`` and ``CLOCK_UPTIME_RAW_APPROX`` to
:mod:`time` on macOS. These are clocks available on macOS 10.12 or later.

..

.. date: 2024-01-07-00-56-41
.. gh-issue: 112932
.. nonce: OfhUu7
.. section: Library

Restore the ability for :mod:`zipfile` to ``extractall`` from zip files with
a "/" directory entry in them as is commonly added to zips by some wiki or
bug tracker data exporters.

..

.. date: 2024-01-05-21-52-59
.. gh-issue: 113568
.. nonce: _0FkpZ
.. section: Library

Raise deprecation warnings from :class:`pathlib.PurePath` and not its
private base class ``PurePathBase``.

..

.. date: 2024-01-05-12-42-07
.. gh-issue: 113594
.. nonce: 4t8HiR
.. section: Library

Fix :exc:`UnicodeEncodeError` in :mod:`email` when re-fold lines that
contain unknown-8bit encoded part followed by non-unknown-8bit encoded part.

..

.. date: 2024-01-03-14-19-26
.. gh-issue: 113538
.. nonce: ahuBCo
.. section: Library

In :meth:`asyncio.StreamReaderProtocol.connection_made`, there is callback
that logs an error if the task wrapping the "connected callback" fails. This
callback would itself fail if the task was cancelled. Prevent this by
checking whether the task was cancelled first. If so, close the transport
but don't log an error.

..

.. date: 2024-01-02-12-41-59
.. gh-issue: 113626
.. nonce: i1PPY_
.. section: Library

Add support for the *allow_code* argument in the :mod:`marshal` module.
Passing ``allow_code=False`` prevents serialization and de-serialization of
code objects which is incompatible between Python versions.

..

.. date: 2024-01-01-13-26-02
.. gh-issue: 85567
.. nonce: K4U15m
.. section: Library

Fix resource warnings for unclosed files in :mod:`pickle` and
:mod:`pickletools` command line interfaces.

..

.. date: 2023-12-30-20-30-05
.. gh-issue: 113537
.. nonce: v1W5_X
.. section: Library

Support loads ``str`` in :func:`plistlib.loads`.

..

.. date: 2023-12-29-22-29-34
.. gh-issue: 89850
.. nonce: KnxiZA
.. section: Library

Add default implementations of :meth:`pickle.Pickler.persistent_id` and
:meth:`pickle.Unpickler.persistent_load` methods in the C implementation.
Calling ``super().persistent_id()`` and ``super().persistent_load()`` in
subclasses of the C implementation of :class:`pickle.Pickler` and
:class:`pickle.Unpickler` classes no longer causes infinite recursion.

..

.. date: 2023-12-29-17-57-45
.. gh-issue: 113569
.. nonce: qcRCEI
.. section: Library

Indicate if there were no actual calls in unittest
:meth:`~unittest.mock.Mock.assert_has_calls` failure.

..

.. date: 2023-12-29-17-46-06
.. gh-issue: 101225
.. nonce: QaEyxF
.. section: Library

Increase the backlog for :class:`multiprocessing.connection.Listener`
objects created by :mod:`multiprocessing.manager` and
:mod:`multiprocessing.resource_sharer` to significantly reduce the risk of
getting a connection refused error when creating a
:class:`multiprocessing.connection.Connection` to them.

..

.. date: 2023-12-29-17-30-49
.. gh-issue: 113568
.. nonce: UpWNAI
.. section: Library

Raise audit events from :class:`pathlib.Path` and not its private base class
``PathBase``.

..

.. date: 2023-12-28-14-36-20
.. gh-issue: 113543
.. nonce: 2iWkOR
.. section: Library

Make sure that ``webbrowser.MacOSXOSAScript`` sends ``webbrowser.open``
audit event.

..

.. date: 2023-12-23-16-51-17
.. gh-issue: 113028
.. nonce: 3Jmdoj
.. section: Library

When a second reference to a string appears in the input to :mod:`pickle`,
and the Python implementation is in use, we are guaranteed that a single
copy gets pickled and a single object is shared when reloaded. Previously,
in protocol 0, when a string contained certain characters (e.g. newline) it
resulted in duplicate objects.

..

.. date: 2023-12-23-16-10-07
.. gh-issue: 113421
.. nonce: w7vs08
.. section: Library

Fix multiprocessing logger for ``%(filename)s``.

..

.. date: 2023-12-23-13-10-42
.. gh-issue: 111784
.. nonce: Nb4L1j
.. section: Library

Fix segfaults in the ``_elementtree`` module. Fix first segfault during
deallocation of ``_elementtree.XMLParser`` instances by keeping strong
reference to ``pyexpat`` module in module state for capsule lifetime. Fix
second segfault which happens in the same deallocation process  by keeping
strong reference to ``_elementtree`` module in ``XMLParser`` structure for
``_elementtree`` module lifetime.

..

.. date: 2023-12-22-20-49-52
.. gh-issue: 113407
.. nonce: C_O13_
.. section: Library

Fix import of :mod:`unittest.mock` when CPython is built without docstrings.

..

.. date: 2023-12-22-11-30-57
.. gh-issue: 113320
.. nonce: Vp5suS
.. section: Library

Fix regression in Python 3.12 where :class:`~typing.Protocol` classes that
were not marked as :func:`runtime-checkable <typing.runtime_checkable>`
would be unnecessarily introspected, potentially causing exceptions to be
raised if the protocol had problematic members. Patch by Alex Waygood.

..

.. date: 2023-12-21-23-47-42
.. gh-issue: 53502
.. nonce: dercJI
.. section: Library

Add a new option ``aware_datetime`` in :mod:`plistlib` to loads or dumps
aware datetime.

..

.. date: 2023-12-21-14-55-06
.. gh-issue: 113358
.. nonce: nRkiSL
.. section: Library

Fix rendering tracebacks with exceptions with a broken __getattr__

..

.. date: 2023-12-20-21-18-51
.. gh-issue: 113214
.. nonce: JcV9Mn
.. section: Library

Fix an ``AttributeError`` during asyncio SSL protocol aborts in SSL-over-SSL
scenarios.

..

.. date: 2023-12-18-09-47-54
.. gh-issue: 113246
.. nonce: em930H
.. section: Library

Update bundled pip to 23.3.2.

..

.. date: 2023-12-17-13-56-30
.. gh-issue: 87264
.. nonce: RgfHCv
.. section: Library

Fixed tarfile list() method to show file type.

..

.. date: 2023-12-17-10-22-55
.. gh-issue: 112182
.. nonce: jLWGlr
.. section: Library

:meth:`asyncio.futures.Future.set_exception()` now transforms
:exc:`StopIteration` into :exc:`RuntimeError` instead of hanging or other
misbehavior. Patch contributed by Jamie Phan.

..

.. date: 2023-12-17-04-43-57
.. gh-issue: 113225
.. nonce: dhxhiZ
.. section: Library

Speed up :meth:`pathlib.Path.glob` by using :attr:`os.DirEntry.path` where
possible.

..

.. date: 2023-12-16-23-56-42
.. gh-issue: 113149
.. nonce: 7LWgTS
.. section: Library

Improve error message when a JSON array or object contains a trailing comma.
Patch by Carson Radtke.

..

.. date: 2023-12-16-10-58-34
.. gh-issue: 113117
.. nonce: 0zF7bH
.. section: Library

The :mod:`subprocess` module can now use the :func:`os.posix_spawn` function
with ``close_fds=True`` on platforms where
``posix_spawn_file_actions_addclosefrom_np`` is available. Patch by Jakub
Kulik.

..

.. date: 2023-12-16-01-10-47
.. gh-issue: 113199
.. nonce: oDjnjL
.. section: Library

Make ``http.client.HTTPResponse.read1`` and
``http.client.HTTPResponse.readline`` close IO after reading all data when
content length is known. Patch by Illia Volochii.

..

.. date: 2023-12-15-21-33-42
.. gh-issue: 113191
.. nonce: Il155b
.. section: Library

Add support of :func:`os.fchmod` and a file descriptor in :func:`os.chmod`
on Windows.

..

.. date: 2023-12-15-20-29-49
.. gh-issue: 113188
.. nonce: AvoraB
.. section: Library

Fix :func:`shutil.copymode` and :func:`shutil.copystat` on Windows.
Previously they worked differenly if *dst* is a symbolic link: they modified
the permission bits of *dst* itself rather than the file it points to if
*follow_symlinks* is true or *src* is not a symbolic link, and did not
modify the permission bits if *follow_symlinks* is false and *src* is a
symbolic link.

..

.. date: 2023-12-15-18-13-59
.. gh-issue: 113119
.. nonce: al-569
.. section: Library

:func:`os.posix_spawn` now accepts ``env=None``, which makes the newly
spawned process use the current process environment. Patch by Jakub Kulik.

..

.. date: 2023-12-15-18-10-26
.. gh-issue: 113202
.. nonce: xv_Ww8
.. section: Library

Add a ``strict`` option to ``batched()`` in the ``itertools`` module.

..

.. date: 2023-12-15-12-35-28
.. gh-issue: 61648
.. nonce: G-4pz0
.. section: Library

Detect line numbers of properties in doctests.

..

.. date: 2023-12-15-09-51-41
.. gh-issue: 113175
.. nonce: RHsNwE
.. section: Library

Sync with importlib_metadata 7.0, including improved type annotations, fixed
issue with symlinked packages in ``package_distributions``, added
``EntryPoints.__repr__``, introduced the ``diagnose`` script, added
``Distribution.origin`` property, and removed deprecated ``EntryPoint``
access by numeric index (tuple behavior).

..

.. date: 2023-12-13-17-08-21
.. gh-issue: 59616
.. nonce: JNlWSs
.. section: Library

Add support of :func:`os.lchmod` and the *follow_symlinks* argument in
:func:`os.chmod` on Windows. Note that the default value of
*follow_symlinks* in :func:`!os.lchmod` is ``False`` on Windows.

..

.. date: 2023-12-12-20-15-57
.. gh-issue: 112559
.. nonce: IgXkje
.. section: Library

:func:`signal.signal` and :func:`signal.getsignal` no longer call ``repr``
on callable handlers. :func:`asyncio.run` and :meth:`asyncio.Runner.run` no
longer call ``repr`` on the task results. Patch by Yilei Yang.

..

.. date: 2023-12-12-16-32-55
.. gh-issue: 112962
.. nonce: ZZWXZn
.. section: Library

:mod:`dis` module functions add cache information to the
:class:`~dis.Instruction` instance rather than creating fake
:class:`~dis.Instruction` instances to represent the cache entries.

..

.. date: 2023-12-12-05-48-17
.. gh-issue: 112989
.. nonce: ZAa_eq
.. section: Library

Reduce overhead to connect sockets with :mod:`asyncio` SelectorEventLoop.

..

.. date: 2023-12-11-16-13-15
.. gh-issue: 112970
.. nonce: 87jmKP
.. section: Library

Use :c:func:`!closefrom` on Linux where available (e.g. glibc-2.34), rather
than only FreeBSD.

..

.. date: 2023-12-11-14-12-46
.. gh-issue: 110190
.. nonce: e0iEUa
.. section: Library

Fix ctypes structs with array on PPC64LE platform by setting
``MAX_STRUCT_SIZE`` to 64 in stgdict. Patch by Diego Russo.

..

.. date: 2023-12-08-11-17-17
.. gh-issue: 112540
.. nonce: Pm5egX
.. section: Library

The statistics.geometric_mean() function now returns zero for datasets
containing a zero.  Formerly, it would raise an exception.

..

.. date: 2023-12-07-16-55-41
.. gh-issue: 87286
.. nonce: MILC9_
.. section: Library

Added :const:`LOG_FTP`, :const:`LOG_NETINFO`, :const:`LOG_REMOTEAUTH`,
:const:`LOG_INSTALL`, :const:`LOG_RAS`, and :const:`LOG_LAUNCHD` tot the
:mod:`syslog` module, all of them constants on used on macOS.

..

.. date: 2023-12-06-16-01-33
.. gh-issue: 112800
.. nonce: TNsGJ-
.. section: Library

Fix :mod:`asyncio` ``SubprocessTransport.close()`` not to throw
``PermissionError`` when used with setuid executables.

..

.. date: 2023-12-06-14-06-14
.. gh-issue: 51944
.. nonce: -5qq_L
.. section: Library

Add the following constants to the :mod:`termios` module. These values are
present in macOS system headers: ``ALTWERASE``, ``B14400``, ``B28800``,
``B7200``, ``B76800``, ``CCAR_OFLOW``, ``CCTS_OFLOW``, ``CDSR_OFLOW``,
``CDTR_IFLOW``, ``CIGNORE``, ``CRTS_IFLOW``, ``EXTPROC``, ``IUTF8``,
``MDMBUF``, ``NL2``, ``NL3``, ``NOKERNINFO``, ``ONOEOT``, ``OXTABS``,
``VDSUSP``, ``VSTATUS``.

..

.. date: 2023-12-05-18-57-53
.. gh-issue: 79325
.. nonce: P2vMVK
.. section: Library

Fix an infinite recursion error in :func:`tempfile.TemporaryDirectory`
cleanup on Windows.

..

.. date: 2023-12-05-16-20-40
.. gh-issue: 94692
.. nonce: -e5C3c
.. section: Library

:func:`shutil.rmtree` now only catches OSError exceptions. Previously a
symlink attack resistant version of ``shutil.rmtree()`` could ignore or pass
to the error handler arbitrary exception when invalid arguments were
provided.

..

.. date: 2023-12-05-01-19-28
.. gh-issue: 112736
.. nonce: rdHDrU
.. section: Library

The use of del-safe symbols in ``subprocess`` was refactored to allow for
use in cross-platform build environments.

..

.. date: 2023-12-04-21-30-34
.. gh-issue: 112727
.. nonce: jpgNRB
.. section: Library

Speed up :meth:`pathlib.Path.absolute`. Patch by Barney Gale.

..

.. date: 2023-12-04-16-45-11
.. gh-issue: 74690
.. nonce: pQYP5U
.. section: Library

Speedup :func:`issubclass` checks against simple :func:`runtime-checkable
protocols <typing.runtime_checkable>` by around 6%. Patch by Alex Waygood.

..

.. date: 2023-12-04-14-05-24
.. gh-issue: 74690
.. nonce: eODKRm
.. section: Library

Speedup :func:`isinstance` checks by roughly 20% for
:func:`runtime-checkable protocols <typing.runtime_checkable>` that only
have one callable member. Speedup :func:`issubclass` checks for these
protocols by roughly 10%. Patch by Alex Waygood.

..

.. date: 2023-12-03-12-41-48
.. gh-issue: 112645
.. nonce: blMsKf
.. section: Library

Remove deprecation error on passing ``onerror`` to :func:`shutil.rmtree`.

..

.. date: 2023-12-03-11-15-53
.. gh-issue: 112640
.. nonce: -FVwP7
.. section: Library

Add ``kwdefaults`` parameter to :data:`types.FunctionType` to set default
keyword argument values.

..

.. date: 2023-12-03-01-01-52
.. gh-issue: 112622
.. nonce: 1Z8cpx
.. section: Library

Ensure ``name`` parameter is passed to event loop in
:func:`asyncio.create_task`.

..

.. date: 2023-12-02-12-55-17
.. gh-issue: 112618
.. nonce: 7_FT8-
.. section: Library

Fix a caching bug relating to :data:`typing.Annotated`. ``Annotated[str,
True]`` is no longer identical to ``Annotated[str, 1]``.

..

.. date: 2023-12-01-21-05-46
.. gh-issue: 112334
.. nonce: DmNXKh
.. section: Library

Fixed a performance regression in 3.12's :mod:`subprocess` on Linux where it
would no longer use the fast-path ``vfork()`` system call when it could have
due to a logic bug, instead falling back to the safe but slower ``fork()``.

Also fixed a second 3.12.0 potential security bug.  If a value of
``extra_groups=[]`` was passed to :mod:`subprocess.Popen` or related APIs,
the underlying ``setgroups(0, NULL)`` system call to clear the groups list
would not be made in the child process prior to ``exec()``.

This was identified via code inspection in the process of fixing the first
bug.

..

.. date: 2023-12-01-18-05-09
.. gh-issue: 110190
.. nonce: 5bf-c9
.. section: Library

Fix ctypes structs with array on Arm platform by setting ``MAX_STRUCT_SIZE``
to 32 in stgdict. Patch by Diego Russo.

..

.. date: 2023-12-01-16-09-59
.. gh-issue: 81194
.. nonce: FFad1c
.. section: Library

Fix a crash in :func:`socket.if_indextoname` with specific value (UINT_MAX).
Fix an integer overflow in :func:`socket.if_indextoname` on 64-bit
non-Windows platforms.

..

.. date: 2023-12-01-08-28-09
.. gh-issue: 112578
.. nonce: bfNbfi
.. section: Library

Fix a spurious :exc:`RuntimeWarning` when executing the :mod:`zipfile`
module.

..

.. date: 2023-11-29-10-51-41
.. gh-issue: 112516
.. nonce: rFKUKN
.. section: Library

Update the bundled copy of pip to version 23.3.1.

..

.. date: 2023-11-29-02-26-32
.. gh-issue: 112510
.. nonce: j-zXGc
.. section: Library

Add :data:`readline.backend` for the backend readline uses (``editline`` or
``readline``)

..

.. date: 2023-11-28-20-47-39
.. gh-issue: 112328
.. nonce: Z2AxEY
.. section: Library

[Enum] Make ``EnumDict``, ``EnumDict.member_names``,
``EnumType._add_alias_`` and ``EnumType._add_value_alias_`` public.

..

.. date: 2023-11-28-20-01-33
.. gh-issue: 112509
.. nonce: QtoKed
.. section: Library

Fix edge cases that could cause a key to be present in both the
``__required_keys__`` and ``__optional_keys__`` attributes of a
:class:`typing.TypedDict`. Patch by Jelle Zijlstra.

..

.. date: 2023-11-28-02-39-30
.. gh-issue: 101336
.. nonce: ya433z
.. section: Library

Add ``keep_alive`` keyword parameter for
:meth:`AbstractEventLoop.create_server` and
:meth:`BaseEventLoop.create_server`.

..

.. date: 2023-11-27-12-41-23
.. gh-issue: 63284
.. nonce: q2Qi9q
.. section: Library

Added support for TLS-PSK (pre-shared key) mode to the :mod:`ssl` module.

..

.. date: 2023-11-26-13-44-19
.. gh-issue: 112414
.. nonce: kx2E7S
.. section: Library

Fix regression in Python 3.12 where calling :func:`repr` on a module that
had been imported using a custom :term:`loader` could fail with
:exc:`AttributeError`. Patch by Alex Waygood.

..

.. date: 2023-11-26-13-26-56
.. gh-issue: 112358
.. nonce: smhaeZ
.. section: Library

Revert change to :class:`struct.Struct` initialization that broke some cases
of subclassing.

..

.. date: 2023-11-25-20-29-28
.. gh-issue: 112405
.. nonce: cOtzxC
.. section: Library

Optimize :meth:`pathlib.PurePath.relative_to`. Patch by Alex Waygood.

..

.. date: 2023-11-24-21-00-24
.. gh-issue: 94722
.. nonce: GMIQIn
.. section: Library

Fix bug where comparison between instances of :class:`~doctest.DocTest`
fails if one of them has ``None`` as its lineno.

..

.. date: 2023-11-24-09-27-01
.. gh-issue: 112361
.. nonce: kYtnHW
.. section: Library

Speed up a small handful of :mod:`pathlib` methods by removing some
temporary objects.

..

.. date: 2023-11-23-17-25-27
.. gh-issue: 112345
.. nonce: FFApHx
.. section: Library

Improve error message when trying to call :func:`issubclass` against a
:class:`typing.Protocol` that has non-method members. Patch by Randolf
Scholz.

..

.. date: 2023-11-23-12-37-22
.. gh-issue: 112137
.. nonce: kM46Q6
.. section: Library

Change :mod:`dis` output to display no-lineno as "--" instead of "None".

..

.. date: 2023-11-23-10-41-21
.. gh-issue: 112332
.. nonce: rhTBaa
.. section: Library

Deprecate the ``exc_type`` field of :class:`traceback.TracebackException`.
Add ``exc_type_str`` to replace it.

..

.. date: 2023-11-22-23-08-47
.. gh-issue: 81620
.. nonce: mfZ2Wf
.. section: Library

Add extra tests for :func:`random.binomialvariate`

..

.. date: 2023-11-22-19-43-54
.. gh-issue: 112292
.. nonce: 5nDU87
.. section: Library

Fix a crash in :mod:`readline` when imported from a sub interpreter. Patch
by Anthony Shaw

..

.. date: 2023-11-21-02-58-14
.. gh-issue: 77621
.. nonce: MYv5XS
.. section: Library

Slightly improve the import time of the :mod:`pathlib` module by deferring
some imports. Patch by Barney Gale.

..

.. date: 2023-11-16-17-18-09
.. gh-issue: 112137
.. nonce: QvjGjN
.. section: Library

Change :mod:`dis` output to display logical labels for jump targets instead
of offsets.

..

.. date: 2023-11-16-10-42-15
.. gh-issue: 112139
.. nonce: WpHosf
.. section: Library

Add :meth:`Signature.format` to format signatures to string with extra
options. And use it in :mod:`pydoc` to render more readable signatures that
have new lines between parameters.

..

.. date: 2023-11-15-04-53-37
.. gh-issue: 112105
.. nonce: I3RcVN
.. section: Library

Make :func:`readline.set_completer_delims` work with libedit

..

.. date: 2023-11-15-01-36-04
.. gh-issue: 106922
.. nonce: qslOVH
.. section: Library

Display multiple lines with ``traceback`` when errors span multiple lines.

..

.. date: 2023-11-09-11-07-34
.. gh-issue: 111874
.. nonce: dzYc3j
.. section: Library

When creating a :class:`typing.NamedTuple` class, ensure
:func:`~object.__set_name__` is called on all objects that define
``__set_name__`` and exist in the values of the ``NamedTuple`` class's class
dictionary. Patch by Alex Waygood.

..

.. date: 2023-11-08-18-53-07
.. gh-issue: 68166
.. nonce: 1iTh4Y
.. section: Library

Add support of the "vsapi" element type in
:meth:`tkinter.ttk.Style.element_create`.

..

.. date: 2023-11-08-16-11-04
.. gh-issue: 110275
.. nonce: Bm6GwR
.. section: Library

Named tuple's methods ``_replace()`` and ``__replace__()`` now raise
TypeError instead of ValueError for invalid keyword arguments.

..

.. date: 2023-11-05-20-09-27
.. gh-issue: 99367
.. nonce: HLaWKo
.. section: Library

Do not mangle ``sys.path[0]`` in :mod:`pdb` if safe_path is set

..

.. date: 2023-11-02-10-13-31
.. gh-issue: 111615
.. nonce: 3SMixi
.. section: Library

Fix a regression caused by a fix to gh-93162 whereby you couldn't configure
a :class:`QueueHandler` without specifying handlers.

..

.. date: 2023-10-25-16-37-13
.. gh-issue: 75666
.. nonce: BpsWut
.. section: Library

Fix the behavior of :mod:`tkinter` widget's ``unbind()`` method with two
arguments. Previously, ``widget.unbind(sequence, funcid)`` destroyed the
current binding for *sequence*, leaving *sequence* unbound, and deleted the
*funcid* command. Now it removes only *funcid* from the binding for
*sequence*, keeping other commands, and deletes the *funcid* command. It
leaves *sequence* unbound only if *funcid* was the last bound command.

..

.. date: 2023-10-25-13-07-53
.. gh-issue: 67790
.. nonce: jMn9Ad
.. section: Library

Implement basic formatting support (minimum width, alignment, fill) for
:class:`fractions.Fraction`.

..

.. date: 2023-10-23-18-42-26
.. gh-issue: 111049
.. nonce: Ys7-o_
.. section: Library

Fix crash during garbage collection of the :class:`io.BytesIO` buffer
object.

..

.. date: 2023-10-23-03-49-34
.. gh-issue: 102980
.. nonce: aXBd54
.. section: Library

Redirect the output of ``interact`` command of :mod:`pdb` to the same
channel as the debugger. Add tests and improve docs.

..

.. date: 2023-10-20-15-28-08
.. gh-issue: 102988
.. nonce: dStNO7
.. section: Library

:func:`email.utils.getaddresses` and :func:`email.utils.parseaddr` now
return ``('', '')`` 2-tuples in more situations where invalid email
addresses are encountered instead of potentially inaccurate values. Add
optional *strict* parameter to these two functions: use ``strict=False`` to
get the old behavior, accept malformed inputs. ``getattr(email.utils,
'supports_strict_parsing', False)`` can be use to check if the *strict*
paramater is available. Patch by Thomas Dwyer and Victor Stinner to improve
the CVE-2023-27043 fix.

..

.. date: 2023-10-17-16-11-03
.. gh-issue: 52161
.. nonce: WBYyCJ
.. section: Library

:meth:`cmd.Cmd.do_help` now cleans docstrings with :func:`inspect.cleandoc`
before writing them. Patch by Filip Łapkiewicz.

..

.. date: 2023-10-12-18-19-47
.. gh-issue: 82300
.. nonce: P8-O38
.. section: Library

Add ``track`` parameter to
:class:`multiprocessing.shared_memory.SharedMemory` that allows using shared
memory blocks without having to register with the POSIX resource tracker
that automatically releases them upon process exit.

..

.. date: 2023-10-11-02-34-01
.. gh-issue: 110109
.. nonce: RFCmHs
.. section: Library

Add private ``pathlib._PurePathBase`` class: a base class for
:class:`pathlib.PurePath` that omits certain magic methods. It may be made
public (along with ``_PathBase``) in future.

..

.. date: 2023-09-28-13-15-51
.. gh-issue: 109858
.. nonce: 43e2dg
.. section: Library

Protect :mod:`zipfile` from "quoted-overlap" zipbomb. It now raises
BadZipFile when try to read an entry that overlaps with other entry or
central directory.

..

.. date: 2023-09-23-14-40-51
.. gh-issue: 109786
.. nonce: UX3pKv
.. section: Library

Fix possible reference leaks and crash when re-enter the ``__next__()``
method of :class:`itertools.pairwise`.

..

.. date: 2023-09-01-15-33-18
.. gh-issue: 91539
.. nonce: xoNLEI
.. section: Library

Small (10 - 20%) and trivial performance improvement of
:func:`urrlib.request.getproxies_environment`, typically useful when there
are many environment variables to go over.

..

.. date: 2023-08-14-21-10-52
.. gh-issue: 103363
.. nonce: u64_QI
.. section: Library

Add *follow_symlinks* keyword-only argument to :meth:`pathlib.Path.owner`
and :meth:`~pathlib.Path.group`, defaulting to ``True``.

..

.. date: 2023-08-07-21-11-24
.. gh-issue: 102130
.. nonce: _UyI5i
.. section: Library

Support tab completion in :mod:`cmd` for ``editline``.

..

.. date: 2023-08-04-18-43-21
.. gh-issue: 99437
.. nonce: Et8hu8
.. section: Library

:func:`runpy.run_path` now decodes path-like objects, making sure __file__
and sys.argv[0] of the module being run are always strings.

..

.. date: 2023-04-29-20-49-13
.. gh-issue: 104003
.. nonce: -8Ruk2
.. section: Library

Add :func:`warnings.deprecated`, a decorator to mark deprecated functions to
static type checkers and to warn on usage of deprecated classes and
functions. See :pep:`702`. Patch by Jelle Zijlstra.

..

.. date: 2023-04-23-11-08-02
.. gh-issue: 103708
.. nonce: Y17C7p
.. section: Library

Make hardcoded python name, a configurable parameter so that different
implementations of python can override it instead of making huge diffs in
sysconfig.py

..

.. date: 2023-04-09-21-05-43
.. gh-issue: 66515
.. nonce: 0DS8Ya
.. section: Library

:class:`mailbox.MH` now supports folders that do not contain a
``.mh_sequences`` file (e.g. Claws Mail IMAP-cache folders). Patch by Serhiy
Storchaka.

..

.. date: 2023-02-08-00-43-29
.. gh-issue: 83162
.. nonce: ufdI9F
.. section: Library

Renamed :exc:`!re.error` to :exc:`PatternError` for clarity, and kept
:exc:`!re.error` for backward compatibility. Patch by Matthias Bussonnier
and Adam Chhina.

..

.. date: 2022-12-01-16-57-44
.. gh-issue: 91133
.. nonce: LKMVCV
.. section: Library

Fix a bug in :class:`tempfile.TemporaryDirectory` cleanup, which now no
longer dereferences symlinks when working around file system permission
errors.

..

.. bpo: 43153
.. date: 2021-12-06-22-10-53
.. nonce: J7mjSy
.. section: Library

On Windows, ``tempfile.TemporaryDirectory`` previously masked a
``PermissionError`` with ``NotADirectoryError`` during directory cleanup. It
now correctly raises ``PermissionError`` if errors are not ignored. Patch by
Andrei Kulakov and Ken Jin.

..

.. bpo: 32731
.. date: 2021-11-23-22-22-49
.. nonce: kNOASr
.. section: Library

:func:`getpass.getuser` now raises :exc:`OSError` for all failures rather
than :exc:`ImportError` on systems lacking the :mod:`pwd` module or
:exc:`KeyError` if the password database is empty.

..

.. bpo: 34321
.. date: 2021-04-15-10-41-51
.. nonce: 36m6_l
.. section: Library

:class:`mmap.mmap` now has a *trackfd* parameter on Unix; if it is
``False``, the file descriptor specified by *fileno* will not be duplicated.

..

.. bpo: 35332
.. date: 2020-12-14-09-31-13
.. nonce: s22wAx
.. section: Library

The :func:`shutil.rmtree` function now ignores errors when calling
:func:`os.close` when *ignore_errors* is ``True``, and :func:`os.close` no
longer retried after error.

..

.. bpo: 35928
.. date: 2020-10-03-23-47-28
.. nonce: E0iPAa
.. section: Library

:class:`io.TextIOWrapper` now correctly handles the decoding buffer after
``read()`` and ``write()``.

..

.. bpo: 26791
.. date: 2020-08-06-14-43-55
.. nonce: KxoEfO
.. section: Library

:func:`shutil.move` now moves a symlink into a directory when that directory
is the target of the symlink.  This provides the same behavior as the mv
shell command.  The previous behavior raised an exception.  Patch by Jeffrey
Kintscher.

..

.. bpo: 41422
.. date: 2020-07-28-20-48-05
.. nonce: iMwnMu
.. section: Library

Fixed memory leaks of :class:`pickle.Pickler` and :class:`pickle.Unpickler`
involving cyclic references via the internal memo mapping.

..

.. bpo: 19821
.. date: 2020-06-15-23-44-53
.. nonce: ihBk39
.. section: Library

The :func:`!pydoc.ispackage` function has been deprecated.

..

.. bpo: 40262
.. date: 2020-05-21-23-32-46
.. nonce: z4fQv1
.. section: Library

The :meth:`ssl.SSLSocket.recv_into` method no longer requires the *buffer*
argument to implement ``__len__`` and supports buffers with arbitrary item
size.

..

.. bpo: 39912
.. date: 2020-03-09-15-08-29
.. nonce: xPOBBY
.. section: Library

:func:`warnings.filterwarnings()` and :func:`warnings.simplefilter()` now
raise appropriate exceptions instead of ``AssertionError``. Patch
contributed by Rémi Lapeyre.

..

.. bpo: 37260
.. date: 2019-06-14-22-37-32
.. nonce: oecdIf
.. section: Library

Fixed a race condition in :func:`shutil.rmtree` in which directory entries
removed by another process or thread while ``shutil.rmtree()`` is running
can cause it to raise FileNotFoundError.  Patch by Jeffrey Kintscher.

..

.. bpo: 36959
.. date: 2019-05-18-15-50-14
.. nonce: ew6WZ4
.. section: Library

Fix some error messages for invalid ISO format string combinations in
``strptime()`` that referred to directives not contained in the format
string. Patch by Gordon P. Hemsley.

..

.. bpo: 18060
.. date: 2019-05-17-07-22-33
.. nonce: 5mqTQM
.. section: Library

Fixed a class inheritance issue that can cause segfaults when deriving two
or more levels of subclasses from a base class of Structure or Union.

..

.. bpo: 29779
.. date: 2019-05-08-13-14-11
.. nonce: jg33dp
.. section: Library

Add a new :envvar:`PYTHON_HISTORY` environment variable to set the location
of a ``.python_history`` file.

..

.. bpo: 21360
.. date: 2019-02-12-16-12-54
.. nonce: gkSSfx
.. section: Library

:class:`mailbox.Maildir` now ignores files with a leading dot.

..

.. date: 2023-11-30-02-33-59
.. gh-issue: 111699
.. nonce: _O5G_y
.. section: Documentation

Relocate ``smtpd`` deprecation notice to its own section rather than under
``locale`` in What's New in Python 3.12 document

..

.. date: 2023-10-23-23-43-43
.. gh-issue: 110746
.. nonce: yg77IE
.. section: Documentation

Improved markup for valid options/values for methods ttk.treeview.column and
ttk.treeview.heading, and for Layouts.

..

.. date: 2023-08-01-13-11-39
.. gh-issue: 95649
.. nonce: F4KhPS
.. section: Documentation

Document that the :mod:`asyncio` module contains code taken from `v0.16.0 of
the uvloop project <https://github.com/MagicStack/uvloop/tree/v0.16.0>`_, as
well as the required MIT licensing information.

..

.. date: 2024-01-12-14-34-24
.. gh-issue: 111798
.. nonce: hd9B_-
.. section: Tests

Disable ``test_super_deep()`` from ``test_call`` under pydebug builds on
WASI; the stack depth is too small to make the test useful.

..

.. date: 2024-01-12-13-19-12
.. gh-issue: 111801
.. nonce: 9hh9DY
.. section: Tests

Lower the recursion limit in ``test_isinstance`` for
``test_infinitely_many_bases()``. This prevents a stack overflow on a
pydebug build of WASI.

..

.. date: 2024-01-12-12-45-24
.. gh-issue: 111802
.. nonce: gN41vt
.. section: Tests

Specify a low recursion depth for ``test_bad_getattr()`` in
``test.pickletester`` to avoid exhausting the stack under a pydebug build
for WASI.

..

.. date: 2024-01-08-21-15-48
.. gh-issue: 44626
.. nonce: DRq-PR
.. section: Tests

Fix :func:`os.path.isabs` incorrectly returning ``True`` when given a path
that starts with exactly one (back)slash on Windows.

Fix :meth:`pathlib.PureWindowsPath.is_absolute` incorrectly returning
``False`` for some paths beginning with two (back)slashes.

..

.. date: 2024-01-01-14-40-02
.. gh-issue: 113633
.. nonce: VOY5ai
.. section: Tests

Use module state for the _testcapi extension module.

..

.. date: 2023-12-09-21-27-46
.. gh-issue: 109980
.. nonce: y--500
.. section: Tests

Fix ``test_tarfile_vs_tar`` in ``test_shutil`` for macOS, where system tar
can include more information in the archive than :mod:`shutil.make_archive`.

..

.. date: 2023-12-05-19-50-03
.. gh-issue: 112769
.. nonce: kdLJmS
.. section: Tests

The tests now correctly compare zlib version when
:const:`zlib.ZLIB_RUNTIME_VERSION` contains non-integer suffixes. For
example zlib-ng defines the version as ``1.3.0.zlib-ng``.

..

.. date: 2023-12-04-15-56-11
.. gh-issue: 112334
.. nonce: FFc9Ti
.. section: Tests

Adds a regression test to verify that ``vfork()`` is used when expected by
:mod:`subprocess` on vfork enabled POSIX systems (Linux).

..

.. date: 2023-09-05-20-46-35
.. gh-issue: 108927
.. nonce: TpwWav
.. section: Tests

Fixed order dependence in running tests in the same process when a test that
has submodules (e.g. test_importlib) follows a test that imports its
submodule (e.g. test_importlib.util) and precedes a test (e.g. test_unittest
or test_compileall) that uses that submodule.

..

.. bpo: 40648
.. date: 2020-05-16-18-00-21
.. nonce: p2uPqy
.. section: Tests

Test modes that file can get with chmod() on Windows.

..

.. date: 2024-01-15-16-58-43
.. gh-issue: 114013
.. nonce: FoSeQf
.. section: Build

Fix ``Tools/wasm/wasi.py`` to not include the path to ``python.wasm`` as
part of ``HOSTRUNNER``. The environment variable is meant to specify how to
run the WASI host only, having ``python.wasm`` and relevant flags appended
to the ``HOSTRUNNER``. This fixes ``make test`` work.

..

.. date: 2023-12-23-09-35-48
.. gh-issue: 113258
.. nonce: GlsAyH
.. section: Build

Changed the Windows build to write out generated frozen modules into the
build tree instead of the source tree.

..

.. date: 2023-12-21-05-35-06
.. gh-issue: 112305
.. nonce: VfqQPx
.. section: Build

Fixed the ``check-clean-src`` step performed on out of tree builds to detect
errant ``$(srcdir)/Python/frozen_modules/*.h`` files and recommend
appropriate source tree cleanup steps to get a working build again.

..

.. date: 2023-12-17-18-23-02
.. gh-issue: 112536
.. nonce: 8lr3Ep
.. section: Build

Add support for thread sanitizer (TSAN)

..

.. date: 2023-12-08-11-33-37
.. gh-issue: 112867
.. nonce: ZzDfXQ
.. section: Build

Fix the build for the case that WITH_PYMALLOC_RADIX_TREE=0 set.

..

.. date: 2023-11-27-13-55-47
.. gh-issue: 103065
.. nonce: o72OiA
.. section: Build

Introduce ``Tools/wasm/wasi.py`` to simplify doing a WASI build.

..

.. bpo: 11102
.. date: 2020-05-01-23-44-31
.. nonce: Fw9zeS
.. section: Build

The :func:`os.major`, :func:`os.makedev`, and :func:`os.minor` functions are
now available on HP-UX v3.

..

.. bpo: 36351
.. date: 2020-01-11-23-49-17
.. nonce: ce8BBh
.. section: Build

Do not set ipv6type when cross-compiling.

..

.. date: 2024-01-15-23-53-25
.. gh-issue: 114096
.. nonce: G-Myja
.. section: Windows

Process privileges that are activated for creating directory junctions are
now restored afterwards, avoiding behaviour changes in other parts of the
program.

..

.. date: 2024-01-04-21-16-31
.. gh-issue: 111877
.. nonce: fR-B4c
.. section: Windows

:func:`os.stat` calls were returning incorrect time values for files that
could not be accessed directly.

..

.. date: 2023-12-19-10-56-46
.. gh-issue: 111973
.. nonce: A9Wtsb
.. section: Windows

Update Windows installer to use SQLite 3.44.2.

..

.. date: 2023-12-14-19-00-29
.. gh-issue: 113009
.. nonce: 6LNdjz
.. section: Windows

:mod:`multiprocessing`: On Windows, fix a race condition in
``Process.terminate()``: no longer set the ``returncode`` attribute to
always call ``WaitForSingleObject()`` in ``Process.wait()``.  Previously,
sometimes the process was still running after ``TerminateProcess()`` even if
``GetExitCodeProcess()`` is not ``STILL_ACTIVE``. Patch by Victor Stinner.

..

.. date: 2023-12-12-20-58-09
.. gh-issue: 86179
.. nonce: YYSk_6
.. section: Windows

Fixes path calculations when launching Python on Windows through a symlink.

..

.. date: 2023-12-11-20-23-04
.. gh-issue: 71383
.. nonce: 9pZh6t
.. section: Windows

Update Tcl/Tk in Windows installer to 8.6.13 with a patch to suppress
incorrect ThemeChanged warnings.

..

.. date: 2023-12-05-22-56-30
.. gh-issue: 111650
.. nonce: xlWmvM
.. section: Windows

Ensures the ``Py_GIL_DISABLED`` preprocessor variable is defined in
:file:`pyconfig.h` so that extension modules written in C are able to use
it.

..

.. date: 2023-12-03-19-22-37
.. gh-issue: 112278
.. nonce: FiloCE
.. section: Windows

Reduce the time cost for some functions in :mod:`platform` on Windows if
current user has no permission to the WMI.

..

.. date: 2023-08-08-01-42-14
.. gh-issue: 73427
.. nonce: WOpiNt
.. section: Windows

Deprecate :func:`sys._enablelegacywindowsfsencoding`. Use
:envvar:`PYTHONLEGACYWINDOWSFSENCODING` instead. Patch by Inada Naoki.

..

.. date: 2023-03-15-23-53-45
.. gh-issue: 87868
.. nonce: 4C36oQ
.. section: Windows

Correctly sort and remove duplicate environment variables in
:py:func:`!_winapi.CreateProcess`.

..

.. bpo: 37308
.. date: 2019-06-16-11-27-05
.. nonce: Iz_NU_
.. section: Windows

Fix mojibake in :class:`mmap.mmap` when using a non-ASCII *tagname* argument
on Windows.

..

.. date: 2024-01-02-22-25-21
.. gh-issue: 113666
.. nonce: xKZoBm
.. section: macOS

Add the following constants to module :mod:`stat`: ``UF_SETTABLE``,
``UF_TRACKED``, ``UF_DATAVAULT``, ``SF_SUPPORTED``, ``SF_SETTABLE``,
``SF_SYNTHETIC``, ``SF_RESTRICTED``, ``SF_FIRMLINK`` and ``SF_DATALESS``.
The values ``UF_SETTABLE``, ``SF_SUPPORTED``, ``SF_SETTABLE`` and
``SF_SYNTHETIC`` are only available on macOS.

..

.. date: 2023-12-28-12-18-39
.. gh-issue: 113536
.. nonce: 0ythg7
.. section: macOS

:func:`os.waitid` is now available on macOS

..

.. date: 2023-12-23-22-41-07
.. gh-issue: 110459
.. nonce: NaMBJy
.. section: macOS

Running ``configure ... --with-openssl-rpath=X/Y/Z`` no longer fails to
detect OpenSSL on macOS.

..

.. date: 2023-12-21-11-53-47
.. gh-issue: 74573
.. nonce: MA6Vys
.. section: macOS

Document that :mod:`dbm.ndbm` can silently corrupt DBM files on updates when
exceeding undocumented platform limits, and can crash (segmentation fault)
when reading such a corrupted file. (FB8919203)

..

.. date: 2023-12-21-10-20-41
.. gh-issue: 65701
.. nonce: Q2hNbN
.. section: macOS

The :program:`freeze` tool doesn't work with framework builds of Python.
Document this and bail out early when running the tool with such a build.

..

.. date: 2023-12-21-09-41-42
.. gh-issue: 87277
.. nonce: IF6EZZ
.. section: macOS

webbrowser: Don't look for X11 browsers on macOS. Those are generally not
used and probing for them can result in starting XQuartz even if it isn't
used otherwise.

..

.. date: 2023-12-19-10-50-08
.. gh-issue: 111973
.. nonce: HMHJfy
.. section: macOS

Update macOS installer to use SQLite 3.44.2.

..

.. date: 2023-12-16-11-45-32
.. gh-issue: 108269
.. nonce: wVgCHF
.. section: macOS

Set ``CFBundleAllowMixedLocalizations`` to true in the Info.plist for the
framework, embedded Python.app and IDLE.app with framework installs on
macOS.  This allows applications to pick up the user's preferred locale when
that's different from english.

..

.. date: 2023-12-10-20-30-06
.. gh-issue: 102362
.. nonce: y8svbF
.. section: macOS

Make sure the result of :func:`sysconfig.get_plaform` includes at least a
major and minor versions, even if ``MACOSX_DEPLOYMENT_TARGET`` is set to
only a major version during build to match the format expected by pip.

..

.. date: 2023-12-07-15-53-16
.. gh-issue: 110017
.. nonce: UMYzMR
.. section: macOS

Disable a signal handling stress test on macOS due to a bug in macOS
(FB13453490).

..

.. date: 2023-12-07-14-19-46
.. gh-issue: 110820
.. nonce: DIxb_F
.. section: macOS

Make sure the preprocessor definitions for ``ALIGNOF_MAX_ALIGN_T``,
``SIZEOF_LONG_DOUBLE`` and ``HAVE_GCC_ASM_FOR_X64`` are correct for
Universal 2 builds on macOS.

..

.. date: 2023-12-06-12-11-13
.. gh-issue: 109981
.. nonce: mOHg10
.. section: macOS

Use ``/dev/fd`` on macOS to determine the number of open files in
``test.support.os_helper.fd_count`` to avoid a crash with "guarded" file
descriptors when probing for open files.

..

.. date: 2024-01-17-02-15-33
.. gh-issue: 72284
.. nonce: cAQiYO
.. section: IDLE

Improve the lists of features, editor key bindings, and shell key bingings
in the IDLE doc.

..

.. date: 2024-01-11-21-26-58
.. gh-issue: 113903
.. nonce: __GLlQ
.. section: IDLE

Fix rare failure of test.test_idle, in test_configdialog.

..

.. date: 2024-01-05-12-24-01
.. gh-issue: 113729
.. nonce: qpluea
.. section: IDLE

Fix the "Help -> IDLE Doc" menu bug in 3.11.7 and 3.12.1.

..

.. date: 2023-12-19-00-03-12
.. gh-issue: 113269
.. nonce: lrU-IC
.. section: IDLE

Fix test_editor hang on macOS Catalina.

..

.. date: 2023-12-10-20-01-11
.. gh-issue: 112898
.. nonce: 98aWv2
.. section: IDLE

Fix processing unsaved files when quitting IDLE on macOS.

..

.. bpo: 13586
.. date: 2019-12-13-12-26-56
.. nonce: 1grqsR
.. section: IDLE

Enter the selected text when opening the "Replace" dialog.

..

.. date: 2023-12-02-02-08-11
.. gh-issue: 106560
.. nonce: THvuji
.. section: C API

Fix redundant declarations in the public C API. Declare PyBool_Type,
PyLong_Type and PySys_Audit() only once. Patch by Victor Stinner.

..

.. date: 2023-11-27-09-44-16
.. gh-issue: 112438
.. nonce: GdNZiI
.. section: C API

Fix support of format units "es", "et", "es#", and "et#" in nested tuples in
:c:func:`PyArg_ParseTuple`-like functions.

..

.. date: 2023-11-15-01-26-59
.. gh-issue: 111545
.. nonce: iAoFtA
.. section: C API

Add :c:func:`Py_HashPointer` function to hash a pointer. Patch by Victor
Stinner.

..

.. date: 2023-06-21-11-53-09
.. gh-issue: 65210
.. nonce: PhFRBJ
.. section: C API

Change the declaration of the *keywords* parameter of
:c:func:`PyArg_ParseTupleAndKeywords` and
:c:func:`PyArg_VaParseTupleAndKeywords` for better compatibility with C++.
