diff options
author | Thomas Wouters <thomas@python.org> | 2023-10-13 08:50:46 (GMT) |
---|---|---|
committer | Thomas Wouters <thomas@python.org> | 2023-10-13 08:52:10 (GMT) |
commit | ad056f03aee8000a1564a1d17f655f8713c48e48 (patch) | |
tree | cb6274fc5d29d315836ca839e0765322c109ef07 /Misc/NEWS.d/3.13.0a1.rst | |
parent | b7f9661bc12fdfec98684c89f03177ae5d3d74c1 (diff) | |
download | cpython-ad056f03aee8000a1564a1d17f655f8713c48e48.zip cpython-ad056f03aee8000a1564a1d17f655f8713c48e48.tar.gz cpython-ad056f03aee8000a1564a1d17f655f8713c48e48.tar.bz2 |
Python 3.13.0a1v3.13.0a1
Diffstat (limited to 'Misc/NEWS.d/3.13.0a1.rst')
-rw-r--r-- | Misc/NEWS.d/3.13.0a1.rst | 6748 |
1 files changed, 6748 insertions, 0 deletions
diff --git a/Misc/NEWS.d/3.13.0a1.rst b/Misc/NEWS.d/3.13.0a1.rst new file mode 100644 index 0000000..102bddc --- /dev/null +++ b/Misc/NEWS.d/3.13.0a1.rst @@ -0,0 +1,6748 @@ +.. date: 2023-08-22-17-39-12 +.. gh-issue: 108310 +.. nonce: fVM3sg +.. release date: 2023-10-13 +.. section: Security + +Fixed an issue where instances of :class:`ssl.SSLSocket` were vulnerable to +a bypass of the TLS handshake and included protections (like certificate +verification) and treating sent unencrypted data as if it were +post-handshake TLS encrypted data. Security issue reported as +`CVE-2023-40217 +<https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-40217>`_ by Aapo +Oksman. Patch by Gregory P. Smith. + +.. + +.. date: 2023-08-05-03-51-05 +.. gh-issue: 107774 +.. nonce: VPjaTR +.. section: Security + +PEP 669 specifies that ``sys.monitoring.register_callback`` will generate an +audit event. Pre-releases of Python 3.12 did not generate the audit event. +This is now fixed. + +.. + +.. date: 2023-06-13-20-52-24 +.. gh-issue: 102988 +.. nonce: Kei7Vf +.. section: Security + +Reverted the :mod:`email.utils` security improvement change released in +3.12beta4 that unintentionally caused :mod:`email.utils.getaddresses` to +fail to parse email addresses with a comma in the quoted name field. See +:gh:`106669`. + +.. + +.. date: 2023-05-24-09-29-08 +.. gh-issue: 99108 +.. nonce: hwS2cr +.. section: Security + +Refresh our new HACL* built-in :mod:`hashlib` code from upstream. Built-in +SHA2 should be faster and an issue with SHA3 on 32-bit platforms is fixed. + +.. + +.. date: 2023-03-07-21-46-29 +.. gh-issue: 102509 +.. nonce: 5ouaH_ +.. section: Security + +Start initializing ``ob_digit`` during creation of :c:type:`PyLongObject` +objects. Patch by Illia Volochii. + +.. + +.. date: 2023-10-12-15-03-24 +.. gh-issue: 110782 +.. nonce: EqzIzi +.. section: Core and Builtins + +Fix crash when :class:`typing.TypeVar` is constructed with a keyword +argument. Patch by Jelle Zijlstra. + +.. + +.. date: 2023-10-12-06-32-25 +.. gh-issue: 110752 +.. nonce: FYfI0h +.. section: Core and Builtins + +Reset ``ceval.eval_breaker`` in :func:`interpreter_clear` + +.. + +.. date: 2023-10-11-16-56-54 +.. gh-issue: 110721 +.. nonce: afcSsH +.. section: Core and Builtins + +Use the :mod:`traceback` implementation for the default +:c:func:`PyErr_Display` functionality. Patch by Pablo Galindo + +.. + +.. date: 2023-10-11-13-46-14 +.. gh-issue: 110696 +.. nonce: J9kSzr +.. section: Core and Builtins + +Fix incorrect error message for invalid argument unpacking. Patch by Pablo +Galindo + +.. + +.. date: 2023-10-11-12-48-03 +.. gh-issue: 104169 +.. nonce: bPoX8u +.. section: Core and Builtins + +Split the tokenizer into two separate directories: - One part includes the +actual lexeme producing logic and lives in ``Parser/lexer``. - The second +part wraps the lexer according to the different tokenization modes we have +(string, utf-8, file, interactive, readline) and lives in +``Parser/tokenizer``. + +.. + +.. date: 2023-10-11-11-39-22 +.. gh-issue: 110688 +.. nonce: lB6Q7t +.. section: Core and Builtins + +Remove undocumented ``test_c_api`` method from :class:`set`, which was only +defined for testing purposes under ``Py_DEBUG``. Now we have proper CAPI +tests. + +.. + +.. date: 2023-10-10-00-49-35 +.. gh-issue: 104584 +.. nonce: z94TuJ +.. section: Core and Builtins + +Fix a reference leak when running with :envvar:`PYTHONUOPS` or :option:`-X +uops <-X>` enabled. + +.. + +.. date: 2023-10-08-20-08-54 +.. gh-issue: 110514 +.. nonce: Q9bdRU +.. section: Core and Builtins + +Add ``PY_THROW`` to :func:`sys.setprofile` events + +.. + +.. date: 2023-10-06-22-30-25 +.. gh-issue: 110489 +.. nonce: rI2n8A +.. section: Core and Builtins + +Optimise :func:`math.ceil` when the input is exactly a float, resulting in +about a 10% improvement. + +.. + +.. date: 2023-10-06-12-00-43 +.. gh-issue: 110455 +.. nonce: 8BjNGg +.. section: Core and Builtins + +Guard ``assert(tstate->thread_id > 0)`` with ``#ifndef HAVE_PTHREAD_STUBS``. +This allows for for pydebug builds to work under WASI which (currently) +lacks thread support. + +.. + +.. date: 2023-10-03-23-26-18 +.. gh-issue: 110309 +.. nonce: Y8nDOF +.. section: Core and Builtins + +Remove unnecessary empty constant nodes in the ast of f-string specs. + +.. + +.. date: 2023-10-03-11-43-48 +.. gh-issue: 110259 +.. nonce: ka93x5 +.. section: Core and Builtins + +Correctly identify the format spec in f-strings (with single or triple +quotes) that have multiple lines in the expression part and include a +formatting spec. Patch by Pablo Galindo + +.. + +.. date: 2023-10-02-23-17-08 +.. gh-issue: 110237 +.. nonce: _Xub0z +.. section: Core and Builtins + +Fix missing error checks for calls to ``PyList_Append`` in +``_PyEval_MatchClass``. + +.. + +.. date: 2023-10-01-02-58-00 +.. gh-issue: 110164 +.. nonce: z7TMCq +.. section: Core and Builtins + +regrtest: If the ``SOURCE_DATE_EPOCH`` environment variable is defined, +regrtest now disables tests randomization. Patch by Victor Stinner. + +.. + +.. date: 2023-09-27-21-35-49 +.. gh-issue: 109889 +.. nonce: t5hIRT +.. section: Core and Builtins + +Fix the compiler's redundant NOP detection algorithm to skip over NOPs with +no line number when looking for the next instruction's lineno. + +.. + +.. date: 2023-09-27-18-01-06 +.. gh-issue: 109853 +.. nonce: coQQiL +.. section: Core and Builtins + +``sys.path[0]`` is now set correctly for subinterpreters. + +.. + +.. date: 2023-09-26-21-26-54 +.. gh-issue: 109923 +.. nonce: WO3CHi +.. section: Core and Builtins + +Set line number on the ``POP_TOP`` that follows a ``RETURN_GENERATOR``. + +.. + +.. date: 2023-09-26-14-00-25 +.. gh-issue: 105716 +.. nonce: SUJkW1 +.. section: Core and Builtins + +Subinterpreters now correctly handle the case where they have threads +running in the background. Before, such threads would interfere with +cleaning up and destroying them, as well as prevent running another script. + +.. + +.. date: 2023-09-26-03-46-55 +.. gh-issue: 109369 +.. nonce: OJbxbF +.. section: Core and Builtins + +The internal eval_breaker and supporting flags, plus the monitoring version +have been merged into a single atomic integer to speed up checks. + +.. + +.. date: 2023-09-25-14-28-14 +.. gh-issue: 109823 +.. nonce: kbVTKF +.. section: Core and Builtins + +Fix bug where compiler does not adjust labels when removing an empty basic +block which is a jump target. + +.. + +.. date: 2023-09-25-09-24-10 +.. gh-issue: 109793 +.. nonce: zFQBkv +.. section: Core and Builtins + +The main thread no longer exits prematurely when a subinterpreter is cleaned +up during runtime finalization. The bug was a problem particularly because, +when triggered, the Python process would always return with a 0 exitcode, +even if it failed. + +.. + +.. date: 2023-09-22-13-38-17 +.. gh-issue: 109719 +.. nonce: fx5OTz +.. section: Core and Builtins + +Fix missing jump target labels when compiler reorders cold/warm blocks. + +.. + +.. date: 2023-09-22-01-44-53 +.. gh-issue: 109595 +.. nonce: fVINgD +.. section: Core and Builtins + +Add :option:`-X cpu_count <-X>` command line option to override return +results of :func:`os.cpu_count` and :func:`os.process_cpu_count`. This +option is useful for users who need to limit CPU resources of a container +system without having to modify the container (application code). Patch by +Donghee Na. + +.. + +.. date: 2023-09-20-23-04-15 +.. gh-issue: 109627 +.. nonce: xxe7De +.. section: Core and Builtins + +Fix bug where the compiler does not assign a new jump target label to a +duplicated small exit block. + +.. + +.. date: 2023-09-20-13-18-08 +.. gh-issue: 109596 +.. nonce: RG0K2G +.. section: Core and Builtins + +Fix some tokens in the grammar that were incorrectly marked as soft +keywords. Also fix some repeated rule names and ensure that repeated rules +are not allowed. Patch by Pablo Galindo + +.. + +.. date: 2023-09-18-15-35-08 +.. gh-issue: 109496 +.. nonce: Kleoz3 +.. section: Core and Builtins + +On a Python built in debug mode, :c:func:`Py_DECREF()` now calls +``_Py_NegativeRefcount()`` if the object is a dangling pointer to +deallocated memory: memory filled with ``0xDD`` "dead byte" by the debug +hook on memory allocators. The fix is to check the reference count *before* +checking for ``_Py_IsImmortal()``. Patch by Victor Stinner. + +.. + +.. date: 2023-09-14-20-15-57 +.. gh-issue: 107265 +.. nonce: qHZL_6 +.. section: Core and Builtins + +Deopt opcodes hidden by the executor when base opcode is needed + +.. + +.. date: 2023-09-13-21-04-04 +.. gh-issue: 109371 +.. nonce: HPEJr8 +.. section: Core and Builtins + +Deopted instructions correctly for tool initialization and modified the +incorrect assertion in instrumentation, when a previous tool already sets +INSTRUCTION events + +.. + +.. date: 2023-09-13-19-16-51 +.. gh-issue: 105658 +.. nonce: z2nR2u +.. section: Core and Builtins + +Fix bug where the line trace of an except block ending with a conditional +includes an excess event with the line of the conditional expression. + +.. + +.. date: 2023-09-13-08-42-45 +.. gh-issue: 109219 +.. nonce: UiN8sc +.. section: Core and Builtins + +Fix compiling type param scopes that use a name which is also free in an +inner scope. + +.. + +.. date: 2023-09-12-16-00-42 +.. gh-issue: 109351 +.. nonce: kznGeR +.. section: Core and Builtins + +Fix crash when compiling an invalid AST involving a named (walrus) +expression. + +.. + +.. date: 2023-09-12-15-45-49 +.. gh-issue: 109341 +.. nonce: 4V5bkm +.. section: Core and Builtins + +Fix crash when compiling an invalid AST involving a :class:`ast.TypeAlias`. + +.. + +.. date: 2023-09-11-15-51-55 +.. gh-issue: 109195 +.. nonce: iwxmuo +.. section: Core and Builtins + +Fix source location for the ``LOAD_*`` instruction preceding a +``LOAD_SUPER_ATTR`` to load the ``super`` global (or shadowing variable) so +that it encompasses only the name ``super`` and not the following +parentheses. + +.. + +.. date: 2023-09-11-15-11-03 +.. gh-issue: 109256 +.. nonce: 6mfhvF +.. section: Core and Builtins + +Opcode IDs for specialized opcodes are allocated in their own range to +improve stability of the IDs for the 'real' opcodes. + +.. + +.. date: 2023-09-11-12-41-42 +.. gh-issue: 109216 +.. nonce: 60QOSb +.. section: Core and Builtins + +Fix possible memory leak in :opcode:`BUILD_MAP`. + +.. + +.. date: 2023-09-10-18-53-55 +.. gh-issue: 109207 +.. nonce: Fei8bY +.. section: Core and Builtins + +Fix a SystemError in ``__repr__`` of symtable entry object. + +.. + +.. date: 2023-09-09-21-17-18 +.. gh-issue: 109179 +.. nonce: ZR8qs2 +.. section: Core and Builtins + +Fix bug where the C traceback display drops notes from :exc:`SyntaxError`. + +.. + +.. date: 2023-09-09-12-49-46 +.. gh-issue: 109118 +.. nonce: gx0X4h +.. section: Core and Builtins + +Disallow nested scopes (lambdas, generator expressions, and comprehensions) +within PEP 695 annotation scopes that are nested within classes. + +.. + +.. date: 2023-09-08-18-31-04 +.. gh-issue: 109156 +.. nonce: KK1EXI +.. section: Core and Builtins + +Add tests for de-instrumenting instructions while keeping the +instrumentation for lines + +.. + +.. date: 2023-09-08-01-50-41 +.. gh-issue: 109114 +.. nonce: adqgtb +.. section: Core and Builtins + +Relax the detection of the error message for invalid lambdas inside +f-strings to not search for arbitrary replacement fields to avoid false +positives. Patch by Pablo Galindo + +.. + +.. date: 2023-09-07-20-52-27 +.. gh-issue: 105848 +.. nonce: p799D1 +.. section: Core and Builtins + +Add a new :opcode:`CALL_KW` opcode, used for calls containing keyword +arguments. Also, fix a possible crash when jumping over method calls in a +debugger. + +.. + +.. date: 2023-09-07-18-49-01 +.. gh-issue: 109052 +.. nonce: TBU4nC +.. section: Core and Builtins + +Use the base opcode when comparing code objects to avoid interference from +instrumentation + +.. + +.. date: 2023-09-07-18-24-42 +.. gh-issue: 109118 +.. nonce: yPXRAe +.. section: Core and Builtins + +Fix interpreter crash when a NameError is raised inside the type parameters +of a generic class. + +.. + +.. date: 2023-09-07-16-05-36 +.. gh-issue: 88943 +.. nonce: rH_X3W +.. section: Core and Builtins + +Improve syntax error for non-ASCII character that follows a numerical +literal. It now points on the invalid non-ASCII character, not on the valid +numerical literal. + +.. + +.. date: 2023-09-06-22-50-25 +.. gh-issue: 108976 +.. nonce: MUKaIJ +.. section: Core and Builtins + +Fix crash that occurs after de-instrumenting a code object in a monitoring +callback. + +.. + +.. date: 2023-09-06-13-28-42 +.. gh-issue: 108732 +.. nonce: I6DkEQ +.. section: Core and Builtins + +Make iteration variables of module- and class-scoped comprehensions visible +to pdb and other tools that use ``frame.f_locals`` again. + +.. + +.. date: 2023-09-05-20-52-17 +.. gh-issue: 108959 +.. nonce: 6z45Sy +.. section: Core and Builtins + +Fix caret placement for error locations for subscript and binary operations +that involve non-semantic parentheses and spaces. Patch by Pablo Galindo + +.. + +.. date: 2023-09-05-11-31-27 +.. gh-issue: 104584 +.. nonce: IRSXA2 +.. section: Core and Builtins + +Fix a crash when running with :envvar:`PYTHONUOPS` or :option:`-X uops <-X>` +enabled and an error occurs during optimization. + +.. + +.. date: 2023-08-31-21-29-28 +.. gh-issue: 108727 +.. nonce: blNRGM +.. section: Core and Builtins + +Define ``tp_dealloc`` for ``CounterOptimizer_Type``. This fixes a segfault +on deallocation. + +.. + +.. date: 2023-08-30-15-41-47 +.. gh-issue: 108520 +.. nonce: u0ZGP_ +.. section: Core and Builtins + +Fix :meth:`multiprocessing.synchronize.SemLock.__setstate__` to properly +initialize :attr:`multiprocessing.synchronize.SemLock._is_fork_ctx`. This +fixes a regression when passing a SemLock accross nested processes. + +Rename :attr:`multiprocessing.synchronize.SemLock.is_fork_ctx` to +:attr:`multiprocessing.synchronize.SemLock._is_fork_ctx` to avoid exposing +it as public API. + +.. + +.. date: 2023-08-29-17-53-12 +.. gh-issue: 108654 +.. nonce: jbkDVo +.. section: Core and Builtins + +Restore locals shadowed by an inlined comprehension if the comprehension +raises an exception. + +.. + +.. date: 2023-08-28-22-22-15 +.. gh-issue: 108488 +.. nonce: e8-fxg +.. section: Core and Builtins + +Change the initialization of inline cache entries so that the cache entry +for ``JUMP_BACKWARD`` is initialized to zero, instead of the +``adaptive_counter_warmup()`` value used for all other instructions. This +counter, unique among instructions, counts up from zero. + +.. + +.. date: 2023-08-28-03-38-28 +.. gh-issue: 108716 +.. nonce: HJBPwt +.. section: Core and Builtins + +Turn off deep-freezing of code objects. Modules are still frozen, so that a +file system search is not needed for common modules. + +.. + +.. date: 2023-08-26-10-36-45 +.. gh-issue: 108614 +.. nonce: wl5l-W +.. section: Core and Builtins + +Add RESUME_CHECK instruction, to avoid having to handle instrumentation, +signals, and contexts switches in the tier 2 execution engine. + +.. + +.. date: 2023-08-26-04-31-01 +.. gh-issue: 108487 +.. nonce: 1Gbr9k +.. section: Core and Builtins + +Move an assert that would cause a spurious crash in a devious case that +should only trigger deoptimization. + +.. + +.. date: 2023-08-25-14-51-06 +.. gh-issue: 106176 +.. nonce: D1EA2a +.. section: Core and Builtins + +Use a ``WeakValueDictionary`` to track the lists containing the modules each +thread is currently importing. This helps avoid a reference leak from +keeping the list around longer than necessary. Weakrefs are used as GC can't +interrupt the cleanup. + +.. + +.. date: 2023-08-23-14-54-15 +.. gh-issue: 105481 +.. nonce: 40q-c4 +.. section: Core and Builtins + +The regen-opcode build stage was removed and its work is now done in +regen-cases. + +.. + +.. date: 2023-08-21-21-13-30 +.. gh-issue: 107901 +.. nonce: hszvdk +.. section: Core and Builtins + +Fix missing line number on :opcode:`JUMP_BACKWARD` at the end of a for loop. + +.. + +.. date: 2023-08-18-18-21-27 +.. gh-issue: 108113 +.. nonce: 1h0poE +.. section: Core and Builtins + +The :func:`compile` built-in can now accept a new flag, +``ast.PyCF_OPTIMIZED_AST``, which is similar to ``ast.PyCF_ONLY_AST`` except +that the returned ``AST`` is optimized according to the value of the +``optimize`` argument. + +:func:`ast.parse` now accepts an optional argument ``optimize`` which is +passed on to the :func:`compile` built-in. This makes it possible to obtain +an optimized ``AST``. + +.. + +.. date: 2023-08-15-13-06-05 +.. gh-issue: 107971 +.. nonce: lPbx04 +.. section: Core and Builtins + +Opcode IDs are generated from bytecodes.c instead of being hard coded in +opcode.py. + +.. + +.. date: 2023-08-15-11-09-50 +.. gh-issue: 107944 +.. nonce: zQLp3j +.. section: Core and Builtins + +Improve error message for function calls with bad keyword arguments. Patch +by Pablo Galindo + +.. + +.. date: 2023-08-13-17-18-22 +.. gh-issue: 108390 +.. nonce: TkBccC +.. section: Core and Builtins + +Raise an exception when setting a non-local event (``RAISE``, +``EXCEPTION_HANDLED``, etc.) in ``sys.monitoring.set_local_events``. + +Fixes crash when tracing in recursive calls to Python classes. + +.. + +.. date: 2023-08-11-16-18-19 +.. gh-issue: 108035 +.. nonce: e2msOD +.. section: Core and Builtins + +Remove the ``_PyCFrame`` struct, moving the pointer to the current +intepreter frame back to the threadstate, as it was for 3.10 and earlier. +The ``_PyCFrame`` existed as a performance optimization for tracing. Since +PEP 669 has been implemented, this optimization no longer applies. + +.. + +.. date: 2023-08-10-17-36-27 +.. gh-issue: 91051 +.. nonce: LfaeNW +.. section: Core and Builtins + +Fix abort / segfault when using all eight type watcher slots, on platforms +where ``char`` is signed by default. + +.. + +.. date: 2023-08-10-00-00-48 +.. gh-issue: 106581 +.. nonce: o7zDty +.. section: Core and Builtins + +Fix possible assertion failures and missing instrumentation events when +:envvar:`PYTHONUOPS` or :option:`-X uops <-X>` is enabled. + +.. + +.. date: 2023-08-09-15-05-27 +.. gh-issue: 107526 +.. nonce: PB32z- +.. section: Core and Builtins + +Revert converting ``vars``, ``dir``, ``next``, ``getattr``, and ``iter`` to +argument clinic. + +.. + +.. date: 2023-08-09-08-31-20 +.. gh-issue: 84805 +.. nonce: 7JRWua +.. section: Core and Builtins + +Autogenerate signature for :c:macro:`METH_NOARGS` and :c:macro:`METH_O` +extension functions. + +.. + +.. date: 2023-08-08-02-46-46 +.. gh-issue: 107758 +.. nonce: R5kyBI +.. section: Core and Builtins + +Make the ``dump_stack()`` routine used by the ``lltrace`` feature (low-level +interpreter debugging) robust against recursion by ensuring that it never +calls a ``__repr__`` method implemented in Python. Also make the similar +output for Tier-2 uops appear on ``stdout`` (instead of ``stderr``), to +match the ``lltrace`` code in ceval.c. + +.. + +.. date: 2023-08-05-15-45-07 +.. gh-issue: 107659 +.. nonce: QgtQ5M +.. section: Core and Builtins + +Add docstrings for :func:`ctypes.pointer` and :func:`ctypes.POINTER`. + +.. + +.. date: 2023-08-05-09-06-56 +.. gh-issue: 105848 +.. nonce: Drc-1- +.. section: Core and Builtins + +Modify the bytecode so that the actual callable for a :opcode:`CALL` is at a +consistent position on the stack (regardless of whether or not +bound-method-calling optimizations are active). + +.. + +.. date: 2023-08-05-04-47-18 +.. gh-issue: 107674 +.. nonce: 0sYhR2 +.. section: Core and Builtins + +Fixed performance regression in ``sys.settrace``. + +.. + +.. date: 2023-08-04-21-25-26 +.. gh-issue: 107724 +.. nonce: EbBXMr +.. section: Core and Builtins + +In pre-release versions of 3.12, up to rc1, the sys.monitoring callback +function for the ``PY_THROW`` event was missing the third, exception +argument. That is now fixed. + +.. + +.. date: 2023-08-03-13-38-14 +.. gh-issue: 84436 +.. nonce: gl1wHx +.. section: Core and Builtins + +Skip reference count modifications for many known immortal objects. + +.. + +.. date: 2023-08-03-11-13-09 +.. gh-issue: 107596 +.. nonce: T3yPGI +.. section: Core and Builtins + +Specialize subscripting :class:`str` objects by :class:`int` indexes. + +.. + +.. date: 2023-08-02-12-24-51 +.. gh-issue: 107080 +.. nonce: PNolFU +.. section: Core and Builtins + +Trace refs builds (``--with-trace-refs``) were crashing when used with +isolated subinterpreters. The problematic global state has been isolated to +each interpreter. Other fixing the crashes, this change does not affect +users. + +.. + +.. date: 2023-08-02-09-55-21 +.. gh-issue: 107557 +.. nonce: P1z-in +.. section: Core and Builtins + +Generate the cases needed for the barebones tier 2 abstract interpreter for +optimization passes in CPython. + +.. + +.. date: 2023-08-01-09-41-36 +.. gh-issue: 106608 +.. nonce: OFZogw +.. section: Core and Builtins + +Make ``_PyUOpExecutorObject`` variable length. + +.. + +.. date: 2023-07-30-18-05-11 +.. gh-issue: 100964 +.. nonce: HluhBJ +.. section: Core and Builtins + +Clear generators' exception state after ``return`` to break reference +cycles. + +.. + +.. date: 2023-07-30-14-18-49 +.. gh-issue: 107455 +.. nonce: Es53l7 +.. section: Core and Builtins + +Improve error messages when converting an incompatible type to +:class:`ctypes.c_char_p`, :class:`ctypes.c_wchar_p` and +:class:`ctypes.c_void_p`. + +.. + +.. date: 2023-07-30-05-20-16 +.. gh-issue: 107263 +.. nonce: q0IU2M +.. section: Core and Builtins + +Increase C recursion limit for functions other than the main interpreter +from 800 to 1500. This should allow functions like ``list.__repr__`` and +``json.dumps`` to handle all the inputs that they could prior to 3.12 + +.. + +.. date: 2023-07-29-22-01-30 +.. gh-issue: 104584 +.. nonce: tINuoA +.. section: Core and Builtins + +Fix an issue which caused incorrect inline caches to be read when running +with :envvar:`PYTHONUOPS` or :option:`-X uops <-X>` enabled. + +.. + +.. date: 2023-07-27-11-47-29 +.. gh-issue: 104432 +.. nonce: oGHF-z +.. section: Core and Builtins + +Fix potential unaligned memory access on C APIs involving returned sequences +of ``char *`` pointers within the :mod:`grp` and :mod:`socket` modules. +These were revealed using a ``-fsaniziter=alignment`` build on ARM macOS. +Patch by Christopher Chavez. + +.. + +.. date: 2023-07-27-11-18-04 +.. gh-issue: 106078 +.. nonce: WEy2Yn +.. section: Core and Builtins + +Isolate :mod:`!_decimal` (apply :pep:`687`). Patch by Charlie Zhao. + +.. + +.. date: 2023-07-26-21-28-06 +.. gh-issue: 106898 +.. nonce: 8Wjuiv +.. section: Core and Builtins + +Add the exception as the third argument to ``PY_UNIND`` callbacks in +``sys.monitoring``. This makes the ``PY_UNWIND`` callback consistent with +the other exception hanlding callbacks. + +.. + +.. date: 2023-07-26-18-53-34 +.. gh-issue: 106895 +.. nonce: DdEwV8 +.. section: Core and Builtins + +Raise a ``ValueError`` when a monitoring callback funtion returns +``DISABLE`` for events that cannot be disabled locally. + +.. + +.. date: 2023-07-26-12-18-10 +.. gh-issue: 106897 +.. nonce: EsGurc +.. section: Core and Builtins + +Add a ``RERAISE`` event to ``sys.monitoring``, which occurs when an +exception is reraise, either explicitly by a plain ``raise`` statement, or +implicitly in an ``except`` or ``finally`` block. + +.. + +.. date: 2023-07-25-22-35-35 +.. gh-issue: 77377 +.. nonce: EHAbXx +.. section: Core and Builtins + +Ensure that multiprocessing synchronization objects created in a fork +context are not sent to a different process created in a spawn context. This +changes a segfault into an actionable RuntimeError in the parent process. + +.. + +.. date: 2023-07-25-15-29-26 +.. gh-issue: 106931 +.. nonce: kKU1le +.. section: Core and Builtins + +Statically allocated string objects are now interned globally instead of +per-interpreter. This fixes a situation where such a string would only be +interned in a single interpreter. Normal string objects are unaffected. + +.. + +.. date: 2023-07-24-11-11-41 +.. gh-issue: 104621 +.. nonce: vM8Y_l +.. section: Core and Builtins + +Unsupported modules now always fail to be imported. + +.. + +.. date: 2023-07-23-21-16-54 +.. gh-issue: 107122 +.. nonce: VNuNcq +.. section: Core and Builtins + +Add :meth:`dbm.ndbm.ndbm.clear` to :mod:`dbm.ndbm`. Patch By Donghee Na. + +.. + +.. date: 2023-07-23-13-07-34 +.. gh-issue: 107122 +.. nonce: 9HFUyb +.. section: Core and Builtins + +Add :meth:`dbm.gnu.gdbm.clear` to :mod:`dbm.gnu`. Patch By Donghee Na. + +.. + +.. date: 2023-07-22-14-35-38 +.. gh-issue: 107015 +.. nonce: Ghp58t +.. section: Core and Builtins + +The ASYNC and AWAIT tokens are removed from the Grammar, which removes the +posibility of making ``async`` and ``await`` soft keywords when using +``feature_version<7`` in :func:`ast.parse`. + +.. + +.. date: 2023-07-21-14-37-48 +.. gh-issue: 106917 +.. nonce: 1jWp_m +.. section: Core and Builtins + +Fix classmethod-style :func:`super` method calls (i.e., where the second +argument to :func:`super`, or the implied second argument drawn from +``self/cls`` in the case of zero-arg super, is a type) when the target of +the call is not a classmethod. + +.. + +.. date: 2023-07-20-15-15-57 +.. gh-issue: 105699 +.. nonce: DdqHFg +.. section: Core and Builtins + +Python no longer crashes due an infrequent race when initialzing +per-interpreter interned strings. The crash would manifest when the +interpreter was finalized. + +.. + +.. date: 2023-07-20-12-21-37 +.. gh-issue: 105699 +.. nonce: 08ywGV +.. section: Core and Builtins + +Python no longer crashes due to an infrequent race in setting +``Py_FileSystemDefaultEncoding`` and ``Py_FileSystemDefaultEncodeErrors`` +(both deprecated), when simultaneously initializing two isolated +subinterpreters. Now they are only set during runtime initialization. + +.. + +.. date: 2023-07-20-01-15-58 +.. gh-issue: 106908 +.. nonce: cDmcVI +.. section: Core and Builtins + +Fix various hangs, reference leaks, test failures, and tracing/introspection +bugs when running with :envvar:`PYTHONUOPS` or :option:`-X uops <-X>` +enabled. + +.. + +.. date: 2023-07-18-16-13-51 +.. gh-issue: 106092 +.. nonce: bObgRM +.. section: Core and Builtins + +Fix a segmentation fault caused by a use-after-free bug in ``frame_dealloc`` +when the trashcan delays the deallocation of a ``PyFrameObject``. + +.. + +.. date: 2023-07-16-07-55-19 +.. gh-issue: 106485 +.. nonce: wPb1bH +.. section: Core and Builtins + +Reduce the number of materialized instances dictionaries by dematerializing +them when possible. + +.. + +.. date: 2023-07-13-15-59-07 +.. gh-issue: 106719 +.. nonce: jmVrsv +.. section: Core and Builtins + +No longer suppress arbitrary errors in the ``__annotations__`` getter and +setter in the type and module types. + +.. + +.. date: 2023-07-13-14-55-45 +.. gh-issue: 106723 +.. nonce: KsMufQ +.. section: Core and Builtins + +Propagate ``frozen_modules`` to multiprocessing spawned process +interpreters. + +.. + +.. date: 2023-07-12-11-18-55 +.. gh-issue: 104909 +.. nonce: DRUsuh +.. section: Core and Builtins + +Split :opcode:`LOAD_ATTR_INSTANCE_VALUE` into micro-ops. + +.. + +.. date: 2023-07-12-10-48-08 +.. gh-issue: 104909 +.. nonce: sWjcr2 +.. section: Core and Builtins + +Split :opcode:`LOAD_GLOBAL` specializations into micro-ops. + +.. + +.. date: 2023-07-10-15-30-45 +.. gh-issue: 106597 +.. nonce: WAZ14y +.. section: Core and Builtins + +A new debug structure of offsets has been added to the ``_PyRuntimeState`` +that will help out-of-process debuggers and profilers to obtain the offsets +to relevant interpreter structures in a way that is agnostic of how Python +was compiled and that doesn't require copying the headers. Patch by Pablo +Galindo + +.. + +.. date: 2023-07-06-22-46-05 +.. gh-issue: 106487 +.. nonce: u3KfAD +.. section: Core and Builtins + +Allow the *count* argument of :meth:`str.replace` to be a keyword. Patch by +Hugo van Kemenade. + +.. + +.. date: 2023-07-06-00-35-44 +.. gh-issue: 96844 +.. nonce: kwvoS- +.. section: Core and Builtins + +Improve error message of :meth:`list.remove`. Patch by Donghee Na. + +.. + +.. date: 2023-07-04-20-42-54 +.. gh-issue: 81283 +.. nonce: hfh_MD +.. section: Core and Builtins + +Compiler now strips indents from docstrings. It reduces ``pyc`` file size 5% +when the module is heavily documented. This change affects to ``__doc__`` so +tools like doctest will be affected. + +.. + +.. date: 2023-07-04-09-51-45 +.. gh-issue: 106396 +.. nonce: DmYp7x +.. section: Core and Builtins + +When the format specification of an f-string expression is empty, the parser +now generates an empty :class:`ast.JoinedStr` node for it instead of an +one-element :class:`ast.JoinedStr` with an empty string +:class:`ast.Constant`. + +.. + +.. date: 2023-07-04-04-50-14 +.. gh-issue: 100288 +.. nonce: yNQ1ez +.. section: Core and Builtins + +Specialize :opcode:`LOAD_ATTR` for non-descriptors on the class. Adds +:opcode:`LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES` and +:opcode:`LOAD_ATTR_NONDESCRIPTOR_NO_DICT`. + +.. + +.. date: 2023-07-03-11-38-43 +.. gh-issue: 106008 +.. nonce: HDf1zd +.. section: Core and Builtins + +Fix possible reference leaks when failing to optimize comparisons with +:const:`None` in the bytecode compiler. + +.. + +.. date: 2023-06-29-09-46-41 +.. gh-issue: 106145 +.. nonce: QC6-Kq +.. section: Core and Builtins + +Make ``end_lineno`` and ``end_col_offset`` required on ``type_param`` ast +nodes. + +.. + +.. date: 2023-06-29-09-42-56 +.. gh-issue: 106213 +.. nonce: TCUgzM +.. section: Core and Builtins + +Changed the way that Emscripten call trampolines work for compatibility with +Wasm/JS Promise integration. + +.. + +.. date: 2023-06-28-15-19-59 +.. gh-issue: 106182 +.. nonce: cDSFi0 +.. section: Core and Builtins + +:func:`sys.getfilesystemencoding` and :mod:`sys.getfilesystemencodeerrors` +now return interned Unicode object. + +.. + +.. date: 2023-06-28-13-19-20 +.. gh-issue: 106210 +.. nonce: oE7VMn +.. section: Core and Builtins + +Removed Emscripten import trampoline as it was no longer necessary for +Pyodide. + +.. + +.. date: 2023-06-27-00-58-26 +.. gh-issue: 104584 +.. nonce: Wu-uXy +.. section: Core and Builtins + +Added a new, experimental, tracing optimizer and interpreter (a.k.a. "tier +2"). This currently pessimizes, so don't use yet -- this is infrastructure +so we can experiment with optimizing passes. To enable it, pass ``-Xuops`` +or set ``PYTHONUOPS=1``. To get debug output, set ``PYTHONUOPSDEBUG=N`` +where ``N`` is a debug level (0-4, where 0 is no debug output and 4 is +excessively verbose). + +.. + +.. date: 2023-06-24-10-34-27 +.. gh-issue: 105775 +.. nonce: OqjoGV +.. section: Core and Builtins + +:opcode:`LOAD_CLOSURE` is now a pseudo-op. + +.. + +.. date: 2023-06-23-16-51-02 +.. gh-issue: 105730 +.. nonce: 16haMe +.. section: Core and Builtins + +Allow any callable other than type objects as the condition predicate in +:meth:`BaseExceptionGroup.split` and :meth:`BaseExceptionGroup.subgroup`. + +.. + +.. date: 2023-06-22-19-16-24 +.. gh-issue: 105979 +.. nonce: TDP2CU +.. section: Core and Builtins + +Fix crash in :func:`!_imp.get_frozen_object` due to improper exception +handling. + +.. + +.. date: 2023-06-22-17-37-35 +.. gh-issue: 106003 +.. nonce: 2Vc_Tw +.. section: Core and Builtins + +Add a new :opcode:`TO_BOOL` instruction, which performs boolean conversions +for :opcode:`POP_JUMP_IF_TRUE`, :opcode:`POP_JUMP_IF_FALSE`, and +:opcode:`UNARY_NOT` (which all expect exact :class:`bool` values now). Also, +modify the oparg of :opcode:`COMPARE_OP` to include an optional "boolean +conversion" flag. + +.. + +.. date: 2023-06-22-14-19-17 +.. gh-issue: 98931 +.. nonce: PPgvSF +.. section: Core and Builtins + +Ensure custom :exc:`SyntaxError` error messages are raised for invalid +imports with multiple targets. Patch by Pablo Galindo + +.. + +.. date: 2023-06-20-10-53-17 +.. gh-issue: 105724 +.. nonce: d23L4M +.. section: Core and Builtins + +Improve ``assert`` error messages by providing exact error range. + +.. + +.. date: 2023-06-19-11-04-01 +.. gh-issue: 105908 +.. nonce: 7oanny +.. section: Core and Builtins + +Fixed bug where :gh:`99111` breaks future import ``barry_as_FLUFL`` in the +Python REPL. + +.. + +.. date: 2023-06-15-22-11-43 +.. gh-issue: 105840 +.. nonce: Fum_g_ +.. section: Core and Builtins + +Fix possible crashes when specializing function calls with too many +``__defaults__``. + +.. + +.. date: 2023-06-15-15-54-47 +.. gh-issue: 105831 +.. nonce: -MC9Zs +.. section: Core and Builtins + +Fix an f-string bug, where using a debug expression (the ``=`` sign) that +appears in the last line of a file results to the debug buffer that holds +the expression text being one character too small. + +.. + +.. date: 2023-06-14-22-52-06 +.. gh-issue: 105800 +.. nonce: hdpPzZ +.. section: Core and Builtins + +Correctly issue :exc:`SyntaxWarning` in f-strings if invalid sequences are +used. Patch by Pablo Galindo + +.. + +.. date: 2023-06-12-16-38-31 +.. gh-issue: 105340 +.. nonce: _jRHXe +.. section: Core and Builtins + +Include the comprehension iteration variable in ``locals()`` inside a +module- or class-scope comprehension. + +.. + +.. date: 2023-06-11-09-14-30 +.. gh-issue: 105331 +.. nonce: nlZvoW +.. section: Core and Builtins + +Raise :exc:`ValueError` if the ``delay`` argument to :func:`asyncio.sleep` +is a NaN (matching :func:`time.sleep`). + +.. + +.. date: 2023-06-10-21-38-49 +.. gh-issue: 105587 +.. nonce: rL3rzv +.. section: Core and Builtins + +The runtime can't guarantee that immortal objects will not be mutated by +Extensions. Thus, this modifies _PyStaticObject_CheckRefcnt to warn instead +of asserting. + +.. + +.. date: 2023-06-09-15-25-12 +.. gh-issue: 105564 +.. nonce: sFdUu4 +.. section: Core and Builtins + +Don't include artificil newlines in the ``line`` attribute of tokens in the +APIs of the :mod:`tokenize` module. Patch by Pablo Galindo + +.. + +.. date: 2023-06-09-12-59-18 +.. gh-issue: 105549 +.. nonce: PYfTNp +.. section: Core and Builtins + +Tokenize separately ``NUMBER`` and ``NAME`` tokens that are not ambiguous. +Patch by Pablo Galindo. + +.. + +.. date: 2023-06-09-11-19-51 +.. gh-issue: 105588 +.. nonce: Y5ovpY +.. section: Core and Builtins + +Fix an issue that could result in crashes when compiling malformed +:mod:`ast` nodes. + +.. + +.. date: 2023-06-09-10-48-17 +.. gh-issue: 100987 +.. nonce: mK-xny +.. section: Core and Builtins + +Allow objects other than code objects as the "executable" in internal +frames. In the long term, this can help tools like Cython and PySpy interact +more efficiently. In the shorter term, it allows us to perform some +optimizations more simply. + +.. + +.. date: 2023-06-08-10-10-07 +.. gh-issue: 105375 +.. nonce: 35VGDd +.. section: Core and Builtins + +Fix bugs in the :mod:`builtins` module where exceptions could end up being +overwritten. + +.. + +.. date: 2023-06-08-09-54-37 +.. gh-issue: 105375 +.. nonce: kqKT3E +.. section: Core and Builtins + +Fix bug in the compiler where an exception could end up being overwritten. + +.. + +.. date: 2023-06-08-09-25-52 +.. gh-issue: 105375 +.. nonce: ocB7fT +.. section: Core and Builtins + +Improve error handling in :c:func:`PyUnicode_BuildEncodingMap` where an +exception could end up being overwritten. + +.. + +.. date: 2023-06-08-09-10-15 +.. gh-issue: 105486 +.. nonce: dev-WS +.. section: Core and Builtins + +Change the repr of ``ParamSpec`` list of args in ``types.GenericAlias``. + +.. + +.. date: 2023-06-07-21-27-55 +.. gh-issue: 105678 +.. nonce: wKOr7F +.. section: Core and Builtins + +Break the ``MAKE_FUNCTION`` instruction into two parts, ``MAKE_FUNCTION`` +which makes the function and ``SET_FUNCTION_ATTRIBUTE`` which sets the +attributes on the function. This makes the stack effect of ``MAKE_FUNCTION`` +regular to ease optimization and code generation. + +.. + +.. date: 2023-06-07-12-20-59 +.. gh-issue: 105435 +.. nonce: 6VllI0 +.. section: Core and Builtins + +Fix spurious newline character if file ends on a comment without a newline. +Patch by Pablo Galindo + +.. + +.. date: 2023-06-06-17-10-42 +.. gh-issue: 105390 +.. nonce: DvqI-e +.. section: Core and Builtins + +Correctly raise :exc:`tokenize.TokenError` exceptions instead of +:exc:`SyntaxError` for tokenize errors such as incomplete input. Patch by +Pablo Galindo + +.. + +.. date: 2023-06-06-11-37-53 +.. gh-issue: 105259 +.. nonce: E2BGKL +.. section: Core and Builtins + +Don't include newline character for trailing ``NEWLINE`` tokens emitted in +the :mod:`tokenize` module. Patch by Pablo Galindo + +.. + +.. date: 2023-06-05-23-38-43 +.. gh-issue: 104635 +.. nonce: VYZhVh +.. section: Core and Builtins + +Eliminate redundant :opcode:`STORE_FAST` instructions in the compiler. Patch +by Donghee Na and Carl Meyer. + +.. + +.. date: 2023-06-05-17-35-50 +.. gh-issue: 105324 +.. nonce: BqhiJJ +.. section: Core and Builtins + +Fix the main function of the :mod:`tokenize` module when reading from +``sys.stdin``. Patch by Pablo Galindo + +.. + +.. date: 2023-06-05-08-30-49 +.. gh-issue: 33092 +.. nonce: hZ0xSI +.. section: Core and Builtins + +Simplify and speed up interpreter for f-strings. Removes ``FORMAT_VALUE`` +opcode. Add ``CONVERT_VALUE``, ``FORMAT_SIMPLE`` and ``FORMAT_WITH_SPEC`` +opcode. Compiler emits more efficient sequence for each format expression. + +.. + +.. date: 2023-06-03-04-28-28 +.. gh-issue: 105229 +.. nonce: stEmfp +.. section: Core and Builtins + +Remove remaining two-codeunit superinstructions. All remaining +superinstructions only take a single codeunit, simplifying instrumentation +and quickening. + +.. + +.. date: 2023-06-02-19-37-29 +.. gh-issue: 105235 +.. nonce: fgFGTi +.. section: Core and Builtins + +Prevent out-of-bounds memory access during ``mmap.find()`` calls. + +.. + +.. date: 2023-06-02-17-39-19 +.. gh-issue: 98963 +.. nonce: J4wJgk +.. section: Core and Builtins + +Restore the ability for a subclass of :class:`property` to define +``__slots__`` or otherwise be dict-less by ignoring failures to set a +docstring on such a class. This behavior had regressed in 3.12beta1. An +:exc:`AttributeError` where there had not previously been one was disruptive +to existing code. + +.. + +.. date: 2023-06-02-15-15-41 +.. gh-issue: 104812 +.. nonce: dfZiG5 +.. section: Core and Builtins + +The "pending call" machinery now works for all interpreters, not just the +main interpreter, and runs in all threads, not just the main thread. Some +calls are still only done in the main thread, ergo in the main interpreter. +This change does not affect signal handling nor the existing public C-API +(``Py_AddPendingCall()``), which both still only target the main thread. The +new functionality is meant strictly for internal use for now, since +consequences of its use are not well understood yet outside some very +restricted cases. This change brings the capability in line with the +intention when the state was made per-interpreter several years ago. + +.. + +.. date: 2023-06-02-11-37-12 +.. gh-issue: 105194 +.. nonce: 4eu56B +.. section: Core and Builtins + +Do not escape with backslashes f-string format specifiers. Patch by Pablo +Galindo + +.. + +.. date: 2023-06-02-01-27-35 +.. gh-issue: 105229 +.. nonce: U05x4G +.. section: Core and Builtins + +Replace some dynamic superinstructions with single instruction equivalents. + +.. + +.. date: 2023-06-01-11-37-03 +.. gh-issue: 105162 +.. nonce: r8VCXk +.. section: Core and Builtins + +Fixed bug in generator.close()/throw() where an inner iterator would be +ignored when the outer iterator was instrumented. + +.. + +.. date: 2023-05-31-19-35-22 +.. gh-issue: 105164 +.. nonce: 6Wajph +.. section: Core and Builtins + +Ensure annotations are set up correctly if the only annotation in a block is +within a :keyword:`match` block. Patch by Jelle Zijlstra. + +.. + +.. date: 2023-05-31-16-22-29 +.. gh-issue: 105148 +.. nonce: MOlb1d +.. section: Core and Builtins + +Make ``_PyASTOptimizeState`` internal to ast_opt.c. Make ``_PyAST_Optimize`` +take two integers instead of a pointer to this struct. This avoids the need +to include pycore_compile.h in ast_opt.c. + +.. + +.. date: 2023-05-31-08-10-59 +.. gh-issue: 104799 +.. nonce: 8kDWti +.. section: Core and Builtins + +Attributes of :mod:`ast` nodes that are lists now default to the empty list +if omitted. This means that some code that previously raised +:exc:`TypeError` when the AST node was used will now proceed with the empty +list instead. Patch by Jelle Zijlstra. + +.. + +.. date: 2023-05-30-20-30-57 +.. gh-issue: 105111 +.. nonce: atn0_6 +.. section: Core and Builtins + +Remove the old trashcan macros ``Py_TRASHCAN_SAFE_BEGIN`` and +``Py_TRASHCAN_SAFE_END``. They should be replaced by the new macros +``Py_TRASHCAN_BEGIN`` and ``Py_TRASHCAN_END``. + +.. + +.. date: 2023-05-30-08-09-43 +.. gh-issue: 105035 +.. nonce: OWUlHy +.. section: Core and Builtins + +Fix :func:`super` calls on types with custom +:c:member:`~PyTypeObject.tp_getattro` implementation (e.g. meta-types.) + +.. + +.. date: 2023-05-27-21-50-48 +.. gh-issue: 105017 +.. nonce: 4sDyDV +.. section: Core and Builtins + +Show CRLF lines in the tokenize string attribute in both NL and NEWLINE +tokens. Patch by Marta GĂłmez. + +.. + +.. date: 2023-05-27-16-57-11 +.. gh-issue: 105013 +.. nonce: IsDgDY +.. section: Core and Builtins + +Fix handling of multiline parenthesized lambdas in +:func:`inspect.getsource`. Patch by Pablo Galindo + +.. + +.. date: 2023-05-27-16-23-16 +.. gh-issue: 105017 +.. nonce: KQrsC0 +.. section: Core and Builtins + +Do not include an additional final ``NL`` token when parsing files having +CRLF lines. Patch by Marta GĂłmez. + +.. + +.. date: 2023-05-26-15-16-11 +.. gh-issue: 104976 +.. nonce: 6dLitD +.. section: Core and Builtins + +Ensure that trailing ``DEDENT`` :class:`tokenize.TokenInfo` objects emitted +by the :mod:`tokenize` module are reported as in Python 3.11. Patch by Pablo +Galindo + +.. + +.. date: 2023-05-26-14-09-47 +.. gh-issue: 104972 +.. nonce: El2UjE +.. section: Core and Builtins + +Ensure that the ``line`` attribute in :class:`tokenize.TokenInfo` objects in +the :mod:`tokenize` module are always correct. Patch by Pablo Galindo + +.. + +.. date: 2023-05-25-21-40-39 +.. gh-issue: 104955 +.. nonce: LZx7jf +.. section: Core and Builtins + +Fix signature for the new :meth:`~object.__release_buffer__` slot. Patch by +Jelle Zijlstra. + +.. + +.. date: 2023-05-24-12-10-54 +.. gh-issue: 104690 +.. nonce: HX3Jou +.. section: Core and Builtins + +Starting new threads and process creation through :func:`os.fork` during +interpreter shutdown (such as from :mod:`atexit` handlers) is no longer +supported. It can lead to race condition between the main Python runtime +thread freeing thread states while internal :mod:`threading` routines are +trying to allocate and use the state of just created threads. Or forked +children trying to use the mid-shutdown runtime and thread state in the +child process. + +.. + +.. date: 2023-05-24-10-19-35 +.. gh-issue: 104879 +.. nonce: v-29NL +.. section: Core and Builtins + +Fix crash when accessing the ``__module__`` attribute of type aliases +defined outside a module. Patch by Jelle Zijlstra. + +.. + +.. date: 2023-05-24-09-59-56 +.. gh-issue: 104825 +.. nonce: mQesie +.. section: Core and Builtins + +Tokens emitted by the :mod:`tokenize` module do not include an implicit +``\n`` character in the ``line`` attribute anymore. Patch by Pablo Galindo + +.. + +.. date: 2023-05-23-00-36-02 +.. gh-issue: 104770 +.. nonce: poSkyY +.. section: Core and Builtins + +If a generator returns a value upon being closed, the value is now returned +by :meth:`generator.close`. + +.. + +.. date: 2023-05-18-12-48-39 +.. gh-issue: 89091 +.. nonce: FDzRcW +.. section: Core and Builtins + +Raise :exc:`RuntimeWarning` for unawaited async generator methods like +:meth:`~agen.asend`, :meth:`~agen.athrow` and :meth:`~agen.aclose`. Patch by +Kumar Aditya. + +.. + +.. date: 2023-04-04-00-40-04 +.. gh-issue: 96663 +.. nonce: PdR9hK +.. section: Core and Builtins + +Add a better, more introspect-able error message when setting attributes on +classes without a ``__dict__`` and no slot member for the attribute. + +.. + +.. date: 2023-03-26-19-11-10 +.. gh-issue: 93627 +.. nonce: 0UgwBL +.. section: Core and Builtins + +Update the Python pickle module implementation to match the C implementation +of the pickle module. For objects setting reduction methods like +:meth:`~object.__reduce_ex__` or :meth:`~object.__reduce__` to ``None``, +pickling will result in a :exc:`TypeError`. + +.. + +.. date: 2023-01-13-11-37-41 +.. gh-issue: 101006 +.. nonce: fuLvn2 +.. section: Core and Builtins + +Improve error handling when read :mod:`marshal` data. + +.. + +.. date: 2022-11-10-13-04-35 +.. gh-issue: 91095 +.. nonce: 4E3Pwn +.. section: Core and Builtins + +Specializes calls to most Python classes. Specifically, any class that +inherits from ``object``, or another Python class, and does not override +``__new__``. + +The specialized instruction does the following: + +1. Creates the object (by calling ``object.__new__``) +2. Pushes a shim frame to the frame stack (to cleanup after ``__init__``) +3. Pushes the frame for ``__init__`` to the frame stack + +Speeds up the instantiation of most Python classes. + +.. + +.. date: 2023-10-13-01-31-27 +.. gh-issue: 110786 +.. nonce: sThp-A +.. section: Library + +:mod:`sysconfig`'s CLI now ignores :exc:`BrokenPipeError`, making it exit +normally if its output is being piped and the pipe closes. + +.. + +.. date: 2023-10-13-00-14-17 +.. gh-issue: 103480 +.. nonce: lmdf1J +.. section: Library + +The :mod:`sysconfig` module is now a package, instead of a single-file +module. + +.. + +.. date: 2023-10-11-18-43-43 +.. gh-issue: 110733 +.. nonce: UlrgVm +.. section: Library + +Micro-optimization: Avoid calling ``min()``, ``max()`` in +:meth:`BaseEventLoop._run_once`. + +.. + +.. date: 2023-10-11-15-07-21 +.. gh-issue: 94597 +.. nonce: NbPC8t +.. section: Library + +Added :class:`asyncio.EventLoop` for use with the :func:`asyncio.run` +*loop_factory* kwarg to avoid calling the asyncio policy system. + +.. + +.. date: 2023-10-11-11-00-11 +.. gh-issue: 110682 +.. nonce: bXRFaX +.. section: Library + +:func:`runtime-checkable protocols <typing.runtime_checkable>` used to +consider ``__match_args__`` a protocol member in ``__instancecheck__`` if it +was present on the protocol. Now, this attribute is ignored if it is +present. + +.. + +.. date: 2023-10-10-22-54-56 +.. gh-issue: 110488 +.. nonce: 2I7OiZ +.. section: Library + +Fix a couple of issues in :meth:`pathlib.PurePath.with_name`: a single dot +was incorrectly considered a valid name, and in :class:`PureWindowsPath`, a +name with an NTFS alternate data stream, like ``a:b``, was incorrectly +considered invalid. + +.. + +.. date: 2023-10-10-10-46-55 +.. gh-issue: 110590 +.. nonce: fatz-h +.. section: Library + +Fix a bug in :meth:`!_sre.compile` where :exc:`TypeError` would be +overwritten by :exc:`OverflowError` when the *code* argument was a list of +non-ints. + +.. + +.. date: 2023-10-09-19-09-32 +.. gh-issue: 65052 +.. nonce: C2mRlo +.. section: Library + +Prevent :mod:`pdb` from crashing when trying to display undisplayable +objects + +.. + +.. date: 2023-10-08-18-15-02 +.. gh-issue: 110519 +.. nonce: RDGe8- +.. section: Library + +Deprecation warning about non-integer number in :mod:`gettext` now alwais +refers to the line in the user code where gettext function or method is +used. Previously it could refer to a line in ``gettext`` code. + +.. + +.. date: 2023-10-07-21-12-28 +.. gh-issue: 89902 +.. nonce: dCokZj +.. section: Library + +Deprecate non-standard format specifier "N" for :class:`decimal.Decimal`. It +was not documented and only supported in the C implementation. + +.. + +.. date: 2023-10-07-13-50-12 +.. gh-issue: 110378 +.. nonce: Y4L8fl +.. section: Library + +:func:`~contextlib.contextmanager` and +:func:`~contextlib.asynccontextmanager` context managers now close an +invalid underlying generator object that yields more then one value. + +.. + +.. date: 2023-10-07-00-18-40 +.. gh-issue: 106670 +.. nonce: kCGyRc +.. section: Library + +In :mod:`pdb`, set convenience variable ``$_exception`` for post mortem +debugging. + +.. + +.. date: 2023-10-04-18-56-29 +.. gh-issue: 110365 +.. nonce: LCxiau +.. section: Library + +Fix :func:`termios.tcsetattr` bug that was overwritting existing errors +during parsing integers from ``term`` list. + +.. + +.. date: 2023-10-03-15-17-03 +.. gh-issue: 109653 +.. nonce: 9DYOMD +.. section: Library + +Slightly improve the import time of several standard-library modules by +deferring imports of :mod:`warnings` within those modules. Patch by Alex +Waygood. + +.. + +.. date: 2023-10-03-14-07-05 +.. gh-issue: 110273 +.. nonce: QaDUmS +.. section: Library + +:func:`dataclasses.replace` now raises TypeError instead of ValueError if +specify keyword argument for a field declared with init=False or miss +keyword argument for required InitVar field. + +.. + +.. date: 2023-10-03-00-04-26 +.. gh-issue: 110249 +.. nonce: K0mMrs +.. section: Library + +Add ``--inline-caches`` flag to ``dis`` command line. + +.. + +.. date: 2023-10-02-15-40-10 +.. gh-issue: 109653 +.. nonce: iB0peK +.. section: Library + +Fix a Python 3.12 regression in the import time of :mod:`random`. Patch by +Alex Waygood. + +.. + +.. date: 2023-10-02-15-07-28 +.. gh-issue: 110222 +.. nonce: zl_oHh +.. section: Library + +Add support of struct sequence objects in :func:`copy.replace`. Patched by +Xuehai Pan. + +.. + +.. date: 2023-10-01-01-47-21 +.. gh-issue: 109649 +.. nonce: BizOaD +.. section: Library + +:mod:`multiprocessing`, :mod:`concurrent.futures`, :mod:`compileall`: +Replace :func:`os.cpu_count` with :func:`os.process_cpu_count` to select the +default number of worker threads and processes. Get the CPU affinity if +supported. Patch by Victor Stinner. + +.. + +.. date: 2023-09-30-12-50-47 +.. gh-issue: 110150 +.. nonce: 9j0Ij5 +.. section: Library + +Fix base case handling in statistics.quantiles. Now allows a single data +point. + +.. + +.. date: 2023-09-28-18-53-11 +.. gh-issue: 110036 +.. nonce: fECxTj +.. section: Library + +On Windows, multiprocessing ``Popen.terminate()`` now catchs +:exc:`PermissionError` and get the process exit code. If the process is +still running, raise again the :exc:`PermissionError`. Otherwise, the +process terminated as expected: store its exit code. Patch by Victor +Stinner. + +.. + +.. date: 2023-09-28-18-50-33 +.. gh-issue: 110038 +.. nonce: nx_gCu +.. section: Library + +Fixed an issue that caused :meth:`KqueueSelector.select` to not return all +the ready events in some cases when a file descriptor is registered for both +read and write. + +.. + +.. date: 2023-09-28-18-08-02 +.. gh-issue: 110045 +.. nonce: 0YIGKv +.. section: Library + +Update the :mod:`symtable` module to support the new scopes introduced by +:pep:`695`. + +.. + +.. date: 2023-09-28-12-32-57 +.. gh-issue: 88402 +.. nonce: hoa3Gx +.. section: Library + +Add new variables to :py:meth:`sysconfig.get_config_vars` on Windows: +``LIBRARY``, ``LDLIBRARY``, ``LIBDIR``, ``SOABI``, and ``Py_NOGIL``. + +.. + +.. date: 2023-09-25-23-00-37 +.. gh-issue: 109631 +.. nonce: eWSqpO +.. section: Library + +:mod:`re` functions such as :func:`re.findall`, :func:`re.split`, +:func:`re.search` and :func:`re.sub` which perform short repeated matches +can now be interrupted by user. + +.. + +.. date: 2023-09-25-10-47-22 +.. gh-issue: 109653 +.. nonce: TUHrId +.. section: Library + +Reduce the import time of :mod:`email.utils` by around 43%. This results in +the import time of :mod:`email.message` falling by around 18%, which in turn +reduces the import time of :mod:`importlib.metadata` by around 6%. Patch by +Alex Waygood. + +.. + +.. date: 2023-09-25-09-59-59 +.. gh-issue: 109818 +.. nonce: dLRtT- +.. section: Library + +Fix :func:`reprlib.recursive_repr` not copying ``__type_params__`` from +decorated function. + +.. + +.. date: 2023-09-25-02-11-14 +.. gh-issue: 109047 +.. nonce: b1TrqG +.. section: Library + +:mod:`concurrent.futures`: The *executor manager thread* now catches +exceptions when adding an item to the *call queue*. During Python +finalization, creating a new thread can now raise :exc:`RuntimeError`. Catch +the exception and call ``terminate_broken()`` in this case. Patch by Victor +Stinner. + +.. + +.. date: 2023-09-24-16-43-33 +.. gh-issue: 109782 +.. nonce: gMC_7z +.. section: Library + +Ensure the signature of :func:`os.path.isdir` is identical on all platforms. +Patch by Amin Alaee. + +.. + +.. date: 2023-09-24-13-28-35 +.. gh-issue: 109653 +.. nonce: 9IFU0B +.. section: Library + +Improve import time of :mod:`functools` by around 13%. Patch by Alex +Waygood. + +.. + +.. date: 2023-09-24-06-04-14 +.. gh-issue: 109590 +.. nonce: 9EMofC +.. section: Library + +:func:`shutil.which` will prefer files with an extension in ``PATHEXT`` if +the given mode includes ``os.X_OK`` on win32. If no ``PATHEXT`` match is +found, a file without an extension in ``PATHEXT`` can be returned. This +change will have :func:`shutil.which` act more similarly to previous +behavior in Python 3.11. + +.. + +.. date: 2023-09-23-12-47-45 +.. gh-issue: 109653 +.. nonce: 9wZBfs +.. section: Library + +Reduce the import time of :mod:`enum` by over 50%. Patch by Alex Waygood. + +.. + +.. date: 2023-09-22-20-16-44 +.. gh-issue: 109593 +.. nonce: LboaNM +.. section: Library + +Avoid deadlocking on a reentrant call to the multiprocessing resource +tracker. Such a reentrant call, though unlikely, can happen if a GC pass +invokes the finalizer for a multiprocessing object such as SemLock. + +.. + +.. date: 2023-09-21-19-42-22 +.. gh-issue: 109653 +.. nonce: bL3iLH +.. section: Library + +Reduce the import time of :mod:`typing` by around a third. Patch by Alex +Waygood. + +.. + +.. date: 2023-09-21-16-21-19 +.. gh-issue: 109649 +.. nonce: YYCjAF +.. section: Library + +Add :func:`os.process_cpu_count` function to get the number of logical CPUs +usable by the calling thread of the current process. Patch by Victor +Stinner. + +.. + +.. date: 2023-09-21-14-26-44 +.. gh-issue: 74481 +.. nonce: KAUDcD +.. section: Library + +Add ``set_error_mode`` related constants in ``msvcrt`` module in Python +debug build. + +.. + +.. date: 2023-09-20-17-45-46 +.. gh-issue: 109613 +.. nonce: P13ogN +.. section: Library + +Fix :func:`os.stat` and :meth:`os.DirEntry.stat`: check for exceptions. +Previously, on Python built in debug mode, these functions could trigger a +fatal Python error (and abort the process) when a function succeeded with an +exception set. Patch by Victor Stinner. + +.. + +.. date: 2023-09-20-07-38-14 +.. gh-issue: 109599 +.. nonce: IaSLJz +.. section: Library + +Expose the type of PyCapsule objects as ``types.CapsuleType``. + +.. + +.. date: 2023-09-19-17-56-24 +.. gh-issue: 109109 +.. nonce: WJvvX2 +.. section: Library + +You can now get the raw TLS certificate chains from TLS connections via +:meth:`ssl.SSLSocket.get_verified_chain` and +:meth:`ssl.SSLSocket.get_unverified_chain` methods. + +Contributed by Mateusz Nowak. + +.. + +.. date: 2023-09-19-01-22-43 +.. gh-issue: 109559 +.. nonce: ijaycU +.. section: Library + +Update :mod:`unicodedata` database to Unicode 15.1.0. + +.. + +.. date: 2023-09-18-07-43-22 +.. gh-issue: 109543 +.. nonce: 1tOGoV +.. section: Library + +Remove unnecessary :func:`hasattr` check during :data:`typing.TypedDict` +creation. + +.. + +.. date: 2023-09-16-15-44-16 +.. gh-issue: 109495 +.. nonce: m2H5Bk +.. section: Library + +Remove unnecessary extra ``__slots__`` in :py:class:`datetime`\'s pure +python implementation to reduce memory size, as they are defined in the +superclass. Patch by James Hilton-Balfe + +.. + +.. date: 2023-09-15-17-12-53 +.. gh-issue: 109461 +.. nonce: VNFPTK +.. section: Library + +:mod:`logging`: Use a context manager for lock acquisition. + +.. + +.. date: 2023-09-15-12-20-23 +.. gh-issue: 109096 +.. nonce: VksX1D +.. section: Library + +:class:`http.server.CGIHTTPRequestHandler` has been deprecated for removal +in 3.15. Its design is old and the web world has long since moved beyond +CGI. + +.. + +.. date: 2023-09-15-10-42-30 +.. gh-issue: 109409 +.. nonce: RlffA3 +.. section: Library + +Fix error when it was possible to inherit a frozen dataclass from multiple +parents some of which were possibly not frozen. + +.. + +.. date: 2023-09-13-17-22-44 +.. gh-issue: 109375 +.. nonce: ijJHZ9 +.. section: Library + +The :mod:`pdb` ``alias`` command now prevents registering aliases without +arguments. + +.. + +.. date: 2023-09-12-13-01-55 +.. gh-issue: 109319 +.. nonce: YaCMtW +.. section: Library + +Deprecate the ``dis.HAVE_ARGUMENT`` field in favour of ``dis.hasarg``. + +.. + +.. date: 2023-09-11-00-32-18 +.. gh-issue: 107219 +.. nonce: 3zqyFT +.. section: Library + +Fix a race condition in ``concurrent.futures``. When a process in the +process pool was terminated abruptly (while the future was running or +pending), close the connection write end. If the call queue is blocked on +sending bytes to a worker process, closing the connection write end +interrupts the send, so the queue can be closed. Patch by Victor Stinner. + +.. + +.. date: 2023-09-10-20-23-20 +.. gh-issue: 66143 +.. nonce: 71xvgL +.. section: Library + +The :class:`codecs.CodecInfo` object has been made copyable and pickleable. +Patched by Robert Lehmann and Furkan Onder. + +.. + +.. date: 2023-09-09-17-09-54 +.. gh-issue: 109187 +.. nonce: dIayNW +.. section: Library + +:meth:`pathlib.Path.resolve` now treats symlink loops like other errors: in +strict mode, :exc:`OSError` is raised, and in non-strict mode, no exception +is raised. + +.. + +.. date: 2023-09-09-15-08-37 +.. gh-issue: 50644 +.. nonce: JUAZOh +.. section: Library + +Attempts to pickle or create a shallow or deep copy of :mod:`codecs` streams +now raise a TypeError. Previously, copying failed with a RecursionError, +while pickling produced wrong results that eventually caused unpickling to +fail with a RecursionError. + +.. + +.. date: 2023-09-09-09-05-41 +.. gh-issue: 109174 +.. nonce: OJea5s +.. section: Library + +Add support of :class:`types.SimpleNamespace` in :func:`copy.replace`. + +.. + +.. date: 2023-09-08-22-26-26 +.. gh-issue: 109164 +.. nonce: -9BFWR +.. section: Library + +:mod:`pdb`: Replace :mod:`getopt` with :mod:`argparse` for parsing command +line arguments. + +.. + +.. date: 2023-09-08-19-44-01 +.. gh-issue: 109151 +.. nonce: GkzkQu +.. section: Library + +Enable ``readline`` editing features in the :ref:`sqlite3 command-line +interface <sqlite3-cli>` (``python -m sqlite3``). + +.. + +.. date: 2023-09-08-12-09-55 +.. gh-issue: 108987 +.. nonce: x5AIG8 +.. section: Library + +Fix :func:`_thread.start_new_thread` race condition. If a thread is created +during Python finalization, the newly spawned thread now exits immediately +instead of trying to access freed memory and lead to a crash. Patch by +Victor Stinner. + +.. + +.. date: 2023-09-06-19-33-41 +.. gh-issue: 108682 +.. nonce: 35Xnc5 +.. section: Library + +Enum: require ``names=()`` or ``type=...`` to create an empty enum using the +functional syntax. + +.. + +.. date: 2023-09-06-14-47-28 +.. gh-issue: 109033 +.. nonce: piUzDx +.. section: Library + +Exceptions raised by os.utime builtin function now include the related +filename + +.. + +.. date: 2023-09-06-06-17-23 +.. gh-issue: 108843 +.. nonce: WJMhsS +.. section: Library + +Fix an issue in :func:`ast.unparse` when unparsing f-strings containing many +quote types. + +.. + +.. date: 2023-09-03-04-37-52 +.. gh-issue: 108469 +.. nonce: kusj40 +.. section: Library + +:func:`ast.unparse` now supports new :term:`f-string` syntax introduced in +Python 3.12. Note that the :term:`f-string` quotes are reselected for +simplicity under the new syntax. (Patch by Steven Sun) + +.. + +.. date: 2023-09-01-13-14-08 +.. gh-issue: 108751 +.. nonce: 2itqwe +.. section: Library + +Add :func:`copy.replace` function which allows to create a modified copy of +an object. It supports named tuples, dataclasses, and many other objects. + +.. + +.. date: 2023-08-30-20-10-28 +.. gh-issue: 108682 +.. nonce: c2gzLQ +.. section: Library + +Enum: raise :exc:`TypeError` if ``super().__new__()`` is called from a +custom ``__new__``. + +.. + +.. date: 2023-08-29-11-29-15 +.. gh-issue: 108278 +.. nonce: -UhsnJ +.. section: Library + +Deprecate passing the callback callable by keyword for the following +:class:`sqlite3.Connection` APIs: + +* :meth:`~sqlite3.Connection.set_authorizer` +* :meth:`~sqlite3.Connection.set_progress_handler` +* :meth:`~sqlite3.Connection.set_trace_callback` + +The affected parameters will become positional-only in Python 3.15. + +Patch by Erlend E. Aasland. + +.. + +.. date: 2023-08-26-12-35-39 +.. gh-issue: 105829 +.. nonce: kyYhWI +.. section: Library + +Fix concurrent.futures.ProcessPoolExecutor deadlock + +.. + +.. date: 2023-08-26-08-38-57 +.. gh-issue: 108295 +.. nonce: Pn0QRM +.. section: Library + +Fix crashes related to use of weakrefs on :data:`typing.TypeVar`. + +.. + +.. date: 2023-08-25-00-14-34 +.. gh-issue: 108463 +.. nonce: mQApp_ +.. section: Library + +Make expressions/statements work as expected in pdb + +.. + +.. date: 2023-08-23-22-08-32 +.. gh-issue: 108277 +.. nonce: KLV-6T +.. section: Library + +Add :func:`os.timerfd_create`, :func:`os.timerfd_settime`, +:func:`os.timerfd_gettime`, :func:`os.timerfd_settime_ns`, and +:func:`os.timerfd_gettime_ns` to provide a low level interface for Linux's +timer notification file descriptor. + +.. + +.. date: 2023-08-23-17-34-39 +.. gh-issue: 107811 +.. nonce: 3Fng72 +.. section: Library + +:mod:`tarfile`: extraction of members with overly large UID or GID (e.g. on +an OS with 32-bit :c:type:`!id_t`) now fails in the same way as failing to +set the ID. + +.. + +.. date: 2023-08-22-22-29-42 +.. gh-issue: 64662 +.. nonce: jHl_Bt +.. section: Library + +Fix support for virtual tables in :meth:`sqlite3.Connection.iterdump`. Patch +by Aviv Palivoda. + +.. + +.. date: 2023-08-22-17-27-12 +.. gh-issue: 108111 +.. nonce: N7a4u_ +.. section: Library + +Fix a regression introduced in GH-101251 for 3.12, resulting in an incorrect +offset calculation in :meth:`gzip.GzipFile.seek`. + +.. + +.. date: 2023-08-22-16-18-49 +.. gh-issue: 108294 +.. nonce: KEeUcM +.. section: Library + +:func:`time.sleep` now raises an auditing event. + +.. + +.. date: 2023-08-22-13-51-10 +.. gh-issue: 108278 +.. nonce: 11d_qG +.. section: Library + +Deprecate passing name, number of arguments, and the callable as keyword +arguments, for the following :class:`sqlite3.Connection` APIs: + +* :meth:`~sqlite3.Connection.create_function` +* :meth:`~sqlite3.Connection.create_aggregate` + +The affected parameters will become positional-only in Python 3.15. + +Patch by Erlend E. Aasland. + +.. + +.. date: 2023-08-22-12-05-47 +.. gh-issue: 108322 +.. nonce: kf3NJX +.. section: Library + +Speed-up NormalDist.samples() by using the inverse CDF method instead of +calling random.gauss(). + +.. + +.. date: 2023-08-18-22-58-07 +.. gh-issue: 83417 +.. nonce: 61J4yM +.. section: Library + +Add the ability for venv to create a ``.gitignore`` file which causes the +created environment to be ignored by Git. It is on by default when venv is +called via its CLI. + +.. + +.. date: 2023-08-17-14-45-25 +.. gh-issue: 105736 +.. nonce: NJsH7r +.. section: Library + +Harmonized the pure Python version of :class:`~collections.OrderedDict` with +the C version. Now, both versions set up their internal state in +``__new__``. Formerly, the pure Python version did the set up in +``__init__``. + +.. + +.. date: 2023-08-17-12-59-35 +.. gh-issue: 108083 +.. nonce: 9J7UcT +.. section: Library + +Fix bugs in the constructor of :mod:`sqlite3.Connection` and +:meth:`sqlite3.Connection.close` where exceptions could be leaked. Patch by +Erlend E. Aasland. + +.. + +.. date: 2023-08-16-21-20-55 +.. gh-issue: 107932 +.. nonce: I7hFsp +.. section: Library + +Fix ``dis`` module to properly report and display bytecode that do not have +source lines. + +.. + +.. date: 2023-08-16-14-30-13 +.. gh-issue: 105539 +.. nonce: 29lA6c +.. section: Library + +:mod:`sqlite3` now emits an :exc:`ResourceWarning` if a +:class:`sqlite3.Connection` object is not :meth:`closed +<sqlite3.connection.close>` explicitly. Patch by Erlend E. Aasland. + +.. + +.. date: 2023-08-16-00-24-07 +.. gh-issue: 107995 +.. nonce: TlTp5t +.. section: Library + +The ``__module__`` attribute on instances of +:class:`functools.cached_property` is now set to the name of the module in +which the cached_property is defined, rather than "functools". This means +that doctests in ``cached_property`` docstrings are now properly collected +by the :mod:`doctest` module. Patch by Tyler Smart. + +.. + +.. date: 2023-08-15-18-20-00 +.. gh-issue: 107963 +.. nonce: 20g5BG +.. section: Library + +Fix :func:`multiprocessing.set_forkserver_preload` to check the given list +of modules names. Patch by Donghee Na. + +.. + +.. date: 2023-08-14-23-11-11 +.. gh-issue: 106242 +.. nonce: 71HMym +.. section: Library + +Fixes :func:`os.path.normpath` to handle embedded null characters without +truncating the path. + +.. + +.. date: 2023-08-14-20-18-59 +.. gh-issue: 81555 +.. nonce: cWdP4a +.. section: Library + +:mod:`xml.dom.minidom` now only quotes ``"`` in attributes. + +.. + +.. date: 2023-08-14-20-01-14 +.. gh-issue: 50002 +.. nonce: E-bpj8 +.. section: Library + +:mod:`xml.dom.minidom` now preserves whitespaces in attributes. + +.. + +.. date: 2023-08-14-19-49-02 +.. gh-issue: 93057 +.. nonce: 5nJwO5 +.. section: Library + +Passing more than one positional argument to :func:`sqlite3.connect` and the +:class:`sqlite3.Connection` constructor is deprecated. The remaining +parameters will become keyword-only in Python 3.15. Patch by Erlend E. +Aasland. + +.. + +.. date: 2023-08-14-17-15-59 +.. gh-issue: 76913 +.. nonce: LLD0rT +.. section: Library + +Add *merge_extra* parameter/feature to :class:`logging.LoggerAdapter` + +.. + +.. date: 2023-08-14-11-18-13 +.. gh-issue: 107913 +.. nonce: 4ooY6i +.. section: Library + +Fix possible losses of ``errno`` and ``winerror`` values in :exc:`OSError` +exceptions if they were cleared or modified by the cleanup code before +creating the exception object. + +.. + +.. date: 2023-08-10-17-36-22 +.. gh-issue: 107845 +.. nonce: dABiMJ +.. section: Library + +:func:`tarfile.data_filter` now takes the location of symlinks into account +when determining their target, so it will no longer reject some valid +tarballs with ``LinkOutsideDestinationError``. + +.. + +.. date: 2023-08-09-15-37-20 +.. gh-issue: 107812 +.. nonce: CflAXa +.. section: Library + +Extend socket's netlink support to the FreeBSD platform. + +.. + +.. date: 2023-08-09-13-49-37 +.. gh-issue: 107805 +.. nonce: ezem0k +.. section: Library + +Fix signatures of module-level generated functions in :mod:`turtle`. + +.. + +.. date: 2023-08-08-19-57-45 +.. gh-issue: 107782 +.. nonce: mInjFE +.. section: Library + +:mod:`pydoc` is now able to show signatures which are not representable in +Python, e.g. for ``getattr`` and ``dict.pop``. + +.. + +.. date: 2023-08-08-16-09-59 +.. gh-issue: 56166 +.. nonce: WUMhYG +.. section: Library + +Deprecate passing optional arguments *maxsplit*, *count* and *flags* in +module-level functions :func:`re.split`, :func:`re.sub` and :func:`re.subn` +as positional. They should only be passed by keyword. + +.. + +.. date: 2023-08-07-14-24-42 +.. gh-issue: 107710 +.. nonce: xfOCfj +.. section: Library + +Speed up :func:`logging.getHandlerNames`. + +.. + +.. date: 2023-08-07-14-12-07 +.. gh-issue: 107715 +.. nonce: 238r2f +.. section: Library + +Fix :meth:`doctest.DocTestFinder.find` in presence of class names with +special characters. Patch by Gertjan van Zwieten. + +.. + +.. date: 2023-08-06-15-29-00 +.. gh-issue: 100814 +.. nonce: h195gW +.. section: Library + +Passing a callable object as an option value to a Tkinter image now raises +the expected TclError instead of an AttributeError. + +.. + +.. date: 2023-08-06-10-52-12 +.. gh-issue: 72684 +.. nonce: Ls2mSf +.. section: Library + +Add :mod:`tkinter` widget methods: :meth:`!tk_busy_hold`, +:meth:`!tk_busy_configure`, :meth:`!tk_busy_cget`, :meth:`!tk_busy_forget`, +:meth:`!tk_busy_current`, and :meth:`!tk_busy_status`. + +.. + +.. date: 2023-08-05-05-10-41 +.. gh-issue: 106684 +.. nonce: P9zRXb +.. section: Library + +Raise :exc:`ResourceWarning` when :class:`asyncio.StreamWriter` is not +closed leading to memory leaks. Patch by Kumar Aditya. + +.. + +.. date: 2023-08-04-19-00-53 +.. gh-issue: 107465 +.. nonce: Vc1Il3 +.. section: Library + +Add :meth:`pathlib.Path.from_uri` classmethod. + +.. + +.. date: 2023-08-03-12-52-19 +.. gh-issue: 107077 +.. nonce: -pzHD6 +.. section: Library + +Seems that in some conditions, OpenSSL will return ``SSL_ERROR_SYSCALL`` +instead of ``SSL_ERROR_SSL`` when a certification verification has failed, +but the error parameters will still contain ``ERR_LIB_SSL`` and +``SSL_R_CERTIFICATE_VERIFY_FAILED``. We are now detecting this situation and +raising the appropiate ``ssl.SSLCertVerificationError``. Patch by Pablo +Galindo + +.. + +.. date: 2023-08-03-11-31-11 +.. gh-issue: 107576 +.. nonce: pO_s9I +.. section: Library + +Fix :func:`types.get_original_bases` to only return :attr:`!__orig_bases__` +if it is present on ``cls`` directly. Patch by James Hilton-Balfe. + +.. + +.. date: 2023-08-01-21-43-58 +.. gh-issue: 105481 +.. nonce: cl2ajS +.. section: Library + +Remove ``opcode.is_pseudo``, ``opcode.MIN_PSEUDO_OPCODE`` and +``opcode.MAX_PSEUDO_OPCODE``, which were added in 3.12, were never +documented and were not intended to be used externally. + +.. + +.. date: 2023-08-01-15-17-20 +.. gh-issue: 105481 +.. nonce: vMbmj_ +.. section: Library + +:data:`opcode.ENABLE_SPECIALIZATION` (which was added in 3.12 but never +documented or intended for external usage) is moved to +:data:`_opcode.ENABLE_SPECIALIZATION` where tests can access it. + +.. + +.. date: 2023-07-31-07-36-24 +.. gh-issue: 107396 +.. nonce: 3_Kh6D +.. section: Library + +tarfiles; Fixed use before assignment of self.exception for gzip +decompression + +.. + +.. date: 2023-07-29-02-36-50 +.. gh-issue: 107409 +.. nonce: HG27Nu +.. section: Library + +Set :attr:`!__wrapped__` attribute in :func:`reprlib.recursive_repr`. + +.. + +.. date: 2023-07-29-02-01-24 +.. gh-issue: 107406 +.. nonce: ze6sQP +.. section: Library + +Implement new :meth:`__repr__` method for :class:`struct.Struct`. Now it +returns ``Struct(<format repr>)``. + +.. + +.. date: 2023-07-28-14-56-35 +.. gh-issue: 107369 +.. nonce: bvTq8F +.. section: Library + +Optimize :func:`textwrap.indent`. It is ~30% faster for large input. Patch +by Inada Naoki. + +.. + +.. date: 2023-07-26-22-52-48 +.. gh-issue: 78722 +.. nonce: 6SKBLt +.. section: Library + +Fix issue where :meth:`pathlib.Path.iterdir` did not raise :exc:`OSError` +until iterated. + +.. + +.. date: 2023-07-23-13-05-32 +.. gh-issue: 105578 +.. nonce: XAQtyR +.. section: Library + +Deprecate :class:`typing.AnyStr` in favor of the new Type Parameter syntax. +See PEP 695. + +.. + +.. date: 2023-07-23-12-26-23 +.. gh-issue: 62519 +.. nonce: w8-81X +.. section: Library + +Make :func:`gettext.pgettext` search plural definitions when translation is +not found. + +.. + +.. date: 2023-07-22-21-57-34 +.. gh-issue: 107089 +.. nonce: Dnget2 +.. section: Library + +Shelves opened with :func:`shelve.open` have a much faster :meth:`clear` +method. Patch by James Cave. + +.. + +.. date: 2023-07-22-16-44-58 +.. gh-issue: 82500 +.. nonce: cQYoPj +.. section: Library + +Fix overflow on 32-bit systems with :mod:`asyncio` :func:`os.sendfile` +implemention. + +.. + +.. date: 2023-07-22-15-51-33 +.. gh-issue: 83006 +.. nonce: 21zaCz +.. section: Library + +Document behavior of :func:`shutil.disk_usage` for non-mounted filesystems +on Unix. + +.. + +.. date: 2023-07-22-14-29-34 +.. gh-issue: 65495 +.. nonce: fw84qM +.. section: Library + +Use lowercase ``mail from`` and ``rcpt to`` in :class:`smptlib.SMTP`. + +.. + +.. date: 2023-07-22-13-09-28 +.. gh-issue: 106186 +.. nonce: EIsUNG +.. section: Library + +Do not report ``MultipartInvariantViolationDefect`` defect when the +:class:`email.parser.Parser` class is used to parse emails with +``headersonly=True``. + +.. + +.. date: 2023-07-22-12-53-53 +.. gh-issue: 105002 +.. nonce: gkfsW0 +.. section: Library + +Fix invalid result from :meth:`PurePath.relative_to` method when attempting +to walk a "``..``" segment in *other* with *walk_up* enabled. A +:exc:`ValueError` exception is now raised in this case. + +.. + +.. date: 2023-07-20-06-00-35 +.. gh-issue: 106739 +.. nonce: W1hygr +.. section: Library + +Add the ``rtype_cache`` to the warning message (as an addition to the type +of leaked objects and the number of leaked objects already included in the +message) to make debugging leaked objects easier when the multiprocessing +resource tracker process finds leaked objects at shutdown. This helps more +quickly identify what was leaked and/or why the leaked object was not +properly cleaned up. + +.. + +.. date: 2023-07-19-10-45-24 +.. gh-issue: 106751 +.. nonce: 3HJ1of +.. section: Library + +Optimize :meth:`SelectSelector.select` for many iteration case. Patch By +Donghee Na. + +.. + +.. date: 2023-07-19-09-11-08 +.. gh-issue: 106751 +.. nonce: U9nD_B +.. section: Library + +Optimize :meth:`_PollLikeSelector.select` for many iteration case. + +.. + +.. date: 2023-07-18-23-05-12 +.. gh-issue: 106751 +.. nonce: tVvzN_ +.. section: Library + +Optimize :meth:`KqueueSelector.select` for many iteration case. Patch By +Donghee Na. + +.. + +.. date: 2023-07-17-21-45-15 +.. gh-issue: 106831 +.. nonce: RqVq9X +.. section: Library + +Fix potential missing ``NULL`` check of ``d2i_SSL_SESSION`` result in +``_ssl.c``. + +.. + +.. date: 2023-07-17-16-46-00 +.. gh-issue: 105481 +.. nonce: fek_Nn +.. section: Library + +The various opcode lists in the :mod:`dis` module are now generated from +bytecodes.c instead of explicitly constructed in opcode.py. + +.. + +.. date: 2023-07-16-23-59-33 +.. gh-issue: 106727 +.. nonce: bk3uCu +.. section: Library + +Make :func:`inspect.getsource` smarter for class for same name definitions + +.. + +.. date: 2023-07-16-10-40-34 +.. gh-issue: 106789 +.. nonce: NvyE3C +.. section: Library + +Remove import of :mod:`pprint` from :mod:`sysconfig`. + +.. + +.. date: 2023-07-15-12-52-50 +.. gh-issue: 105726 +.. nonce: NGthO8 +.. section: Library + +Added ``__slots__`` to :class:`contextlib.AbstractContextManager` and +:class:`contextlib.AbstractAsyncContextManager` so that child classes can +use ``__slots__``. + +.. + +.. date: 2023-07-15-10-24-56 +.. gh-issue: 106774 +.. nonce: FJcqCj +.. section: Library + +Update the bundled copy of pip to version 23.2.1. + +.. + +.. date: 2023-07-14-20-31-09 +.. gh-issue: 106751 +.. nonce: 52F6yQ +.. section: Library + +:mod:`selectors`: Optimize ``EpollSelector.select()`` code by moving some +code outside of the loop. + +.. + +.. date: 2023-07-14-16-54-13 +.. gh-issue: 106752 +.. nonce: BT1Yxw +.. section: Library + +Fixed several bugs in zipfile.Path, including: in +:meth:`zipfile.Path.match`, Windows separators are no longer honored (and +never were meant to be); Fixed ``name``/``suffix``/``suffixes``/``stem`` +operations when no filename is present and the Path is not at the root of +the zipfile; Reworked glob for performance and more correct matching +behavior. + +.. + +.. date: 2023-07-14-14-53-58 +.. gh-issue: 105293 +.. nonce: kimf_i +.. section: Library + +Remove call to ``SSL_CTX_set_session_id_context`` during client side context +creation in the :mod:`ssl` module. + +.. + +.. date: 2023-07-14-01-47-39 +.. gh-issue: 106734 +.. nonce: eMYSoz +.. section: Library + +Disable tab completion in multiline mode of :mod:`pdb` + +.. + +.. date: 2023-07-13-16-04-15 +.. gh-issue: 105481 +.. nonce: pYSwMj +.. section: Library + +Expose opcode metadata through :mod:`_opcode`. + +.. + +.. date: 2023-07-12-10-59-08 +.. gh-issue: 106670 +.. nonce: goQ2Sy +.. section: Library + +Add the new ``exceptions`` command to the Pdb debugger. It makes it possible +to move between chained exceptions when using post mortem debugging. + +.. + +.. date: 2023-07-12-04-58-45 +.. gh-issue: 106602 +.. nonce: dGCcXe +.. section: Library + +Add __copy__ and __deepcopy__ in :mod:`enum` + +.. + +.. date: 2023-07-12-03-04-45 +.. gh-issue: 106664 +.. nonce: ZeUG78 +.. section: Library + +:mod:`selectors`: Add ``_SelectorMapping.get()`` method and optimize +``_SelectorMapping.__getitem__()``. + +.. + +.. date: 2023-07-11-16-36-22 +.. gh-issue: 106628 +.. nonce: Kx8Zvc +.. section: Library + +Speed up parsing of emails by about 20% by not compiling a new regular +expression for every single email. + +.. + +.. date: 2023-07-11-12-34-04 +.. gh-issue: 89427 +.. nonce: GOkCp9 +.. section: Library + +Set the environment variable ``VIRTUAL_ENV_PROMPT`` at :mod:`venv` +activation, even when ``VIRTUAL_ENV_DISABLE_PROMPT`` is set. + +.. + +.. date: 2023-07-11-09-25-40 +.. gh-issue: 106530 +.. nonce: VgXrMx +.. section: Library + +Revert a change to :func:`colorsys.rgb_to_hls` that caused division by zero +for certain almost-white inputs. Patch by Terry Jan Reedy. + +.. + +.. date: 2023-07-11-08-56-40 +.. gh-issue: 106584 +.. nonce: g-SBtC +.. section: Library + +Fix exit code for ``unittest`` if all tests are skipped. Patch by Egor +Eliseev. + +.. + +.. date: 2023-07-09-13-10-54 +.. gh-issue: 106566 +.. nonce: NN35-U +.. section: Library + +Optimize ``(?!)`` (pattern which alwais fails) in regular expressions. + +.. + +.. date: 2023-07-09-01-59-24 +.. gh-issue: 106554 +.. nonce: 37c53J +.. section: Library + +:mod:`selectors`: Reduce Selector overhead by using a ``dict.get()`` to +lookup file descriptors. + +.. + +.. date: 2023-07-09-00-36-33 +.. gh-issue: 106558 +.. nonce: Zqsj6F +.. section: Library + +Remove ref cycle in callers of +:func:`~multiprocessing.managers.convert_to_error` by deleting ``result`` +from scope in a ``finally`` block. + +.. + +.. date: 2023-07-07-21-15-17 +.. gh-issue: 100502 +.. nonce: Iici1B +.. section: Library + +Add :attr:`pathlib.PurePath.pathmod` class attribute that stores the +implementation of :mod:`os.path` used for low-level path operations: either +``posixpath`` or ``ntpath``. + +.. + +.. date: 2023-07-07-18-22-07 +.. gh-issue: 106527 +.. nonce: spHQ0W +.. section: Library + +Reduce overhead to add and remove :mod:`asyncio` readers and writers. + +.. + +.. date: 2023-07-07-17-44-03 +.. gh-issue: 106524 +.. nonce: XkBV8h +.. section: Library + +Fix crash in :func:`!_sre.template` with templates containing invalid group +indices. + +.. + +.. date: 2023-07-07-16-19-59 +.. gh-issue: 106531 +.. nonce: eMfNm8 +.. section: Library + +Removed ``_legacy`` and the names it provided from ``importlib.resources``: +``Resource``, ``contents``, ``is_resource``, ``open_binary``, ``open_text``, +``path``, ``read_binary``, and ``read_text``. + +.. + +.. date: 2023-07-07-14-52-31 +.. gh-issue: 106052 +.. nonce: ak8nbs +.. section: Library + +:mod:`re` module: fix the matching of possessive quantifiers in the case of +a subpattern containing backtracking. + +.. + +.. date: 2023-07-07-13-47-28 +.. gh-issue: 106510 +.. nonce: 9n5BdC +.. section: Library + +Improve debug output for atomic groups in regular expressions. + +.. + +.. date: 2023-07-07-03-05-58 +.. gh-issue: 106503 +.. nonce: ltfeiH +.. section: Library + +Fix ref cycle in :class:`!asyncio._SelectorSocketTransport` by removing +``_write_ready`` in ``close``. + +.. + +.. date: 2023-07-05-14-34-10 +.. gh-issue: 105497 +.. nonce: HU5u89 +.. section: Library + +Fix flag mask inversion when unnamed flags exist. + +.. + +.. date: 2023-07-05-13-08-23 +.. gh-issue: 90876 +.. nonce: Qvlkfl +.. section: Library + +Prevent :mod:`multiprocessing.spawn` from failing to *import* in +environments where ``sys.executable`` is ``None``. This regressed in 3.11 +with the addition of support for path-like objects in multiprocessing. + +.. + +.. date: 2023-07-04-07-25-30 +.. gh-issue: 106403 +.. nonce: GmefbV +.. section: Library + +Instances of :class:`typing.TypeVar`, :class:`typing.ParamSpec`, +:class:`typing.ParamSpecArgs`, :class:`typing.ParamSpecKwargs`, and +:class:`typing.TypeVarTuple` once again support weak references, fixing a +regression introduced in Python 3.12.0 beta 1. Patch by Jelle Zijlstra. + +.. + +.. date: 2023-07-03-20-23-56 +.. gh-issue: 89812 +.. nonce: cFkDOE +.. section: Library + +Add private ``pathlib._PathBase`` class, which provides experimental support +for virtual filesystems, and may be made public in a future version of +Python. + +.. + +.. date: 2023-07-03-15-09-44 +.. gh-issue: 106292 +.. nonce: 3npldV +.. section: Library + +Check for an instance-dict cached value in the :meth:`__get__` method of +:func:`functools.cached_property`. This better matches the pre-3.12 behavior +and improves compatibility for users subclassing +:func:`functools.cached_property` and adding a :meth:`__set__` method. + +.. + +.. date: 2023-07-03-03-46-20 +.. gh-issue: 106350 +.. nonce: LLcTEe +.. section: Library + +Detect possible memory allocation failure in the libtommath function +:c:func:`mp_init` used by the ``_tkinter`` module. + +.. + +.. date: 2023-07-02-10-56-41 +.. gh-issue: 106330 +.. nonce: QSkIUH +.. section: Library + +Fix incorrect matching of empty paths in :meth:`pathlib.PurePath.match`. +This bug was introduced in Python 3.12.0 beta 1. + +.. + +.. date: 2023-07-01-16-51-55 +.. gh-issue: 106309 +.. nonce: hSlB17 +.. section: Library + +Deprecate :func:`typing.no_type_check_decorator`. No major type checker ever +added support for this decorator. Patch by Alex Waygood. + +.. + +.. date: 2023-07-01-16-40-54 +.. gh-issue: 102541 +.. nonce: C1ahtk +.. section: Library + +Make pydoc.doc catch bad module ImportError when output stream is not None. + +.. + +.. date: 2023-06-30-16-42-44 +.. gh-issue: 106263 +.. nonce: tk-t93 +.. section: Library + +Fix crash when calling ``repr`` with a manually constructed SignalDict +object. Patch by Charlie Zhao. + +.. + +.. date: 2023-06-29-15-10-44 +.. gh-issue: 106236 +.. nonce: EAIX4l +.. section: Library + +Replace ``assert`` statements with ``raise RuntimeError`` in +:mod:`threading`, so that ``_DummyThread`` cannot be joined even with +``-OO``. + +.. + +.. date: 2023-06-29-12-40-52 +.. gh-issue: 106238 +.. nonce: VulKb9 +.. section: Library + +Fix rare concurrency bug in lock acquisition by the logging package. + +.. + +.. date: 2023-06-27-23-22-37 +.. gh-issue: 106152 +.. nonce: ya5jBT +.. section: Library + +Added PY_THROW event hook for :mod:`cProfile` for generators + +.. + +.. date: 2023-06-25-12-28-55 +.. gh-issue: 106075 +.. nonce: W7tMRb +.. section: Library + +Added ``asyncio.taskgroups.__all__`` to ``asyncio.__all__`` for export in +star imports. + +.. + +.. date: 2023-06-25-06-57-24 +.. gh-issue: 104527 +.. nonce: TJEUkd +.. section: Library + +Zipapp will now skip over apending an archive to itself. + +.. + +.. date: 2023-06-23-22-52-24 +.. gh-issue: 106046 +.. nonce: OdLiLJ +.. section: Library + +Improve the error message from :func:`os.fspath` if called on an object +where ``__fspath__`` is set to ``None``. Patch by Alex Waygood. + +.. + +.. date: 2023-06-22-15-21-11 +.. gh-issue: 105987 +.. nonce: T7Kzrb +.. section: Library + +Fix crash due to improper reference counting in :mod:`asyncio` eager task +factory internal routines. + +.. + +.. date: 2023-06-21-19-04-27 +.. gh-issue: 105974 +.. nonce: M47n3t +.. section: Library + +Fix bug where a :class:`typing.Protocol` class that had one or more +non-callable members would raise :exc:`TypeError` when :func:`issubclass` +was called against it, even if it defined a custom ``__subclasshook__`` +method. The behaviour in Python 3.11 and lower -- which has now been +restored -- was not to raise :exc:`TypeError` in these situations if a +custom ``__subclasshook__`` method was defined. Patch by Alex Waygood. + +.. + +.. date: 2023-06-20-23-18-45 +.. gh-issue: 96145 +.. nonce: o5dTRM +.. section: Library + +Reverted addition of ``json.AttrDict``. + +.. + +.. date: 2023-06-19-22-20-41 +.. gh-issue: 89812 +.. nonce: z2l_e8 +.. section: Library + +Add :exc:`pathlib.UnsupportedOperation`, which is raised instead of +:exc:`NotImplementedError` when a path operation isn't supported. + +.. + +.. date: 2023-06-19-11-31-55 +.. gh-issue: 105808 +.. nonce: NL-quu +.. section: Library + +Fix a regression introduced in GH-101251 for 3.12, causing +:meth:`gzip.GzipFile.flush` to not flush the compressor (nor pass along the +``zip_mode`` argument). + +.. + +.. date: 2023-06-17-12-13-57 +.. gh-issue: 105481 +.. nonce: KgBH5w +.. section: Library + +:func:`~dis.stack_effect` no longer raises an exception if an ``oparg`` is +provided for an ``opcode`` that doesn't use its arg, or when it is not +provided for an ``opcode`` that does use it. In the latter case, the stack +effect is returned for ``oparg=0``. + +.. + +.. date: 2023-06-15-18-11-47 +.. gh-issue: 104799 +.. nonce: BcLzbP +.. section: Library + +Enable :func:`ast.unparse` to unparse function and class definitions created +without the new ``type_params`` field from :pep:`695`. Patch by Jelle +Zijlstra. + +.. + +.. date: 2023-06-14-18-41-18 +.. gh-issue: 105793 +.. nonce: YSoykM +.. section: Library + +Add *follow_symlinks* keyword-only argument to :meth:`pathlib.Path.is_dir` +and :meth:`~pathlib.Path.is_file`, defaulting to ``True``. + +.. + +.. date: 2023-06-14-14-32-31 +.. gh-issue: 105570 +.. nonce: sFTtQU +.. section: Library + +Deprecate two methods of creating :class:`typing.TypedDict` classes with 0 +fields using the functional syntax: ``TD = TypedDict("TD")`` and ``TD = +TypedDict("TD", None)``. Both will be disallowed in Python 3.15. To create a +``TypedDict`` class with 0 fields, either use ``class TD(TypedDict): pass`` +or ``TD = TypedDict("TD", {})``. + +.. + +.. date: 2023-06-14-10-27-34 +.. gh-issue: 105745 +.. nonce: l1ttOQ +.. section: Library + +Fix ``webbrowser.Konqueror.open`` method. + +.. + +.. date: 2023-06-13-19-38-12 +.. gh-issue: 105733 +.. nonce: WOp0mG +.. section: Library + +:mod:`ctypes`: Deprecate undocumented :func:`!ctypes.SetPointerType` and +:func:`!ctypes.ARRAY` functions. Patch by Victor Stinner. + +.. + +.. date: 2023-06-12-15-17-34 +.. gh-issue: 105687 +.. nonce: ZUonKm +.. section: Library + +Remove deprecated ``re.template``, ``re.T``, ``re.TEMPLATE``, +``sre_constans.SRE_FLAG_TEMPLATE``. + +.. + +.. date: 2023-06-12-10-40-38 +.. gh-issue: 105684 +.. nonce: yiHkFD +.. section: Library + +Supporting :meth:`asyncio.Task.set_name` is now mandatory for third party +task implementations. The undocumented :func:`!_set_task_name` function +(deprecated since 3.8) has been removed. Patch by Kumar Aditya. + +.. + +.. date: 2023-06-11-22-46-06 +.. gh-issue: 105375 +.. nonce: YkhSNt +.. section: Library + +Fix a bug in :c:func:`!_Unpickler_SetInputStream` where an exception could +end up being overwritten in case of failure. + +.. + +.. date: 2023-06-10-12-20-17 +.. gh-issue: 105626 +.. nonce: XyZein +.. section: Library + +Change the default return value of +:meth:`http.client.HTTPConnection.get_proxy_response_headers` to be ``None`` +and not ``{}``. + +.. + +.. date: 2023-06-09-23-46-23 +.. gh-issue: 105375 +.. nonce: 9KaioS +.. section: Library + +Fix bugs in :mod:`sys` where exceptions could end up being overwritten +because of deferred error handling. + +.. + +.. date: 2023-06-09-23-00-13 +.. gh-issue: 105605 +.. nonce: YuwqxY +.. section: Library + +Harden :mod:`pyexpat` error handling during module initialisation to prevent +exceptions from possibly being overwritten, and objects from being +dereferenced twice. + +.. + +.. date: 2023-06-09-22-52-45 +.. gh-issue: 105375 +.. nonce: 6igkhn +.. section: Library + +Fix bug in :mod:`decimal` where an exception could end up being overwritten. + +.. + +.. date: 2023-06-09-22-45-26 +.. gh-issue: 105375 +.. nonce: 9rp6tG +.. section: Library + +Fix bugs in :mod:`!_datetime` where exceptions could be overwritten in case +of module initialisation failure. + +.. + +.. date: 2023-06-09-22-16-46 +.. gh-issue: 105375 +.. nonce: EgVJOP +.. section: Library + +Fix bugs in :mod:`!_ssl` initialisation which could lead to leaked +references and overwritten exceptions. + +.. + +.. date: 2023-06-09-21-46-52 +.. gh-issue: 105375 +.. nonce: yrJelV +.. section: Library + +Fix a bug in :class:`array.array` where an exception could end up being +overwritten. + +.. + +.. date: 2023-06-09-21-40-45 +.. gh-issue: 105375 +.. nonce: _sZilh +.. section: Library + +Fix bugs in :mod:`_ctypes` where exceptions could end up being overwritten. + +.. + +.. date: 2023-06-09-21-30-59 +.. gh-issue: 105375 +.. nonce: eewafp +.. section: Library + +Fix a bug in the :mod:`posix` module where an exception could be +overwritten. + +.. + +.. date: 2023-06-09-21-25-14 +.. gh-issue: 105375 +.. nonce: 95g1eI +.. section: Library + +Fix bugs in :mod:`!_elementtree` where exceptions could be overwritten. + +.. + +.. date: 2023-06-09-21-11-28 +.. gh-issue: 105375 +.. nonce: 4Mxn7t +.. section: Library + +Fix bugs in :mod:`zoneinfo` where exceptions could be overwritten. + +.. + +.. date: 2023-06-09-21-04-39 +.. gh-issue: 105375 +.. nonce: bTcqS9 +.. section: Library + +Fix bugs in :mod:`errno` where exceptions could be overwritten. + +.. + +.. date: 2023-06-09-20-34-23 +.. gh-issue: 105566 +.. nonce: YxlGg1 +.. section: Library + +Deprecate creating a :class:`typing.NamedTuple` class using keyword +arguments to denote the fields (``NT = NamedTuple("NT", x=int, y=str)``). +This will be disallowed in Python 3.15. Use the class-based syntax or the +functional syntax instead. + +Two methods of creating ``NamedTuple`` classes with 0 fields using the +functional syntax are also deprecated, and will be disallowed in Python +3.15: ``NT = NamedTuple("NT")`` and ``NT = NamedTuple("NT", None)``. To +create a ``NamedTuple`` class with 0 fields, either use ``class +NT(NamedTuple): pass`` or ``NT = NamedTuple("NT", [])``. + +.. + +.. date: 2023-06-09-08-38-30 +.. gh-issue: 105545 +.. nonce: 2q3ysu +.. section: Library + +Remove deprecated in 3.11 ``webbrowser.MacOSXOSAScript._name`` attribute. + +.. + +.. date: 2023-06-08-17-49-46 +.. gh-issue: 105497 +.. nonce: K6Q8nU +.. section: Library + +Fix flag inversion when alias/mask members exist. + +.. + +.. date: 2023-06-08-15-56-45 +.. gh-issue: 105509 +.. nonce: YIG57j +.. section: Library + +:data:`typing.Annotated` is now implemented as an instance of +``typing._SpecialForm`` rather than a class. This should have no user-facing +impact for users of the :mod:`typing` module public API. + +.. + +.. date: 2023-06-08-08-58-36 +.. gh-issue: 105375 +.. nonce: bTcqS9 +.. section: Library + +Fix bugs in :mod:`pickle` where exceptions could be overwritten. + +.. + +.. date: 2023-06-07-00-13-00 +.. gh-issue: 70303 +.. nonce: frwUKH +.. section: Library + +Emit :exc:`FutureWarning` from :meth:`pathlib.Path.glob` and +:meth:`~pathlib.Path.rglob` if the given pattern ends with "``**``". In a +future Python release, patterns with this ending will match both files and +directories. Add a trailing slash to only match directories. + +.. + +.. date: 2023-06-07-00-09-52 +.. gh-issue: 105375 +.. nonce: Y_9D4n +.. section: Library + +Fix a bug in :mod:`sqlite3` where an exception could be overwritten in the +:meth:`collation <sqlite3.Connection.create_collation>` callback. + +.. + +.. date: 2023-06-06-16-00-03 +.. gh-issue: 105382 +.. nonce: A1LgzA +.. section: Library + +Remove *cafile*, *capath* and *cadefault* parameters of the +:func:`urllib.request.urlopen` function, deprecated in Python 3.6. Patch by +Victor Stinner. + +.. + +.. date: 2023-06-06-15-32-44 +.. gh-issue: 105376 +.. nonce: W4oDQp +.. section: Library + +:mod:`logging`: Remove undocumented and untested ``Logger.warn()`` and +``LoggerAdapter.warn()`` methods and ``logging.warn()`` function. Deprecated +since Python 3.3, they were aliases to the :meth:`logging.Logger.warning` +method, :meth:`!logging.LoggerAdapter.warning` method and +:func:`logging.warning` function. Patch by Victor Stinner. + +.. + +.. date: 2023-06-06-11-50-33 +.. gh-issue: 105332 +.. nonce: tmpgRA +.. section: Library + +Revert pickling method from by-name back to by-value. + +.. + +.. date: 2023-06-05-14-43-56 +.. gh-issue: 104554 +.. nonce: pwfKIo +.. section: Library + +Add RTSPS scheme support in urllib.parse + +.. + +.. date: 2023-06-04-23-20-56 +.. gh-issue: 105292 +.. nonce: ns6XQR +.. section: Library + +Add option to :func:`traceback.format_exception_only` to recurse into the +nested exception of a :exc:`BaseExceptionGroup`. + +.. + +.. date: 2023-06-04-12-16-47 +.. gh-issue: 105280 +.. nonce: srRbCe +.. section: Library + +Fix bug where ``isinstance([], collections.abc.Mapping)`` could evaluate to +``True`` if garbage collection happened at the wrong time. The bug was +caused by changes to the implementation of :class:`typing.Protocol` in +Python 3.12. + +.. + +.. date: 2023-06-02-23-32-17 +.. gh-issue: 80480 +.. nonce: savBw9 +.. section: Library + +:mod:`array`: Add ``'w'`` typecode that represents ``Py_UCS4``. + +.. + +.. date: 2023-06-02-14-57-11 +.. gh-issue: 105239 +.. nonce: SAmuuj +.. section: Library + +Fix longstanding bug where ``issubclass(object, typing.Protocol)`` would +evaluate to ``True`` in some edge cases. Patch by Alex Waygood. + +.. + +.. date: 2023-06-02-14-23-41 +.. gh-issue: 104310 +.. nonce: UamCOB +.. section: Library + +In the beta 1 release we added a utility function for extension module +authors, to use when testing their module for support in multiple +interpreters or under a per-interpreter GIL. The name of that function has +changed from ``allowing_all_extensions`` to +``_incompatible_extension_module_restrictions``. The default for the +"disable_check" argument has change from ``True`` to ``False``, to better +match the new function name. + +.. + +.. date: 2023-06-02-02-38-26 +.. gh-issue: 105080 +.. nonce: 2imGMg +.. section: Library + +Fixed inconsistent signature on derived classes for +:func:`inspect.signature` + +.. + +.. date: 2023-05-31-16-58-42 +.. gh-issue: 105144 +.. nonce: Oqfn0V +.. section: Library + +Fix a recent regression in the :mod:`typing` module. The regression meant +that doing ``class Foo(X, typing.Protocol)``, where ``X`` was a class that +had :class:`abc.ABCMeta` as its metaclass, would then cause subsequent +``isinstance(1, X)`` calls to erroneously raise :exc:`TypeError`. Patch by +Alex Waygood. + +.. + +.. date: 2023-05-30-18-45-02 +.. gh-issue: 62948 +.. nonce: 1-5wMR +.. section: Library + +The :class:`io.IOBase` finalizer now logs the ``close()`` method errors with +:data:`sys.unraisablehook`. Previously, errors were ignored silently by +default, and only logged in :ref:`Python Development Mode <devmode>` or on +:ref:`Python built on debug mode <debug-build>`. Patch by Victor Stinner. + +.. + +.. date: 2023-05-30-17-39-03 +.. gh-issue: 105096 +.. nonce: pw00FW +.. section: Library + +:mod:`wave`: Deprecate the ``getmark()``, ``setmark()`` and ``getmarkers()`` +methods of the :class:`wave.Wave_read` and :class:`wave.Wave_write` classes. +They will be removed in Python 3.15. Patch by Victor Stinner. + +.. + +.. date: 2023-05-26-21-33-24 +.. gh-issue: 104992 +.. nonce: dbq9WK +.. section: Library + +Remove the untested and undocumented :meth:`!unittest.TestProgram.usageExit` +method, deprecated in Python 3.11. Patch by Hugo van Kemenade. + +.. + +.. date: 2023-05-26-21-24-06 +.. gh-issue: 104996 +.. nonce: aaW78g +.. section: Library + +Improve performance of :class:`pathlib.PurePath` initialisation by deferring +joining of paths when multiple arguments are given. + +.. + +.. date: 2023-05-26-01-31-30 +.. gh-issue: 101588 +.. nonce: RaqxFy +.. section: Library + +Deprecate undocumented copy/deepcopy/pickle support for itertools. + +.. + +.. date: 2023-05-25-23-34-54 +.. gh-issue: 103631 +.. nonce: x5Urye +.. section: Library + +Fix ``pathlib.PurePosixPath(pathlib.PureWindowsPath(...))`` not converting +path separators to restore 3.11 compatible behavior. + +.. + +.. date: 2023-05-25-22-54-20 +.. gh-issue: 104947 +.. nonce: hi6TUr +.. section: Library + +Make comparisons between :class:`pathlib.PureWindowsPath` objects consistent +across Windows and Posix to match 3.11 behavior. + +.. + +.. date: 2023-05-25-17-25-16 +.. gh-issue: 104773 +.. nonce: O6TOMc +.. section: Library + +:pep:`594`: Remove the :mod:`!audioop` module, deprecated in Python 3.11. +Patch by Victor Stinner. + +.. + +.. date: 2023-05-25-16-50-43 +.. gh-issue: 104773 +.. nonce: pmg0Fr +.. section: Library + +:pep:`594`: Remove the :mod:`!aifc` module, deprecated in Python 3.11. Patch +by Victor Stinner. + +.. + +.. date: 2023-05-25-15-54-02 +.. gh-issue: 104773 +.. nonce: nW-5MI +.. section: Library + +:pep:`594`: Remove the :mod:`!uu` module, deprecated in Python 3.11. Patch +by Victor Stinner. + +.. + +.. date: 2023-05-25-08-50-47 +.. gh-issue: 104935 +.. nonce: -rm1BR +.. section: Library + +Fix bugs with the interaction between :func:`typing.runtime_checkable` and +:class:`typing.Generic` that were introduced by the :pep:`695` +implementation. Patch by Jelle Zijlstra. + +.. + +.. date: 2023-05-25-00-53-08 +.. gh-issue: 104773 +.. nonce: Iyjtt0 +.. section: Library + +:pep:`594`: Remove the :mod:`!crypt` module and its private :mod:`!_crypt` +extension, deprecated in Python 3.11. Patch by Victor Stinner. + +.. + +.. date: 2023-05-24-23-40-22 +.. gh-issue: 104773 +.. nonce: FHA99J +.. section: Library + +:pep:`594`: Remove the :mod:`!nis` module, deprecated in Python 3.11. Patch +by Victor Stinner. + +.. + +.. date: 2023-05-24-22-50-21 +.. gh-issue: 104898 +.. nonce: UbT2S4 +.. section: Library + +Add missing :attr:`~object.__slots__` to :class:`os.PathLike`. + +.. + +.. date: 2023-05-24-22-47-13 +.. gh-issue: 104773 +.. nonce: itOIf3 +.. section: Library + +:pep:`594`: Remove the :mod:`!xdrlib` module, deprecated in Python 3.11. +Patch by Victor Stinner. + +.. + +.. date: 2023-05-24-22-22-03 +.. gh-issue: 104773 +.. nonce: NwpjhZ +.. section: Library + +:pep:`594`: Remove the :mod:`!nntplib` module, deprecated in Python 3.11. +Patch by Victor Stinner. + +.. + +.. date: 2023-05-24-21-30-40 +.. gh-issue: 104886 +.. nonce: 8TuV-_ +.. section: Library + +Remove the undocumented :class:`!configparser.LegacyInterpolation` class, +deprecated in the docstring since Python 3.2, and with a deprecation warning +since Python 3.11. Patch by Hugo van Kemenade. + +.. + +.. date: 2023-05-24-20-21-27 +.. gh-issue: 104786 +.. nonce: SmgT5_ +.. section: Library + +Remove kwargs-based :class:`typing.TypedDict` creation + +.. + +.. date: 2023-05-24-19-48-16 +.. gh-issue: 104876 +.. nonce: Z00Qnk +.. section: Library + +Remove the :meth:`!turtle.RawTurtle.settiltangle` method, deprecated in docs +since Python 3.1 and with a deprecation warning since Python 3.11. Patch by +Hugo van Kemenade. + +.. + +.. date: 2023-05-24-18-48-10 +.. gh-issue: 104773 +.. nonce: TrgUeO +.. section: Library + +:pep:`594`: Removed the :mod:`!msilib` package, deprecated in Python 3.11. + +.. + +.. date: 2023-05-24-17-47-25 +.. gh-issue: 104773 +.. nonce: TzUSY2 +.. section: Library + +:pep:`594`: Remove the :mod:`!spwd` module, deprecated in Python 3.11: the +`python-pam project <https://pypi.org/project/python-pam/>`_ can be used +instead. Patch by Victor Stinner. + +.. + +.. date: 2023-05-24-17-22-56 +.. gh-issue: 75552 +.. nonce: _QlrpQ +.. section: Library + +Removed the ``tkinter.tix`` module, deprecated since Python 3.6. + +.. + +.. date: 2023-05-24-15-57-34 +.. gh-issue: 104773 +.. nonce: IHWRgg +.. section: Library + +:pep:`594`: Remove the :mod:`!chunk` module, deprecated in Python 3.11. +Patch by Victor Stinner. + +.. + +.. date: 2023-05-24-15-17-05 +.. gh-issue: 104773 +.. nonce: EmFIQ5 +.. section: Library + +:pep:`594`: Remove the :mod:`!mailcap` module, deprecated in Python 3.11. +Patch by Victor Stinner. + +.. + +.. date: 2023-05-24-14-58-13 +.. gh-issue: 104773 +.. nonce: sQaXrY +.. section: Library + +:pep:`594`: Remove the :mod:`!sunau` module, deprecated in Python 3.11. +Patch by Victor Stinner. + +.. + +.. date: 2023-05-24-14-30-14 +.. gh-issue: 104780 +.. nonce: nXGIJt +.. section: Library + +:pep:`594`: Remove the :mod:`!ossaudiodev` module, deprecated in Python +3.11. Patch Victor Stinner. + +.. + +.. date: 2023-05-24-11-45-22 +.. gh-issue: 104773 +.. nonce: R0Br4- +.. section: Library + +:pep:`594`: Remove the :mod:`!pipes` module, deprecated in Python 3.11. +Patch by Victor Stinner. + +.. + +.. date: 2023-05-24-09-55-33 +.. gh-issue: 104873 +.. nonce: BKQ54y +.. section: Library + +Add :func:`typing.get_protocol_members` to return the set of members +defining a :class:`typing.Protocol`. Add :func:`typing.is_protocol` to +check whether a class is a :class:`typing.Protocol`. Patch by Jelle +Zijlstra. + +.. + +.. date: 2023-05-24-09-34-23 +.. gh-issue: 104874 +.. nonce: oqyJSy +.. section: Library + +Document the ``__name__`` and ``__supertype__`` attributes of +:class:`typing.NewType`. Patch by Jelle Zijlstra. + +.. + +.. date: 2023-05-24-08-45-04 +.. gh-issue: 104835 +.. nonce: bN_B-B +.. section: Library + +Removed the following :mod:`unittest` functions, deprecated in Python 3.11: + +* :func:`!unittest.findTestCases` +* :func:`!unittest.makeSuite` +* :func:`!unittest.getTestCaseNames` + +Use :class:`~unittest.TestLoader` methods instead: + +* :meth:`unittest.TestLoader.loadTestsFromModule` +* :meth:`unittest.TestLoader.loadTestsFromTestCase` +* :meth:`unittest.TestLoader.getTestCaseNames` + +Patch by Hugo van Kemenade. + +.. + +.. date: 2023-05-23-21-25-54 +.. gh-issue: 104804 +.. nonce: 78fiE6 +.. section: Library + +Remove the untested and undocumented :mod:`webbrowser` :class:`!MacOSX` +class, deprecated in Python 3.11. Patch by Hugo van Kemenade. + +.. + +.. date: 2023-05-23-19-53-18 +.. gh-issue: 83863 +.. nonce: eRI5JG +.. section: Library + +Support for using :class:`pathlib.Path` objects as context managers has been +removed. Before Python 3.9, exiting the context manager marked a path as +"closed", which caused some (but not all!) methods to raise when called. +Since Python 3.9, using a path as a context manager does nothing. + +.. + +.. date: 2023-05-23-18-31-49 +.. gh-issue: 104799 +.. nonce: MJYOw6 +.. section: Library + +Adjust the location of the (see :pep:`695`) ``type_params`` field on +:class:`ast.ClassDef`, :class:`ast.AsyncFunctionDef`, and +:class:`ast.FunctionDef` to better preserve backward compatibility. Patch by +Jelle Zijlstra + +.. + +.. date: 2023-05-23-17-43-52 +.. gh-issue: 104797 +.. nonce: NR7KzF +.. section: Library + +Allow :class:`typing.Protocol` classes to inherit from +:class:`collections.abc.Buffer`. Patch by Jelle Zijlstra. + +.. + +.. date: 2023-05-23-04-01-27 +.. gh-issue: 104783 +.. nonce: QyhIoq +.. section: Library + +Remove ``locale.resetlocale()`` function deprecated in Python 3.11. Patch by +Victor Stinner. + +.. + +.. date: 2023-05-23-03-36-47 +.. gh-issue: 104780 +.. nonce: P4e3Yf +.. section: Library + +Remove the ``2to3`` program and the :mod:`!lib2to3` module, deprecated in +Python 3.11. Patch by Victor Stinner. + +.. + +.. date: 2023-05-23-02-20-13 +.. gh-issue: 104773 +.. nonce: 7K59zr +.. section: Library + +:pep:`594`: Remove the :mod:`!telnetlib` module, deprecated in Python 3.11. +Patch by Victor Stinner. + +.. + +.. date: 2023-05-23-02-13-11 +.. gh-issue: 104773 +.. nonce: JNiEjv +.. section: Library + +:pep:`594`: Remove the :mod:`!imghdr` module, deprecated in Python 3.11. +Patch by Victor Stinner. + +.. + +.. date: 2023-05-23-01-47-57 +.. gh-issue: 104773 +.. nonce: I6MQhb +.. section: Library + +:pep:`594`: Remove the :mod:`!cgi`` and :mod:`!cgitb` modules, deprecated in +Python 3.11. Patch by Victor Stinner. + +.. + +.. date: 2023-05-23-01-37-40 +.. gh-issue: 104773 +.. nonce: 8c-GsG +.. section: Library + +:pep:`594`: Remove the :mod:`!sndhdr` module, deprecated in Python 3.11. +Patch by Victor Stinner. + +.. + +.. date: 2023-05-22-18-39-53 +.. gh-issue: 104372 +.. nonce: 7tDRaK +.. section: Library + +On Linux where :mod:`subprocess` can use the ``vfork()`` syscall for faster +spawning, prevent the parent process from blocking other threads by dropping +the GIL while it waits for the vfork'ed child process ``exec()`` outcome. +This prevents spawning a binary from a slow filesystem from blocking the +rest of the application. + +.. + +.. date: 2023-05-19-19-46-22 +.. gh-issue: 99108 +.. nonce: wqCg0t +.. section: Library + +We now release the GIL around built-in :mod:`hashlib` computations of +reasonable size for the SHA families and MD5 hash functions, matching what +our OpenSSL backed hash computations already does. + +.. + +.. date: 2023-05-15-18-57-42 +.. gh-issue: 102613 +.. nonce: YD9yx- +.. section: Library + +Improve performance of :meth:`pathlib.Path.glob` when expanding a pattern +with a non-terminal "``**``" component by filtering walked paths through a +regular expression, rather than calling :func:`os.scandir` more than once on +each directory. + +.. + +.. date: 2023-05-11-23-03-00 +.. gh-issue: 104399 +.. nonce: MMatTP +.. section: Library + +Prepare the ``_tkinter`` module for building with Tcl 9.0 and future +libtommath by replacing usage of deprecated functions +:c:func:`mp_to_unsigned_bin_n` and :c:func:`mp_unsigned_bin_size` when +necessary. + +.. + +.. date: 2023-04-28-09-31-21 +.. gh-issue: 102676 +.. nonce: J8qDRa +.. section: Library + +Add fields ``start_offset``, ``cache_offset``, ``end_offset``, +``baseopname``, ``baseopcode``, ``jump_target`` and ``oparg`` to +:class:`dis.Instruction`. + +.. + +.. date: 2023-04-15-23-26-16 +.. gh-issue: 103558 +.. nonce: w9OzK4 +.. section: Library + +Fixed ``parent`` argument validation mechanism of :mod:`argparse`. Improved +test coverage. + +.. + +.. date: 2023-04-12-03-03-27 +.. gh-issue: 103464 +.. nonce: Oa_8IW +.. section: Library + +Provide helpful usage messages when parsing incorrect :mod:`pdb` commands. + +.. + +.. date: 2023-04-09-05-30-41 +.. gh-issue: 103384 +.. nonce: zAV7iB +.. section: Library + +Generalize the regex pattern ``BaseConfigurator.INDEX_PATTERN`` to allow +spaces and non-alphanumeric characters in keys. + +.. + +.. date: 2023-04-09-03-53-02 +.. gh-issue: 103124 +.. nonce: JspiNN +.. section: Library + +Added multiline statement support for :mod:`pdb` + +.. + +.. date: 2023-04-08-12-43-52 +.. gh-issue: 101162 +.. nonce: yOCd_J +.. section: Library + +Forbid using :func:`builtins.issubclass` with :class:`types.GenericAlias` as +the first argument. + +.. + +.. date: 2023-04-03-08-09-40 +.. gh-issue: 103200 +.. nonce: lq1Etz +.. section: Library + +Fix cache repopulation semantics of zipimport.invalidate_caches(). The cache +is now repopulated upon retrieving files with an invalid cache, not when the +cache is invalidated. + +.. + +.. date: 2023-03-14-01-19-57 +.. gh-issue: 100061 +.. nonce: CiXJYn +.. section: Library + +Fix a bug that causes wrong matches for regular expressions with possessive +qualifier. + +.. + +.. date: 2023-03-12-03-37-03 +.. gh-issue: 77609 +.. nonce: aOQttm +.. section: Library + +Add *follow_symlinks* argument to :meth:`pathlib.Path.glob` and +:meth:`~pathlib.Path.rglob`, defaulting to false. + +.. + +.. date: 2023-03-12-01-17-15 +.. gh-issue: 102541 +.. nonce: LK1adc +.. section: Library + +Hide traceback in :func:`help` prompt, when import failed. + +.. + +.. date: 2023-03-08-19-30-53 +.. gh-issue: 102120 +.. nonce: xkQ5Wr +.. section: Library + +Added a stream mode to ``tarfile`` that allows for reading archives without +caching info about the inner files. + +.. + +.. date: 2023-02-20-15-41-59 +.. gh-issue: 102029 +.. nonce: 9ZPG99 +.. section: Library + +Deprecate passing any arguments to :func:`threading.RLock`. + +.. + +.. date: 2023-02-20-12-00-11 +.. gh-issue: 88233 +.. nonce: o5Zb0t +.. section: Library + +Refactored ``zipfile._strip_extra`` to use higher level abstactions for +extras instead of a heavy-state loop. + +.. + +.. date: 2023-02-18-22-55-48 +.. gh-issue: 102024 +.. nonce: RUmg_D +.. section: Library + +Reduce calls of ``_idle_semaphore.release()`` in +:func:`concurrent.futures.thread._worker`. + +.. + +.. date: 2023-02-17-18-56-46 +.. gh-issue: 73435 +.. nonce: 7sTJHk +.. section: Library + +Add support for recursive wildcards in :meth:`pathlib.PurePath.match`. + +.. + +.. date: 2022-12-24-12-50-54 +.. gh-issue: 84867 +.. nonce: OhaLbU +.. section: Library + +:class:`unittest.TestLoader` no longer loads test cases from exact +:class:`unittest.TestCase` and :class:`unittest.FunctionTestCase` classes. + +.. + +.. date: 2022-11-26-22-05-22 +.. gh-issue: 99203 +.. nonce: j0DUae +.. section: Library + +Restore following CPython <= 3.10.5 behavior of :func:`shutil.make_archive`: +do not create an empty archive if ``root_dir`` is not a directory, and, in +that case, raise :class:`FileNotFoundError` or :class:`NotADirectoryError` +regardless of ``format`` choice. Beyond the brought-back behavior, the +function may now also raise these exceptions in ``dry_run`` mode. + +.. + +.. date: 2022-08-07-11-10-26 +.. gh-issue: 80480 +.. nonce: IFccj3 +.. section: Library + +Emit :exc:`DeprecationWarning` for :mod:`array`'s ``'u'`` type code, +deprecated in docs since Python 3.3. + +.. + +.. date: 2022-07-18-14-20-56 +.. gh-issue: 94924 +.. nonce: X0buz2 +.. section: Library + +:func:`unittest.mock.create_autospec` now properly returns coroutine +functions compatible with :func:`inspect.iscoroutinefunction` + +.. + +.. date: 2022-07-12-18-45-13 +.. gh-issue: 94777 +.. nonce: mOybx7 +.. section: Library + +Fix hanging :mod:`multiprocessing` ``ProcessPoolExecutor`` when a child +process crashes while data is being written in the call queue. + +.. + +.. date: 2022-05-17-10-46-44 +.. gh-issue: 92871 +.. nonce: GVogrT +.. section: Library + +Remove the ``typing.io`` and ``typing.re`` namespaces, deprecated since +Python 3.8. All items are still available from the main :mod:`typing` +module. + +.. + +.. bpo: 43633 +.. date: 2021-10-31-16-06-28 +.. nonce: vflwXv +.. section: Library + +Improve the textual representation of IPv4-mapped IPv6 addresses +(:rfc:`4291` Sections 2.2, 2.5.5.2) in :mod:`ipaddress`. Patch by Oleksandr +Pavliuk. + +.. + +.. bpo: 44850 +.. date: 2021-08-16-17-52-26 +.. nonce: r8jx5u +.. section: Library + +Improve performance of :func:`operator.methodcaller` using the :pep:`590` +``vectorcall`` convention. Patch by Anthony Lee and Pieter Eendebak. + +.. + +.. bpo: 44185 +.. date: 2021-06-24-20-45-03 +.. nonce: ZHb8yJ +.. section: Library + +:func:`unittest.mock.mock_open` will call the :func:`close` method of the +file handle mock when it is exiting from the context manager. Patch by Samet +Yaslan. + +.. + +.. bpo: 40988 +.. date: 2020-11-10-07-04-15 +.. nonce: 5kBC-O +.. section: Library + +Improve performance of :class:`functools.singledispatchmethod` by caching +the generated dispatch wrapper. Optimization suggested by frederico. Patch +by @mental32, Alex Waygood and Pieter Eendebak. + +.. + +.. bpo: 41768 +.. date: 2020-09-16-16-53-06 +.. nonce: 8_fWkC +.. section: Library + +:mod:`unittest.mock` speccing no longer calls class properties. Patch by +Melanie Witt. + +.. + +.. bpo: 18319 +.. date: 2020-05-03-00-33-15 +.. nonce: faPTlx +.. section: Library + +Ensure ``gettext(msg)`` retrieve translations even if a plural form exists. +In other words: ``gettext(msg) == ngettext(msg, '', 1)``. + +.. + +.. bpo: 17013 +.. date: 2019-09-13-13-28-10 +.. nonce: NWcgE3 +.. section: Library + +Add ``ThreadingMock`` to :mod:`unittest.mock` that can be used to create +Mock objects that can wait until they are called. Patch by Karthikeyan +Singaravelan and Mario Corchero. + +.. + +.. date: 2023-09-10-02-39-06 +.. gh-issue: 109209 +.. nonce: 0LBewo +.. section: Documentation + +The minimum Sphinx version required for the documentation is now 4.2. + +.. + +.. date: 2023-09-03-13-43-49 +.. gh-issue: 108826 +.. nonce: KG7abS +.. section: Documentation + +:mod:`dis` module command-line interface is now mentioned in documentation. + +.. + +.. date: 2023-07-26-16-33-04 +.. gh-issue: 107305 +.. nonce: qB2LS4 +.. section: Documentation + +Add documentation for :c:type:`PyInterpreterConfig` and +:c:func:`Py_NewInterpreterFromConfig`. Also clarify some of the nearby docs +relative to per-interpreter GIL. + +.. + +.. date: 2023-07-22-15-14-13 +.. gh-issue: 107008 +.. nonce: 3JQ1Vt +.. section: Documentation + +Document the :mod:`curses` module variables :const:`~curses.LINES` and +:const:`~curses.COLS`. + +.. + +.. date: 2023-07-21-11-51-57 +.. gh-issue: 106948 +.. nonce: K_JQ7j +.. section: Documentation + +Add a number of standard external names to ``nitpick_ignore``. + +.. + +.. date: 2023-06-30-19-28-59 +.. gh-issue: 106232 +.. nonce: hQ4-tz +.. section: Documentation + +Make timeit doc command lines compatible with Windows by using double quotes +for arguments. This works on linux and macOS also. + +.. + +.. date: 2023-05-31-23-05-51 +.. gh-issue: 105172 +.. nonce: SVfvkD +.. section: Documentation + +Fixed :func:`functools.lru_cache` docstring accounting for ``typed`` +argument's different handling of str and int. Patch by Bar Harel. + +.. + +.. date: 2023-05-29-14-10-24 +.. gh-issue: 105052 +.. nonce: MGFwbm +.. section: Documentation + +Update ``timeit`` doc to specify that time in seconds is just the default. + +.. + +.. date: 2023-05-28-21-01-00 +.. gh-issue: 89455 +.. nonce: qAKRrA +.. section: Documentation + +Add missing documentation for the ``max_group_depth`` and +``max_group_width`` parameters and the ``exceptions`` attribute of the +:class:`traceback.TracebackException` class. + +.. + +.. date: 2023-05-28-19-08-42 +.. gh-issue: 89412 +.. nonce: j4cg7K +.. section: Documentation + +Add missing documentation for the ``end_lineno`` and ``end_offset`` +attributes of the :class:`traceback.TracebackException` class. + +.. + +.. date: 2023-05-25-22-34-31 +.. gh-issue: 104943 +.. nonce: J2v1Pc +.. section: Documentation + +Remove mentions of old Python versions in :class:`typing.NamedTuple`. + +.. + +.. date: 2023-05-16-22-08-24 +.. gh-issue: 54738 +.. nonce: mJvCnj +.. section: Documentation + +Add documentation on how to localize the :mod:`argparse` module. + +.. + +.. date: 2023-03-19-09-39-31 +.. gh-issue: 102823 +.. nonce: OzsOz0 +.. section: Documentation + +Document the return type of ``x // y`` when ``x`` and ``y`` have type +:class:`float`. + +.. + +.. date: 2023-03-16-15-39-26 +.. gh-issue: 102759 +.. nonce: ehpHw6 +.. section: Documentation + +Align function signature for ``functools.reduce`` in documentation and +docstring with the C implementation. + +.. + +.. date: 2023-10-10-23-20-13 +.. gh-issue: 110647 +.. nonce: jKG3sY +.. section: Tests + +Fix test_stress_modifying_handlers() of test_signal. Patch by Victor +Stinner. + +.. + +.. date: 2023-10-06-02-32-18 +.. gh-issue: 103053 +.. nonce: VfxBLI +.. section: Tests + +Fix test_tools.test_freeze on FreeBSD: run "make distclean" instead of "make +clean" in the copied source directory to remove also the "python" program. +Patch by Victor Stinner. + +.. + +.. date: 2023-10-05-19-33-49 +.. gh-issue: 110167 +.. nonce: mIdj3v +.. section: Tests + +Fix a deadlock in test_socket when server fails with a timeout but the +client is still running in its thread. Don't hold a lock to call cleanup +functions in doCleanups(). One of the cleanup function waits until the +client completes, whereas the client could deadlock if it called +addCleanup() in such situation. Patch by Victor Stinner. + +.. + +.. date: 2023-10-05-14-22-48 +.. gh-issue: 110388 +.. nonce: 1-HQJO +.. section: Tests + +Add tests for :mod:`tty`. + +.. + +.. date: 2023-10-05-13-46-50 +.. gh-issue: 81002 +.. nonce: bOcuV6 +.. section: Tests + +Add tests for :mod:`termios`. + +.. + +.. date: 2023-10-04-18-27-47 +.. gh-issue: 110367 +.. nonce: Nnq1I7 +.. section: Tests + +regrtest: When using worker processes (-jN) with --verbose3 option, regrtest +can now display the worker output even if a worker process does crash. +Previously, sys.stdout and sys.stderr were replaced and so the worker output +was lost on a crash. Patch by Victor Stinner. + +.. + +.. date: 2023-10-03-10-54-09 +.. gh-issue: 110267 +.. nonce: O-c47G +.. section: Tests + +Add tests for pickling and copying PyStructSequence objects. Patched by +Xuehai Pan. + +.. + +.. date: 2023-10-01-10-27-02 +.. gh-issue: 110171 +.. nonce: ZPlo0h +.. section: Tests + +``libregrtest`` now always sets and shows ``random.seed``, so tests are more +reproducible. Use ``--randseed`` flag to pass the explicit random seed for +tests. + +.. + +.. date: 2023-09-30-20-18-38 +.. gh-issue: 110152 +.. nonce: 4Kxve1 +.. section: Tests + +Remove ``Tools/scripts/run_tests.py`` and ``make hostrunnertest``. Just run +``./python -m test --slow-ci``, ``make buildbottest`` or ``make test`` +instead. Python test runner (regrtest) now handles cross-compilation and +HOSTRUNNER. It also adds options to Python such fast ``-u -E -W default +-bb`` when ``--fast-ci`` or ``--slow-ci`` option is used. Patch by Victor +Stinner. + +.. + +.. date: 2023-09-29-14-11-30 +.. gh-issue: 110031 +.. nonce: fQnFnc +.. section: Tests + +Skip test_threading tests using thread+fork if Python is built with Address +Sanitizer (ASAN). Patch by Victor Stinner. + +.. + +.. date: 2023-09-29-12-48-42 +.. gh-issue: 110088 +.. nonce: qUhRga +.. section: Tests + +Fix test_asyncio timeouts: don't measure the maximum duration, a test should +not measure a CI performance. Only measure the minimum duration when a task +has a timeout or delay. Add ``CLOCK_RES`` to ``test_asyncio.utils``. Patch +by Victor Stinner. + +.. + +.. date: 2023-09-29-00-19-21 +.. gh-issue: 109974 +.. nonce: Sh_g-r +.. section: Tests + +Fix race conditions in test_threading lock tests. Wait until a condition is +met rather than using :func:`time.sleep` with a hardcoded number of seconds. +Patch by Victor Stinner. + +.. + +.. date: 2023-09-28-18-14-52 +.. gh-issue: 110033 +.. nonce: 2yHMx0 +.. section: Tests + +Fix ``test_interprocess_signal()`` of ``test_signal``. Make sure that the +``subprocess.Popen`` object is deleted before the test raising an exception +in a signal handler. Otherwise, ``Popen.__del__()`` can get the exception +which is logged as ``Exception ignored in: ...`` and the test fails. Patch +by Victor Stinner. + +.. + +.. date: 2023-09-28-14-47-14 +.. gh-issue: 109594 +.. nonce: DB5KPP +.. section: Tests + +Fix test_timeout() of test_concurrent_futures.test_wait. Remove the future +which may or may not complete depending if it takes longer than the timeout +ot not. Keep the second future which does not complete before wait() +timeout. Patch by Victor Stinner. + +.. + +.. date: 2023-09-28-12-25-19 +.. gh-issue: 109972 +.. nonce: GYnwIP +.. section: Tests + +Split test_gdb.py file into a test_gdb package made of multiple tests, so +tests can now be run in parallel. Patch by Victor Stinner. + +.. + +.. date: 2023-09-26-18-12-01 +.. gh-issue: 109566 +.. nonce: CP0Vhf +.. section: Tests + +regrtest: When ``--fast-ci`` or ``--slow-ci`` option is used, regrtest now +replaces the current process with a new process to add ``-u -W default -bb +-E`` options to Python. Patch by Victor Stinner. + +.. + +.. date: 2023-09-26-00-49-18 +.. gh-issue: 109748 +.. nonce: nxlT1i +.. section: Tests + +Fix ``test_zippath_from_non_installed_posix()`` of test_venv: don't copy +``__pycache__/`` sub-directories, because they can be modified by other +Python tests running in parallel. Patch by Victor Stinner. + +.. + +.. date: 2023-09-25-23-59-37 +.. gh-issue: 109739 +.. nonce: MUn7K5 +.. section: Tests + +regrtest: Fix reference leak check on Windows. Disable the load tracker on +Windows in the reference leak check mode (-R option). Patch by Victor +Stinner. + +.. + +.. date: 2023-09-25-14-41-18 +.. gh-issue: 109276 +.. nonce: uC_cWo +.. section: Tests + +regrtest: When a test fails with "env changed" and the --rerun option is +used, the test is now re-run in verbose mode in a fresh process. Patch by +Victor Stinner. + +.. + +.. date: 2023-09-20-02-32-17 +.. gh-issue: 103053 +.. nonce: AoUJuK +.. section: Tests + +Skip test_freeze_simple_script() of test_tools.test_freeze if Python is +built with ``./configure --enable-optimizations``, which means with Profile +Guided Optimization (PGO): it just makes the test too slow. The freeze tool +is tested by many other CIs with other (faster) compiler flags. Patch by +Victor Stinner. + +.. + +.. date: 2023-09-19-19-08-22 +.. gh-issue: 109580 +.. nonce: G02Zam +.. section: Tests + +Skip ``test_perf_profiler`` if Python is built with ASAN, MSAN or UBSAN +sanitizer. Python does crash randomly in this test on such build. Patch by +Victor Stinner. + +.. + +.. date: 2023-09-19-13-33-20 +.. gh-issue: 109566 +.. nonce: aX0g9o +.. section: Tests + +regrtest: Add ``--fast-ci`` and ``--slow-ci`` options. ``--fast-ci`` uses a +default timeout of 10 minutes and ``-u all,-cpu`` (skip slowest tests). +``--slow-ci`` uses a default timeout of 20 minues and ``-u all`` (run all +tests). Patch by Victor Stinner. + +.. + +.. date: 2023-09-14-23-27-40 +.. gh-issue: 109425 +.. nonce: j-uFep +.. section: Tests + +libregrtest now decodes stdout of test worker processes with the +"backslashreplace" error handler to log corrupted stdout, instead of failing +with an error and not logging the stdout. Patch by Victor Stinner. + +.. + +.. date: 2023-09-14-22-58-47 +.. gh-issue: 109396 +.. nonce: J1a4jR +.. section: Tests + +Fix ``test_socket.test_hmac_sha1()`` in FIPS mode. Use a longer key: FIPS +mode requires at least of at least 112 bits. The previous key was only 32 +bits. Patch by Victor Stinner. + +.. + +.. date: 2023-09-13-05-58-09 +.. gh-issue: 104736 +.. nonce: lA25Fu +.. section: Tests + +Fix test_gdb on Python built with LLVM clang 16 on Linux ppc64le (ex: Fedora +38). Search patterns in gdb "bt" command output to detect when gdb fails to +retrieve the traceback. For example, skip a test if ``Backtrace stopped: +frame did not save the PC`` is found. Patch by Victor Stinner. + +.. + +.. date: 2023-09-11-19-11-57 +.. gh-issue: 109276 +.. nonce: qxI4OG +.. section: Tests + +libregrtest now calls :func:`random.seed()` before running each test file +when ``-r/--randomize`` command line option is used. Moreover, it's also +called in worker processes. It should help to make tests more +deterministic. Previously, it was only called once in the main process +before running all test files and it was not called in worker processes. +Patch by Victor Stinner. + +.. + +.. date: 2023-09-11-18-19-52 +.. gh-issue: 109276 +.. nonce: btfFtT +.. section: Tests + +libregrtest now uses a separated file descriptor to write test result as +JSON. Previously, if a test wrote debug messages late around the JSON, the +main test process failed to parse JSON. Patch by Victor Stinner. + +.. + +.. date: 2023-09-10-23-05-50 +.. gh-issue: 108996 +.. nonce: tJBru6 +.. section: Tests + +Fix and enable ``test_msvcrt``. + +.. + +.. date: 2023-09-10-22-32-20 +.. gh-issue: 109237 +.. nonce: SvgKwD +.. section: Tests + +Fix ``test_site.test_underpth_basic()`` when the working directory contains +at least one non-ASCII character: encode the ``._pth`` file to UTF-8 and +enable the UTF-8 Mode to use UTF-8 for the child process stdout. Patch by +Victor Stinner. + +.. + +.. date: 2023-09-10-19-59-57 +.. gh-issue: 109230 +.. nonce: SRNLFQ +.. section: Tests + +Fix ``test_pyexpat.test_exception()``: it can now be run from a directory +different than Python source code directory. Before, the test failed in this +case. Skip the test if Modules/pyexpat.c source is not available. Skip also +the test on Python implementations other than CPython. Patch by Victor +Stinner. + +.. + +.. date: 2023-09-06-22-06-22 +.. gh-issue: 108996 +.. nonce: IBhR3U +.. section: Tests + +Add tests for ``msvcrt``. + +.. + +.. date: 2023-09-06-18-27-53 +.. gh-issue: 109015 +.. nonce: 1dS1AQ +.. section: Tests + +Fix test_asyncio, test_imaplib and test_socket tests on FreeBSD if the TCP +blackhole is enabled (``sysctl net.inet.tcp.blackhole``). Skip the few tests +which failed with ``ETIMEDOUT`` which such non standard configuration. +Currently, the `FreeBSD GCP image enables TCP and UDP blackhole +<https://reviews.freebsd.org/D41751>`_ (``sysctl net.inet.tcp.blackhole=2`` +and ``sysctl net.inet.udp.blackhole=1``). Patch by Victor Stinner. + +.. + +.. date: 2023-09-06-15-36-51 +.. gh-issue: 91960 +.. nonce: P3nD5v +.. section: Tests + +Skip ``test_gdb`` if gdb is unable to retrieve Python frame objects: if a +frame is ``<optimized out>``. When Python is built with "clang -Og", gdb can +fail to retrive the *frame* parameter of ``_PyEval_EvalFrameDefault()``. In +this case, tests like ``py_bt()`` are likely to fail. Without getting access +to Python frames, ``python-gdb.py`` is mostly clueless on retrieving the +Python traceback. Moreover, ``test_gdb`` is no longer skipped on macOS if +Python is built with Clang. Patch by Victor Stinner. + +.. + +.. date: 2023-09-05-23-00-09 +.. gh-issue: 108962 +.. nonce: R4NwuU +.. section: Tests + +Skip ``test_tempfile.test_flags()`` if ``chflags()`` fails with "OSError: +[Errno 45] Operation not supported" (ex: on FreeBSD 13). Patch by Victor +Stinner. + +.. + +.. date: 2023-09-05-21-42-54 +.. gh-issue: 91960 +.. nonce: abClTs +.. section: Tests + +FreeBSD 13.2 CI coverage for pull requests is now provided by Cirrus-CI (a +hosted CI service that supports Linux, macOS, Windows, and FreeBSD). + +.. + +.. date: 2023-09-04-15-18-14 +.. gh-issue: 89392 +.. nonce: 8A4T5p +.. section: Tests + +Removed support of ``test_main()`` function in tests. They now always use +normal unittest test runner. + +.. + +.. date: 2023-09-03-21-41-10 +.. gh-issue: 108851 +.. nonce: xFTYOE +.. section: Tests + +Fix ``test_tomllib`` recursion tests for WASI buildbots: reduce the +recursion limit and compute the maximum nested array/dict depending on the +current available recursion limit. Patch by Victor Stinner. + +.. + +.. date: 2023-09-03-21-18-35 +.. gh-issue: 108851 +.. nonce: CCuHyI +.. section: Tests + +Add ``get_recursion_available()`` and ``get_recursion_depth()`` functions to +the :mod:`test.support` module. Patch by Victor Stinner. + +.. + +.. date: 2023-09-03-20-15-49 +.. gh-issue: 108834 +.. nonce: Osvmhf +.. section: Tests + +Add ``--fail-rerun option`` option to regrtest: if a test failed when then +passed when rerun in verbose mode, exit the process with exit code 2 +(error), instead of exit code 0 (success). Patch by Victor Stinner. + +.. + +.. date: 2023-09-03-06-17-12 +.. gh-issue: 108834 +.. nonce: fjV-CJ +.. section: Tests + +Rename regrtest ``--verbose2`` option (``-w``) to ``--rerun``. Keep +``--verbose2`` as a deprecated alias. Patch by Victor Stinner. + +.. + +.. date: 2023-09-03-02-01-55 +.. gh-issue: 108834 +.. nonce: iAwXzj +.. section: Tests + +When regrtest reruns failed tests in verbose mode (``./python -m test +--rerun``), tests are now rerun in fresh worker processes rather than being +executed in the main process. If a test does crash or is killed by a +timeout, the main process can detect and handle the killed worker process. +Tests are rerun in parallel if the ``-jN`` option is used to run tests in +parallel. Patch by Victor Stinner. + +.. + +.. date: 2023-09-02-19-06-52 +.. gh-issue: 108822 +.. nonce: arTbBI +.. section: Tests + +``regrtest`` now computes statistics on all tests: successes, failures and +skipped. ``test_netrc``, ``test_pep646_syntax`` and ``test_xml_etree`` now +return results in their ``test_main()`` function. Patch by Victor Stinner +and Alex Waygood. + +.. + +.. date: 2023-09-02-05-13-38 +.. gh-issue: 108794 +.. nonce: tGHXBt +.. section: Tests + +The :meth:`doctest.DocTestRunner.run` method now counts the number of +skipped tests. Add :attr:`doctest.DocTestRunner.skips` and +:attr:`doctest.TestResults.skipped` attributes. Patch by Victor Stinner. + +.. + +.. date: 2023-08-24-06-10-36 +.. gh-issue: 108388 +.. nonce: YCVB0D +.. section: Tests + +Convert test_concurrent_futures to a package of 7 sub-tests. Patch by Victor +Stinner. + +.. + +.. date: 2023-08-24-04-23-35 +.. gh-issue: 108388 +.. nonce: mr0MeE +.. section: Tests + +Split test_multiprocessing_fork, test_multiprocessing_forkserver and +test_multiprocessing_spawn into test packages. Each package is made of 4 +sub-tests: processes, threads, manager and misc. It allows running more +tests in parallel and so reduce the total test duration. Patch by Victor +Stinner. + +.. + +.. date: 2023-08-23-04-08-18 +.. gh-issue: 105776 +.. nonce: oE6wp_ +.. section: Tests + +Fix test_cppext when the C compiler command ``-std=c11`` option: remove +``-std=`` options from the compiler command. Patch by Victor Stinner. + +.. + +.. date: 2023-08-05-14-01-07 +.. gh-issue: 107652 +.. nonce: 5OxOlT +.. section: Tests + +Set up CIFuzz to run fuzz targets in GitHub Actions. Patch by Illia +Volochii. + +.. + +.. date: 2023-07-25-14-36-33 +.. gh-issue: 107237 +.. nonce: y1pY79 +.. section: Tests + +``test_logging``: Fix ``test_udp_reconnection()`` by increasing the timeout +from 100 ms to 5 minutes (LONG_TIMEOUT). Patch by Victor Stinner. + +.. + +.. date: 2023-07-24-16-56-59 +.. gh-issue: 107178 +.. nonce: Gq1usE +.. section: Tests + +Add the C API test for functions in the Mapping Protocol, the Sequence +Protocol and some functions in the Object Protocol. + +.. + +.. date: 2023-07-22-13-49-40 +.. gh-issue: 106714 +.. nonce: btYI5S +.. section: Tests + +test_capi: Fix test_no_FatalError_infinite_loop() to no longer write a +coredump, by using test.support.SuppressCrashReport. Patch by Victor +Stinner. + +.. + +.. date: 2023-07-16-02-57-08 +.. gh-issue: 104090 +.. nonce: cKtK7g +.. section: Tests + +Avoid creating a reference to the test object in +:meth:`~unittest.TestResult.collectedDurations`. + +.. + +.. date: 2023-07-14-16-20-06 +.. gh-issue: 106752 +.. nonce: gd1i6D +.. section: Tests + +Moved tests for ``zipfile.Path`` into ``Lib/test/test_zipfile/_path``. Made +``zipfile._path`` a package. + +.. + +.. date: 2023-07-12-14-07-07 +.. gh-issue: 106690 +.. nonce: NDz-oG +.. section: Tests + +Add .coveragerc to cpython repository for use with coverage package. + +.. + +.. date: 2023-06-28-02-51-08 +.. gh-issue: 101634 +.. nonce: Rayczr +.. section: Tests + +When running the Python test suite with ``-jN`` option, if a worker stdout +cannot be decoded from the locale encoding report a failed testn so the +exitcode is non-zero. Patch by Victor Stinner. + +.. + +.. date: 2023-05-29-14-49-46 +.. gh-issue: 105084 +.. nonce: lvVvoj +.. section: Tests + +When the Python build is configured ``--with-wheel-pkg-dir``, tests +requiring the ``setuptools`` and ``wheel`` wheels will search for the wheels +in ``WHEEL_PKG_DIR``. + +.. + +.. date: 2023-05-19-08-06-06 +.. gh-issue: 81005 +.. nonce: -q7m9W +.. section: Tests + +String tests are modified to reflect that ``str`` and ``unicode`` are merged +in Python 3. Patch by Daniel Fortunov. + +.. + +.. date: 2023-04-05-06-45-20 +.. gh-issue: 103186 +.. nonce: 640Eg- +.. section: Tests + +Suppress and assert expected RuntimeWarnings in test_sys_settrace.py + +.. + +.. date: 2022-06-09-21-27-38 +.. gh-issue: 69714 +.. nonce: 49tyHW +.. section: Tests + +Add additional tests to :mod:`calendar` to achieve full test coverage. + +.. + +.. date: 2023-10-06-02-15-23 +.. gh-issue: 103053 +.. nonce: --7JUF +.. section: Build + +"make check-clean-src" now also checks if the "python" program is found in +the source directory: fail with an error if it does exist. Patch by Victor +Stinner. + +.. + +.. date: 2023-10-05-11-46-20 +.. gh-issue: 109191 +.. nonce: imUkVN +.. section: Build + +Fix compile error when building with recent versions of libedit. + +.. + +.. date: 2023-10-03-17-55-09 +.. gh-issue: 110276 +.. nonce: luaKRg +.. section: Build + +No longer ignore :envvar:`PROFILE_TASK` failure silently: command used by +Profile Guided Optimization (PGO). Patch by Victor Stinner. + +.. + +.. date: 2023-09-29-21-01-48 +.. gh-issue: 109566 +.. nonce: _enldb +.. section: Build + +Remove ``make testall`` target: use ``make buildbottest`` instead. Patch by +Victor Stinner. + +.. + +.. date: 2023-09-26-16-00-50 +.. gh-issue: 109740 +.. nonce: wboWdQ +.. section: Build + +The experimental ``--disable-gil`` configure flag now includes "t" (for +"threaded") in extension ABI tags. + +.. + +.. date: 2023-09-07-19-58-05 +.. gh-issue: 109054 +.. nonce: 5r3S3l +.. section: Build + +Fix building the ``_testcapi`` extension on Linux AArch64 which requires +linking to libatomic when ``<cpython/pyatomic.h>`` is used: the +``_Py_atomic_or_uint64()`` function requires libatomic +``__atomic_fetch_or_8()`` on this platform. The configure script now checks +if linking to libatomic is needed and generates a new LIBATOMIC variable +used to build the _testcapi extension. Patch by Victor Stinner. + +.. + +.. date: 2023-09-02-18-04-15 +.. gh-issue: 63760 +.. nonce: r8hJ6q +.. section: Build + +Fix Solaris build: no longer redefine the ``gethostname()`` function. +Solaris defines the function since 2005. Patch by Victor Stinner, original +patch by Jakub KulĂk. + +.. + +.. date: 2023-09-01-01-39-26 +.. gh-issue: 108740 +.. nonce: JHExAQ +.. section: Build + +Fix a race condition in ``make regen-all``. The ``deepfreeze.c`` source and +files generated by Argument Clinic are now generated or updated before +generating "global objects". Previously, some identifiers may miss depending +on the order in which these files were generated. Patch by Victor Stinner. + +.. + +.. date: 2023-08-30-02-52-52 +.. gh-issue: 108634 +.. nonce: 3dpBvf +.. section: Build + +Python built with :file:`configure` :option:`--with-trace-refs` (tracing +references) is now ABI compatible with Python release build and :ref:`debug +build <debug-build>`. Patch by Victor Stinner. + +.. + +.. date: 2023-08-29-15-05-09 +.. gh-issue: 85283 +.. nonce: tlK7G7 +.. section: Build + +The ``_stat`` C extension is now built with the :ref:`limited C API +<limited-c-api>`. Patch by Victor Stinner. + +.. + +.. date: 2023-08-24-18-36-31 +.. gh-issue: 108447 +.. nonce: Ofsygr +.. section: Build + +Fix x86_64 GNU/Hurd build + +.. + +.. date: 2023-08-09-17-05-33 +.. gh-issue: 107814 +.. nonce: c0Oapq +.. section: Build + +When calling ``find_python.bat`` with ``-q`` it did not properly silence the +output of nuget. That is now fixed. + +.. + +.. date: 2023-08-01-17-12-53 +.. gh-issue: 105481 +.. nonce: 42nsDE +.. section: Build + +Remove the make target ``regen-opcode-targets``, merge its work into +``regen-opcode`` which repeats most of the calculation. This simplifies the +code for the build and reduces code duplication. + +.. + +.. date: 2023-07-28-18-17-33 +.. gh-issue: 106881 +.. nonce: U3Ezdq +.. section: Build + +Check for ``linux/limits.h`` before including it in +``Modules/posixmodule.c``. + +.. + +.. date: 2023-07-25-02-30-00 +.. gh-issue: 95855 +.. nonce: wA7rAf +.. section: Build + +Refactor platform triplet detection code and add detection for MIPS soft +float and musl libc. + +.. + +.. date: 2023-07-23-00-38-51 +.. gh-issue: 106962 +.. nonce: VVYrWB +.. section: Build + +Detect MPI compilers in :file:`configure`. + +.. + +.. date: 2023-06-26-21-56-29 +.. gh-issue: 106118 +.. nonce: 0cCfhl +.. section: Build + +Fix compilation for platforms without :data:`!O_CLOEXEC`. The issue was +introduced with Python 3.12b1 in :gh:`103295`. Patch by Erlend Aasland. + +.. + +.. date: 2023-06-16-23-40-49 +.. gh-issue: 105875 +.. nonce: naj8v5 +.. section: Build + +SQLite 3.15.2 or newer is required to build the :mod:`sqlite3` extension +module. Patch by Erlend Aasland. + +.. + +.. date: 2023-06-06-09-08-10 +.. gh-issue: 90005 +.. nonce: 8mmeJQ +.. section: Build + +Fix a regression in :file:`configure` where we could end up unintentionally +linking with ``libbsd``. + +.. + +.. date: 2023-06-02-19-12-45 +.. gh-issue: 102404 +.. nonce: Ry9piA +.. section: Build + +Document how to perform a WASI build on Linux. Also add +Tools/wasm/build_wasi.sh as a reference implementation of the docs. + +.. + +.. date: 2023-05-26-15-44-20 +.. gh-issue: 89886 +.. nonce: _iSW-p +.. section: Build + +Autoconf 2.71 and aclocal 1.16.4 is now required to regenerate +:file:`!configure`. + +.. + +.. date: 2023-05-20-23-49-30 +.. gh-issue: 104692 +.. nonce: s5UIu5 +.. section: Build + +Include ``commoninstall`` as a prerequisite for ``bininstall`` + +This ensures that ``commoninstall`` is completed before ``bininstall`` is +started when parallel builds are used (``make -j install``), and so the +``python3`` symlink is only installed after all standard library modules are +installed. + +.. + +.. date: 2023-02-03-21-36-42 +.. gh-issue: 101538 +.. nonce: sF5F6S +.. section: Build + +Add experimental wasi-threads support. Patch by Takashi Yamamoto. + +.. + +.. date: 2023-10-06-14-20-14 +.. gh-issue: 110437 +.. nonce: xpYy9q +.. section: Windows + +Allows overriding the source of VC redistributables so that releases can be +guaranteed to never downgrade between updates. + +.. + +.. date: 2023-10-05-15-23-23 +.. gh-issue: 109286 +.. nonce: N8OzMg +.. section: Windows + +Update Windows installer to use SQLite 3.43.1. + +.. + +.. date: 2023-10-03-12-30-59 +.. gh-issue: 82367 +.. nonce: nxwfMx +.. section: Windows + +:func:`os.path.realpath` now resolves MS-DOS style file names even if the +file is not accessible. Patch by Moonsik Park. + +.. + +.. date: 2023-09-28-17-09-23 +.. gh-issue: 109991 +.. nonce: CIMftz +.. section: Windows + +Update Windows build to use OpenSSL 3.0.11. + +.. + +.. date: 2023-08-22-00-36-57 +.. gh-issue: 106242 +.. nonce: q24ITw +.. section: Windows + +Fixes :func:`~os.path.realpath` to behave consistently when passed a path +containing an embedded null character on Windows. In strict mode, it now +raises :exc:`OSError` instead of the unexpected :exc:`ValueError`, and in +non-strict mode will make the path absolute. + +.. + +.. date: 2023-08-18-00-01-21 +.. gh-issue: 83180 +.. nonce: DdLffv +.. section: Windows + +Changes the :ref:`launcher` to prefer an active virtual environment when the +launched script has a shebang line using a Unix-like virtual command, even +if the command requests a specific version of Python. + +.. + +.. date: 2023-07-18-13-01-26 +.. gh-issue: 106844 +.. nonce: mci4xO +.. section: Windows + +Fix integer overflow and truncating by the null character in +:func:`!_winapi.LCMapStringEx` which affects :func:`ntpath.normcase`. + +.. + +.. date: 2023-06-08-11-30-17 +.. gh-issue: 105436 +.. nonce: 1qlDxw +.. section: Windows + +Ensure that an empty environment block is terminated by two null characters, +as is required by Windows. + +.. + +.. date: 2023-05-31-16-14-31 +.. gh-issue: 105146 +.. nonce: gNjqq8 +.. section: Windows + +Updated the links at the end of the installer to point to Discourse rather +than the mailing lists. + +.. + +.. date: 2023-05-29-17-09-31 +.. gh-issue: 103646 +.. nonce: U8oGQx +.. section: Windows + +When installed from the Microsoft Store, ``pip`` no longer defaults to +per-user installs. However, as the install directory is unwritable, it +should automatically decide to do a per-user install anyway. This should +resolve issues when ``pip`` is passed an option that conflicts with +``--user``. + +.. + +.. date: 2023-05-29-11-38-53 +.. gh-issue: 88745 +.. nonce: cldf9G +.. section: Windows + +Improve performance of :func:`shutil.copy2` by using the operating system's +``CopyFile2`` function. This may result in subtle changes to metadata copied +along with some files, bringing them in line with normal OS behavior. + +.. + +.. date: 2023-05-24-21-00-57 +.. gh-issue: 104820 +.. nonce: ibyrpp +.. section: Windows + +Fixes :func:`~os.stat` and related functions on file systems that do not +support file ID requests. This includes FAT32 and exFAT. + +.. + +.. date: 2023-05-23-19-26-28 +.. gh-issue: 104803 +.. nonce: gqxYml +.. section: Windows + +Add :func:`os.path.isdevdrive` to detect whether a path is on a Windows Dev +Drive. Returns ``False`` on platforms that do not support Dev Drive, and is +absent on non-Windows platforms. + +.. + +.. date: 2023-10-04-23-38-24 +.. gh-issue: 109286 +.. nonce: 1ZLMaq +.. section: macOS + +Update macOS installer to use SQLite 3.43.1. + +.. + +.. date: 2023-09-27-22-35-22 +.. gh-issue: 109991 +.. nonce: -xJzaF +.. section: macOS + +Update macOS installer to use OpenSSL 3.0.11. + +.. + +.. date: 2023-07-30-23-42-20 +.. gh-issue: 99079 +.. nonce: JAtoh1 +.. section: macOS + +Update macOS installer to use OpenSSL 3.0.9. + +.. + +.. date: 2023-05-23-17-19-49 +.. gh-issue: 104719 +.. nonce: rvYXH- +.. section: IDLE + +Remove IDLE's modification of tokenize.tabsize and test other uses of +tokenize data and methods. + +.. + +.. date: 2023-09-27-23-31-54 +.. gh-issue: 109991 +.. nonce: sUUYY8 +.. section: Tools/Demos + +Update GitHub CI workflows to use OpenSSL 3.0.11 and multissltests to use +1.1.1w, 3.0.11, and 3.1.3. + +.. + +.. date: 2023-08-25-22-40-12 +.. gh-issue: 108494 +.. nonce: 4RbDdu +.. section: Tools/Demos + +`Argument Clinic <https://devguide.python.org/development-tools/clinic/>`__ +now has a partial support of the :ref:`Limited API <limited-c-api>`: see +`documentation in the Python Developer's Guide +<https://devguide.python.org/development-tools/clinic/#clinic-howto-limited-capi>`__ +Patch by Victor Stinner. + +.. + +.. date: 2023-08-15-19-50-49 +.. gh-issue: 107704 +.. nonce: Uu84vd +.. section: Tools/Demos + +It is now possible to deprecate passing keyword arguments for +keyword-or-positional parameters with Argument Clinic, using the new ``/ +[from X.Y]`` syntax. (To be read as *"positional-only from Python version +X.Y"*.) See `documentation in the Python Developer's Guide +<https://devguide.python.org/development-tools/clinic/#clinic-howto-deprecate-keyword>`__ +for more information. + +.. + +.. date: 2023-08-13-11-18-06 +.. gh-issue: 107880 +.. nonce: gBVVQ7 +.. section: Tools/Demos + +Argument Clinic can now clone :meth:`!__init__` and :meth:`!__new__` +methods. + +.. + +.. date: 2023-08-08-12-21-41 +.. gh-issue: 104683 +.. nonce: DRsAQE +.. section: Tools/Demos + +Add ``--exclude`` option to Argument Clinic CLI. + +.. + +.. date: 2023-08-07-16-30-48 +.. gh-issue: 95065 +.. nonce: -im4R5 +.. section: Tools/Demos + +Argument Clinic now supports overriding automatically generated signature by +using directive ``@text_signature``. See `documentation in the Python +Developer's Guide +<https://devguide.python.org/development-tools/clinic/#clinic-howto-override-signature>`__ + +.. + +.. date: 2023-08-04-00-04-40 +.. gh-issue: 107609 +.. nonce: 2DqgtL +.. section: Tools/Demos + +Fix duplicate module check in Argument Clinic. Previously, a duplicate +definition would incorrectly be silently accepted. Patch by Erlend E. +Aasland. + +.. + +.. date: 2023-07-30-23-32-16 +.. gh-issue: 107467 +.. nonce: 5O9p3G +.. section: Tools/Demos + +The Argument Clinic command-line tool now prints to stderr instead of stdout +on failure. + +.. + +.. date: 2023-07-21-23-16-05 +.. gh-issue: 106970 +.. nonce: NLRnml +.. section: Tools/Demos + +Fix bugs in the Argument Clinic ``destination <name> clear`` command; the +destination buffers would never be cleared, and the ``destination`` +directive parser would simply continue to the fault handler after processing +the command. Patch by Erlend E. Aasland. + +.. + +.. date: 2023-07-13-12-08-35 +.. gh-issue: 106706 +.. nonce: 29zp8E +.. section: Tools/Demos + +Change bytecode syntax for families to remove redundant name matching pseudo +syntax. + +.. + +.. date: 2023-07-03-14-06-19 +.. gh-issue: 106359 +.. nonce: RfJuR0 +.. section: Tools/Demos + +Argument Clinic now explicitly forbids "kwarg splats" in function calls used +as annotations. + +.. + +.. date: 2023-04-05-07-19-36 +.. gh-issue: 103186 +.. nonce: yEozgK +.. section: Tools/Demos + +``freeze`` now fetches ``CONFIG_ARGS`` from the original CPython instance +the Makefile uses to call utility scripts. Patch by Ijtaba Hussain. + +.. + +.. date: 2022-07-23-00-33-28 +.. gh-issue: 95065 +.. nonce: NfCCpp +.. section: Tools/Demos + +It is now possible to deprecate passing parameters positionally with +Argument Clinic, using the new ``* [from X.Y]`` syntax. (To be read as +*"keyword-only from Python version X.Y"*.) See `documentation in the Python +Developer's Guide +<https://devguide.python.org/development-tools/clinic/#clinic-howto-deprecate-positional>`__ +for more information. Patch by Erlend E. Aasland with help from Alex +Waygood, Nikita Sobolev, and Serhiy Storchaka. + +.. + +.. date: 2023-10-11-17-29-52 +.. gh-issue: 85283 +.. nonce: OsqIBF +.. section: C API + +If the :c:macro:`Py_LIMITED_API` macro is defined, +:c:macro:`!Py_BUILD_CORE`, :c:macro:`!Py_BUILD_CORE_BUILTIN` and +:c:macro:`!Py_BUILD_CORE_MODULE` macros are now undefined by ``<Python.h>``. +Patch by Victor Stinner. + +.. + +.. date: 2023-10-03-19-01-20 +.. gh-issue: 110289 +.. nonce: YBIHEz +.. section: C API + +Add :c:func:`PyUnicode_EqualToUTF8AndSize` and +:c:func:`PyUnicode_EqualToUTF8` functions. + +.. + +.. date: 2023-10-03-06-19-10 +.. gh-issue: 110235 +.. nonce: uec5AG +.. section: C API + +Raise :exc:`TypeError` for duplicate/unknown fields in ``PyStructSequence`` +constructor. Patched by Xuehai Pan. + +.. + +.. date: 2023-10-02-13-39-57 +.. gh-issue: 110014 +.. nonce: gfQ4jU +.. section: C API + +Remove undocumented ``PY_TIMEOUT_MAX`` constant from the limited C API. +Patch by Victor Stinner. + +.. + +.. date: 2023-09-17-21-47-31 +.. gh-issue: 109521 +.. nonce: JDF6i9 +.. section: C API + +:c:func:`PyImport_GetImporter` now sets RuntimeError if it fails to get +:data:`sys.path_hooks` or :data:`sys.path_importer_cache` or they are not +list and dict correspondingly. Previously it could return NULL without +setting error in obscure cases, crash or raise SystemError if these +attributes have wrong type. + +.. + +.. date: 2023-09-12-13-09-36 +.. gh-issue: 108724 +.. nonce: -yMsC8 +.. section: C API + +Add :c:type:`PyMutex` internal-only lightweight locking API. + +.. + +.. date: 2023-09-06-00-14-49 +.. gh-issue: 85283 +.. nonce: GKY0Cc +.. section: C API + +Add :c:func:`PySys_AuditTuple` function: similar to :c:func:`PySys_Audit`, +but pass event arguments as a Python :class:`tuple` object. Patch by Victor +Stinner. + +.. + +.. date: 2023-09-04-11-47-12 +.. gh-issue: 108867 +.. nonce: Cr_LKd +.. section: C API + +Add :c:func:`PyThreadState_GetUnchecked()` function: similar to +:c:func:`PyThreadState_Get()`, but don't kill the process with a fatal error +if it is NULL. The caller is responsible to check if the result is NULL. +Previously, the function was private and known as +``_PyThreadState_UncheckedGet()``. Patch by Victor Stinner. + +.. + +.. date: 2023-09-02-22-35-55 +.. gh-issue: 108765 +.. nonce: 4TOdBT +.. section: C API + +``Python.h`` no longer includes the ``<ctype.h>`` standard header file. If +needed, it should now be included explicitly. For example, it provides +``isalpha()`` and ``tolower()`` functions which are locale dependent. Python +provides locale independent functions, like :c:func:`!Py_ISALPHA` and +:c:func:`!Py_TOLOWER`. Patch by Victor Stinner. + +.. + +.. date: 2023-09-01-21-10-29 +.. gh-issue: 108765 +.. nonce: eeXtYF +.. section: C API + +``Python.h`` no longer includes the ``<unistd.h>`` standard header file. If +needed, it should now be included explicitly. For example, it provides the +functions: ``close()``, ``getpagesize()``, ``getpid()`` and ``sysconf()``. +Patch by Victor Stinner. + +.. + +.. date: 2023-09-01-20-41-49 +.. gh-issue: 108765 +.. nonce: 5dXc1r +.. section: C API + +``Python.h`` no longer includes the ``<ieeefp.h>`` standard header. It was +included for the ``finite()`` function which is now provided by the +``<math.h>`` header. It should now be included explicitly if needed. Remove +also the ``HAVE_IEEEFP_H`` macro. Patch by Victor Stinner. + +.. + +.. date: 2023-09-01-18-42-31 +.. gh-issue: 108765 +.. nonce: IyYNDu +.. section: C API + +``Python.h`` no longer includes these standard header files: ``<time.h>``, +``<sys/select.h>`` and ``<sys/time.h>``. If needed, they should now be +included explicitly. For example, ``<time.h>`` provides the ``clock()`` and +``gmtime()`` functions, ``<sys/select.h>`` provides the ``select()`` +function, and ``<sys/time.h>`` provides the ``futimes()``, +``gettimeofday()`` and ``setitimer()`` functions. Patch by Victor Stinner. + +.. + +.. date: 2023-09-01-16-28-09 +.. gh-issue: 108511 +.. nonce: gg-QDG +.. section: C API + +Add functions :c:func:`PyObject_HasAttrWithError`, +:c:func:`PyObject_HasAttrStringWithError`, +:c:func:`PyMapping_HasKeyWithError` and +:c:func:`PyMapping_HasKeyStringWithError`. + +.. + +.. date: 2023-09-01-15-35-05 +.. gh-issue: 107073 +.. nonce: zCz0iN +.. section: C API + +Add :c:func:`PyObject_VisitManagedDict` and +:c:func:`PyObject_ClearManagedDict` functions which must be called by the +traverse and clear functions of a type using +:c:macro:`Py_TPFLAGS_MANAGED_DICT` flag. Patch by Victor Stinner. + +.. + +.. date: 2023-08-30-02-54-06 +.. gh-issue: 108634 +.. nonce: oV3Xzk +.. section: C API + +Python built with :file:`configure` :option:`--with-trace-refs` (tracing +references) now supports the :ref:`Limited API <limited-c-api>`. Patch by +Victor Stinner. + +.. + +.. date: 2023-08-24-20-08-02 +.. gh-issue: 108014 +.. nonce: 20DOSS +.. section: C API + +Add :c:func:`PyLong_AsInt` function: similar to :c:func:`PyLong_AsLong`, but +store the result in a C :c:expr:`int` instead of a C :c:expr:`long`. +Previously, it was known as the private function :c:func:`!_PyLong_AsInt` +(with an underscore prefix). Patch by Victor Stinner. + +.. + +.. date: 2023-08-22-18-45-20 +.. gh-issue: 108314 +.. nonce: nOlmwq +.. section: C API + +Add :c:func:`PyDict_ContainsString` function: same as +:c:func:`PyDict_Contains`, but *key* is specified as a :c:expr:`const char*` +UTF-8 encoded bytes string, rather than a :c:expr:`PyObject*`. Patch by +Victor Stinner. + +.. + +.. date: 2023-08-22-13-00-54 +.. gh-issue: 108337 +.. nonce: wceHZm +.. section: C API + +Add atomic operations on additional data types in pyatomic.h. + +.. + +.. date: 2023-08-16-17-16-19 +.. gh-issue: 108014 +.. nonce: wXN3CF +.. section: C API + +Add :c:func:`Py_IsFinalizing` function: check if the main Python interpreter +is :term:`shutting down <interpreter shutdown>`. Patch by Victor Stinner. + +.. + +.. date: 2023-08-14-10-59-03 +.. gh-issue: 107916 +.. nonce: KH4Muo +.. section: C API + +C API functions :c:func:`PyErr_SetFromErrnoWithFilename`, +:c:func:`PyErr_SetExcFromWindowsErrWithFilename` and +:c:func:`PyErr_SetFromWindowsErrWithFilename` save now the error code before +calling :c:func:`PyUnicode_DecodeFSDefault`. + +.. + +.. date: 2023-08-13-12-33-00 +.. gh-issue: 107915 +.. nonce: jQ0wOi +.. section: C API + +Such C API functions as ``PyErr_SetString()``, ``PyErr_Format()``, +``PyErr_SetFromErrnoWithFilename()`` and many others no longer crash or +ignore errors if it failed to format the error message or decode the +filename. Instead, they keep a corresponding error. + +.. + +.. date: 2023-08-10-11-12-25 +.. gh-issue: 107810 +.. nonce: oJ40Qx +.. section: C API + +Improve :exc:`DeprecationWarning` for uses of :c:type:`PyType_Spec` with +metaclasses that have custom ``tp_new``. + +.. + +.. date: 2023-07-25-17-23-08 +.. gh-issue: 107249 +.. nonce: xqk2ke +.. section: C API + +Implement the :c:macro:`Py_UNUSED` macro for Windows MSVC compiler. Patch by +Victor Stinner. + +.. + +.. date: 2023-07-25-13-41-09 +.. gh-issue: 107226 +.. nonce: N919zH +.. section: C API + +:c:func:`PyModule_AddObjectRef` is now only available in the limited API +version 3.10 or later. + +.. + +.. date: 2023-07-22-14-40-48 +.. gh-issue: 106320 +.. nonce: H3u7x4 +.. section: C API + +Remove private ``_PyUnicode_AsString()`` alias to +:c:func:`PyUnicode_AsUTF8`. It was kept for backward compatibility with +Python 3.0 - 3.2. The :c:func:`PyUnicode_AsUTF8` is available since Python +3.3. The :c:func:`PyUnicode_AsUTF8String` function can be used to keep +compatibility with Python 3.2 and older. Patch by Victor Stinner. + +.. + +.. date: 2023-07-11-01-07-39 +.. gh-issue: 106572 +.. nonce: y1b35X +.. section: C API + +Convert :c:func:`PyObject_DelAttr` and :c:func:`PyObject_DelAttrString` +macros to functions. Patch by Victor Stinner. + +.. + +.. date: 2023-07-08-12-24-17 +.. gh-issue: 106307 +.. nonce: FVnkBw +.. section: C API + +Add :c:func:`PyMapping_GetOptionalItem` function. + +.. + +.. date: 2023-07-07-19-14-00 +.. gh-issue: 106521 +.. nonce: Veh9f3 +.. section: C API + +Add :c:func:`PyObject_GetOptionalAttr` and +:c:func:`PyObject_GetOptionalAttrString` functions. + +.. + +.. date: 2023-07-02-00-00-20 +.. gh-issue: 106320 +.. nonce: tZWcvG +.. section: C API + +Remove ``_PyInterpreterState_Get()`` alias to +:c:func:`PyInterpreterState_Get()` which was kept for backward compatibility +with Python 3.8. Patch by Victor Stinner. + +.. + +.. date: 2023-07-01-21-23-33 +.. gh-issue: 106316 +.. nonce: hp2Ijw +.. section: C API + +Remove ``cpython/pytime.h`` header file: it only contained private +functions. Patch by Victor Stinner. + +.. + +.. date: 2023-06-30-09-33-25 +.. gh-issue: 106023 +.. nonce: YvYiE4 +.. section: C API + +Remove private ``_PyObject_FastCall()`` function: use +``PyObject_Vectorcall()`` which is available since Python 3.8 (:pep:`590`). +Patch by Victor Stinner. + +.. + +.. date: 2023-06-28-02-30-50 +.. gh-issue: 106168 +.. nonce: NFOZPv +.. section: C API + +If Python is built in :ref:`debug mode <debug-build>` or :option:`with +assertions <--with-assertions>`, :c:func:`PyTuple_SET_ITEM` and +:c:func:`PyList_SET_ITEM` now check the index argument with an assertion. If +the assertion fails, make sure that the size is set before. Patch by Victor +Stinner. + +.. + +.. date: 2023-06-25-18-01-27 +.. gh-issue: 106084 +.. nonce: PEzqU3 +.. section: C API + +Remove the old aliases to functions calling functions which were kept for +backward compatibility with Python 3.8 provisional API: + +* ``_PyObject_CallMethodNoArgs()``: use ``PyObject_CallMethodNoArgs()`` +* ``_PyObject_CallMethodOneArg()``: use ``PyObject_CallMethodOneArg()`` +* ``_PyObject_CallOneArg()``: use ``PyObject_CallOneArg()`` +* ``_PyObject_FastCallDict()``: use ``PyObject_VectorcallDict()`` +* ``_PyObject_Vectorcall()``: use ``PyObject_Vectorcall()`` +* ``_PyObject_VectorcallMethod()``: use ``PyObject_VectorcallMethod()`` +* ``_PyVectorcall_Function()``: use ``PyVectorcall_Function()`` + +Just remove the underscore prefix to update your code. Patch by Victor +Stinner. + +.. + +.. date: 2023-06-23-02-57-15 +.. gh-issue: 106004 +.. nonce: -OToh6 +.. section: C API + +Adds :c:func:`PyDict_GetItemRef` and :c:func:`PyDict_GetItemStringRef` +functions: similar to :c:func:`PyDict_GetItemWithError` but returning a +:term:`strong reference` instead of a :term:`borrowed reference`. Patch by +Victor Stinner. + +.. + +.. date: 2023-06-22-00-25-55 +.. gh-issue: 105927 +.. nonce: GRxZtI +.. section: C API + +Deprecate the :c:func:`PyWeakref_GetObject` and +:c:func:`PyWeakref_GET_OBJECT` functions: use the new +:c:func:`PyWeakref_GetRef` function instead. Patch by Victor Stinner. + +.. + +.. date: 2023-06-20-08-59-05 +.. gh-issue: 105927 +.. nonce: DfGeEA +.. section: C API + +Add :c:func:`PyWeakref_GetRef` function: similar to +:c:func:`PyWeakref_GetObject` but returns a :term:`strong reference`, or +``NULL`` if the referent is no longer live. Patch by Victor Stinner. + +.. + +.. date: 2023-06-19-20-02-16 +.. gh-issue: 105922 +.. nonce: o4T6wO +.. section: C API + +Add :c:func:`PyImport_AddModuleRef`: similar to +:c:func:`PyImport_AddModule`, but return a :term:`strong reference` instead +of a :term:`borrowed reference`. Patch by Victor Stinner. + +.. + +.. date: 2023-06-13-14-24-55 +.. gh-issue: 105227 +.. nonce: HDL9aF +.. section: C API + +The new :c:func:`PyType_GetDict` provides the dictionary for the given type +object that is normally exposed by ``cls.__dict__``. Normally it's +sufficient to use :c:member:`~PyTypeObject.tp_dict`, but for the static +builtin types :c:member:`!tp_dict` is now always ``NULL``. +:c:func:`!PyType_GetDict()` provides the correct dict object instead. + +.. + +.. date: 2023-06-09-23-34-25 +.. gh-issue: 105375 +.. nonce: n7amiF +.. section: C API + +Fix a bug in :c:func:`PyErr_WarnExplicit` where an exception could end up +being overwritten if the API failed internally. + +.. + +.. date: 2023-06-09-19-16-57 +.. gh-issue: 105603 +.. nonce: -z6G22 +.. section: C API + +We've renamed the new (in 3.12) ``PyInterpreterConfig.own_gil`` to +``PyInterpreterConfig.gil`` and changed the meaning of the value from "bool" +to an integer with supported values of ``PyInterpreterConfig_DEFAULT_GIL``, +``PyInterpreterConfig_SHARED_GIL``, and ``PyInterpreterConfig_OWN_GIL``. The +default is "shared". + +.. + +.. date: 2023-06-09-12-35-55 +.. gh-issue: 105387 +.. nonce: wM_oL- +.. section: C API + +In the limited C API version 3.12, :c:func:`Py_INCREF` and +:c:func:`Py_DECREF` functions are now implemented as opaque function calls +to hide implementation details. Patch by Victor Stinner. + +.. + +.. date: 2023-06-06-17-43-28 +.. gh-issue: 105396 +.. nonce: FQJG5B +.. section: C API + +Deprecate the :c:func:`PyImport_ImportModuleNoBlock` function which is just +an alias to :c:func:`PyImport_ImportModule` since Python 3.3. Patch by +Victor Stinner. + +.. + +.. date: 2023-06-06-14-14-41 +.. gh-issue: 103968 +.. nonce: BTO6II +.. section: C API + +:c:func:`PyType_FromMetaclass` now allows metaclasses with ``tp_new`` set to +``NULL``. + +.. + +.. date: 2023-06-06-10-57-18 +.. gh-issue: 105268 +.. nonce: OTJUko +.. section: C API + +Remove the old private, undocumented and untested ``_PyGC_FINALIZED()`` +macro which was kept for backward compatibility with Python 3.8 and older. +Patch by Victor Stinner. + +.. + +.. date: 2023-06-01-11-24-03 +.. gh-issue: 105182 +.. nonce: l5sCw4 +.. section: C API + +Remove ``PyEval_AcquireLock()`` and ``PyEval_ReleaseLock()`` functions, +deprecated in Python 3.2. Patch by Victor Stinner. + +.. + +.. date: 2023-06-01-11-23-28 +.. gh-issue: 105182 +.. nonce: kLEHl- +.. section: C API + +Remove ``PyEval_InitThreads()`` and ``PyEval_ThreadsInitialized()`` +functions, deprecated in Python 3.9. Patch by Victor Stinner. + +.. + +.. date: 2023-06-01-09-40-30 +.. gh-issue: 105145 +.. nonce: WOOE-w +.. section: C API + +Deprecate old Python initialization functions: + +* :c:func:`PySys_ResetWarnOptions` +* :c:func:`Py_GetExecPrefix` +* :c:func:`Py_GetPath` +* :c:func:`Py_GetPrefix` +* :c:func:`Py_GetProgramFullPath` +* :c:func:`Py_GetProgramName` +* :c:func:`Py_GetPythonHome` + +Patch by Victor Stinner. + +.. + +.. date: 2023-05-31-19-38-45 +.. gh-issue: 85275 +.. nonce: doojgE +.. section: C API + +``PyObject_AsCharBuffer()``, ``PyObject_AsReadBuffer()``, +``PyObject_CheckReadBuffer()``, and ``PyObject_AsWriteBuffer()`` are +removed. Please migrate to new buffer protocol; :c:func:`PyObject_GetBuffer` +and :c:func:`PyBuffer_Release`. + +.. + +.. date: 2023-05-31-18-37-57 +.. gh-issue: 105156 +.. nonce: R4El5V +.. section: C API + +Deprecate the old ``Py_UNICODE`` and ``PY_UNICODE_TYPE`` types: use directly +the :c:type:`wchar_t` type instead. Since Python 3.3, ``Py_UNICODE`` and +``PY_UNICODE_TYPE`` are just aliases to :c:type:`wchar_t`. Patch by Victor +Stinner. + +.. + +.. date: 2023-05-31-16-51-18 +.. gh-issue: 105145 +.. nonce: b3B6lJ +.. section: C API + +Remove the following old functions to configure the Python initialization, +deprecated in Python 3.11: + +* ``PySys_AddWarnOptionUnicode()`` +* ``PySys_AddWarnOption()`` +* ``PySys_AddXOption()`` +* ``PySys_HasWarnOptions()`` +* ``PySys_SetArgvEx()`` +* ``PySys_SetArgv()`` +* ``PySys_SetPath()`` +* ``Py_SetPath()`` +* ``Py_SetProgramName()`` +* ``Py_SetPythonHome()`` +* ``Py_SetStandardStreamEncoding()`` +* ``_Py_SetProgramFullPath()`` + +Patch by Victor Stinner. + +.. + +.. date: 2023-05-30-19-11-09 +.. gh-issue: 105107 +.. nonce: YQwMnm +.. section: C API + +Remove functions deprecated in Python 3.9. + +* ``PyEval_CallObject()``, ``PyEval_CallObjectWithKeywords()``: use + :c:func:`PyObject_CallNoArgs` and :c:func:`PyObject_Call` (positional + arguments must not be *NULL*) instead. +* ``PyEval_CallFunction()``: use :c:func:`PyObject_CallFunction` instead. +* ``PyEval_CallMethod()``: use :c:func:`PyObject_CallMethod` instead. +* ``PyCFunction_Call()``: use :c:func:`PyObject_Call` instead. + +Patch by Victor Stinner. + +.. + +.. date: 2023-05-30-17-45-32 +.. gh-issue: 105115 +.. nonce: iRho1K +.. section: C API + +``PyTypeObject.tp_bases`` (and ``tp_mro``) for builtin static types are now +shared by all interpreters, whereas in 3.12-beta1 they were stored on +``PyInterpreterState``. Also note that now the tuples are immortal objects. + +.. + +.. date: 2023-05-30-10-15-13 +.. gh-issue: 105071 +.. nonce: dPtp7c +.. section: C API + +Add ``PyUnstable_Exc_PrepReraiseStar`` to the unstable C api to expose the +implementation of :keyword:`except* <except_star>`. + +.. + +.. date: 2023-05-29-16-09-27 +.. gh-issue: 104922 +.. nonce: L23qaU +.. section: C API + +``PY_SSIZE_T_CLEAN`` is no longer required to use ``'#'`` formats in APIs +like :c:func:`PyArg_ParseTuple` and :c:func:`Py_BuildValue`. They uses +``Py_ssize_t`` for ``'#'`` regardless ``PY_SSIZE_T_CLEAN``. + +.. + +.. date: 2023-05-25-15-44-48 +.. gh-issue: 104584 +.. nonce: cSAoRh +.. section: C API + +Add an unstable C API for hooking in an optimizer. This is mainly internal, +but marked "unstable" to allow third-party experimentation. + +.. + +.. date: 2023-05-19-10-22-34 +.. gh-issue: 104668 +.. nonce: MLX1g9 +.. section: C API + +Don't call :c:var:`PyOS_InputHook` or :c:var:`PyOS_ReadlineFunctionPointer` +in subinterpreters, since it's generally difficult to avoid using global +state in their registered callbacks. This also avoids situations where +extensions may find themselves running in a subinterpreter they don't +support (or haven't yet been loaded in). + +.. + +.. bpo: 42327 +.. date: 2020-11-11-22-36-29 +.. nonce: ODSZBM +.. section: C API + +Add :c:func:`PyModule_Add` function: similar to +:c:func:`PyModule_AddObjectRef` and :c:func:`PyModule_AddObject`, but always +steals a reference to the value. + +.. + +.. bpo: 40309 +.. date: 2020-06-25-09-44-59 +.. nonce: CuoGoQ +.. section: C API + +Properly handle trailing spaces before closing parenthesis in +:c:func:`Py_BuildValue` format strings. |