Back to Cpython

3.15.0b1

Misc/NEWS.d/3.15.0b1.rst

3.15.0b252.4 KB
Original Source

.. date: 2026-05-02-15-38-03 .. gh-issue: 149254 .. nonce: 0HOL0j .. release date: 2026-05-07 .. section: Security

Update Android and iOS installer to use OpenSSL 3.5.6.

..

.. date: 2026-04-26-17-49-58 .. gh-issue: 149017 .. nonce: EiVFPo .. section: Security

Update bundled libexpat <https://libexpat.github.io/>_ to version 2.8.0.

..

.. date: 2026-04-24-23-15-42 .. gh-issue: 148252 .. nonce: 8BLmzd .. section: Security

Fixed string table and sample record bounds checks in :mod:!_remote_debugging when decoding certain .pyb inputs on 32-bit builds. Patch by Maurycy Pawłowski-Wieroński.

..

.. date: 2026-04-21-13-46-30 .. gh-issue: 90309 .. nonce: srvj9q .. section: Security

Base64-encode values when embedding cookies to JavaScript using the :meth:http.cookies.BaseCookie.js_output method to avoid injection and escaping.

..

.. date: 2026-04-20-15-31-37 .. gh-issue: 148808 .. nonce: _Z8JL0 .. section: Security

Added buffer boundary check when using nbytes parameter with :meth:!asyncio.AbstractEventLoop.sock_recvfrom_into. Only relevant for Windows and the :class:asyncio.ProactorEventLoop.

..

.. date: 2026-04-10-16-28-21 .. gh-issue: 148395 .. nonce: kfzm0G .. section: Security

Fix a dangling input pointer in :class:lzma.LZMADecompressor, :class:bz2.BZ2Decompressor, and internal :class:!zlib._ZlibDecompressor when memory allocation fails with :exc:MemoryError, which could let a subsequent :meth:!decompress call read or write through a stale pointer to the already-released caller buffer.

..

.. date: 2026-04-08-14-25-47 .. gh-issue: 148252 .. nonce: IEp9Rt .. section: Security

Fixed stack depth calculation in :mod:!_remote_debugging when decoding certain .pyb inputs on 32-bit builds. Issue originally identified and diagnosed by Tristan Madani (@TristanInSec on GitHub).

..

.. date: 2026-04-06-13-55-00 .. gh-issue: 148178 .. nonce: Rs7kLm .. section: Security

Hardened :mod:!_remote_debugging by validating remote debug offset tables before using them to size memory reads or interpret remote layouts.

..

.. date: 2026-03-31-09-15-51 .. gh-issue: 148169 .. nonce: EZJzz2 .. section: Security

A bypass in :mod:webbrowser allowed URLs prefixed with %action to pass the dash-prefix safety check.

..

.. date: 2026-03-29-12-51-33 .. gh-issue: 146581 .. nonce: 4vZfB0 .. section: Security

Fix vulnerability in :func:shutil.unpack_archive for ZIP files on Windows which allowed to write files outside of the destination tree if the patch in the archive contains a Windows drive prefix. Now such invalid paths will be skipped. Files containing ".." in the name (like "foo..bar") are no longer skipped.

..

.. date: 2026-03-26-01-42-15 .. gh-issue: 137586 .. nonce: j3SkOm .. section: Security

Fix a PATH-injection vulnerability in :mod:webbrowser on macOS where osascript was invoked without an absolute path. The new :class:!MacOS class uses /usr/bin/open directly, eliminating the dependency on osascript entirely.

..

.. date: 2026-03-25-00-51-03 .. gh-issue: 146333 .. nonce: LqdL__bn .. section: Security

Fix quadratic backtracking in :class:configparser.RawConfigParser option parsing regexes (OPTCRE and OPTCRE_NV). A crafted configuration line with many whitespace characters could cause excessive CPU usage.

..

.. date: 2026-03-20-09-29-42 .. gh-issue: 146211 .. nonce: PQVbs7 .. section: Security

Reject CR/LF characters in tunnel request headers for the HTTPConnection.set_tunnel() method.

..

.. date: 2026-05-06-15-57-28 .. gh-issue: 148940 .. nonce: dRIXiY .. section: Core and Builtins

Revert the process size based deferral of garbage collection (GH-133464). The performance issue this change resolves is also fixed by GH-142562. This approach has the problem that process size as seen by the OS (e.g. the resident size or RSS) does not immediately decrease after cyclic garbage is freed since mimalloc defers returning memory of the OS. This change applies to the free-threaded GC only.

..

.. date: 2026-05-03-10-24-50 .. gh-issue: 149243 .. nonce: Zh1q9_ .. section: Core and Builtins

Check for recursion limits in CALL_ALLOC_AND_ENTER_INIT opcode.

..

.. date: 2026-05-02-18-02-41 .. gh-issue: 126910 .. nonce: nqDVrp .. section: Core and Builtins

Add support for unwinding JIT frames using GNU backtrace. Patch by Diego Russo and Pablo Galindo

..

.. date: 2026-04-30-01-35-09 .. gh-issue: 149171 .. nonce: meXWpl .. section: Core and Builtins

Allow assignment to the __module__ attribute of :class:typing.TypeAliasType instances.

..

.. date: 2026-04-29-14-06-00 .. gh-issue: 149122 .. nonce: P8k2Lm .. section: Core and Builtins

Fix a crash in optimized calls to :func:all, :func:any, :func:tuple, :func:list, and :func:set with an async generator expression argument (for example, tuple(await x for x in y)). These calls now correctly raise TypeError instead of crashing.

..

.. date: 2026-04-28-21-19-21 .. gh-issue: 149049 .. nonce: 98u2Ib .. section: Core and Builtins

Fix stack underflow for BINARY_OP in tier 2.

..

.. date: 2026-04-28-05-59-17 .. gh-issue: 83065 .. nonce: f0UPNE .. section: Core and Builtins

Fix a deadlock that could occur when one thread is importing a submodule (for example import pkg.sub.mod) while another thread is importing one of its parent packages (for example import pkg.sub) and that parent's __init__.py itself imports the submodule. The import system now acquires module locks in hierarchical (parent-before-child) order so the two threads serialise instead of raising _DeadlockError.

..

.. date: 2026-04-22-14-55-18 .. gh-issue: 113956 .. nonce: 0VEXd6 .. section: Core and Builtins

Fix a data race in :func:sys.intern in the free-threaded build when interning a string owned by another thread. An interned copy owned by the current thread is used instead when it is not safe to immortalize the original.

..

.. date: 2026-04-21-19-29-29 .. gh-issue: 148850 .. nonce: MSH0J_ .. section: Core and Builtins

Fix the memory sanitizer false positive in :func:os.getrandom.

..

.. date: 2026-04-21-14-36-44 .. gh-issue: 148820 .. nonce: XhOGhA .. section: Core and Builtins

Fix a race in :c:type:!_PyRawMutex on the free-threaded build where a Py_PARK_INTR return from _PySemaphore_Wait could let the waiter destroy its semaphore before the unlocking thread's _PySemaphore_Wakeup completed, causing a fatal ReleaseSemaphore error.

..

.. date: 2026-04-21-06-43-32 .. gh-issue: 148829 .. nonce: GtIrYO .. section: Core and Builtins

Add :class:sentinel, implementing :pep:661. PEP by Tal Einat; patch by Jelle Zijlstra.

..

.. date: 2026-04-20-15-25-55 .. gh-issue: 146270 .. nonce: qZYfyc .. section: Core and Builtins

Fix a sequential consistency bug in structmember.c.

..

.. date: 2026-04-19-22-35-39 .. gh-issue: 148766 .. nonce: coLWln .. section: Core and Builtins

The interpreter help (such as python --help) is now in color. Patch by Hugo van Kemenade.

..

.. date: 2026-04-18-16-41-04 .. gh-issue: 148571 .. nonce: Q6WB3A .. section: Core and Builtins

Fix a crash in the JIT optimizer when specialized opcode families inherited incompatible recorded operand layouts.

..

.. date: 2026-04-17-20-37-02 .. gh-issue: 148653 .. nonce: nbbHMh .. section: Core and Builtins

Forbid :mod:marshalling <marshal> recursive code objects, :class:slice and :class:frozendict objects which cannot be correctly unmarshalled.

..

.. date: 2026-04-17-11-30-00 .. gh-issue: 142516 .. nonce: GcGen315 .. section: Core and Builtins

Forward-port the generational cycle garbage collector to the default 3.15 build, replacing the incremental collector while leaving the free-threaded collector unchanged.

..

.. date: 2026-04-15-12-00-00 .. gh-issue: 146462 .. nonce: 1YfK6v .. section: Core and Builtins

Added PyTypeObject.tp_basicsize, PyTypeObject.tp_dictoffset, and PyHeapTypeObject.ht_cached_keys offsets to :c:type:!_Py_DebugOffsets to support version-independent read-only dict introspection tools.

..

.. date: 2026-04-13-23-21-45 .. gh-issue: 145239 .. nonce: pL8qRt .. section: Core and Builtins

Unary plus is now accepted in :keyword:match literal patterns, mirroring the existing support for unary minus. Patch by Bartosz Sławecki.

..

.. date: 2026-04-13-16-52-33 .. gh-issue: 148515 .. nonce: 09xulC .. section: Core and Builtins

Fix a bug in the JIT optimizer reading operands for uops with multiple caches.

..

.. date: 2026-04-12-17-27-28 .. gh-issue: 148390 .. nonce: MAhw7F .. section: Core and Builtins

Fix an undefined behavior in :class:memoryview when using the native boolean format (?) in :meth:~memoryview.cast. Previously, on some common platforms, calling memoryview(b).cast("?").tolist() incorrectly returned [False] instead of [True] for any even byte b. Patch by Bénédikt Tran.

..

.. date: 2026-04-12-10-40-57 .. gh-issue: 148418 .. nonce: ggA1LZ .. section: Core and Builtins

Fix a possible reference leak in a corrupted TYPE_CODE marshal stream.

..

.. date: 2026-04-11-17-28-52 .. gh-issue: 148393 .. nonce: lX6gwN .. section: Core and Builtins

Fix data races between :c:func:PyDict_Watch / :c:func:PyDict_Unwatch and concurrent dict mutation in the :term:free-threaded build.

..

.. date: 2026-04-11-15-12-53 .. gh-issue: 148398 .. nonce: g62jCA .. section: Core and Builtins

Fix a bug in the JIT optimizer where class attribute loads were not invalidated after type mutation.

..

.. date: 2026-04-10-23-13-19 .. gh-issue: 146527 .. nonce: P3Xv4Q .. section: Core and Builtins

Add a GCMonitor class with a get_gc_stats method to the :mod:!_remote_debugging module to allow reading GC statistics from an external Python process without requiring the full RemoteUnwinder functionality. Patch by Sergey Miryanov and Pablo Galindo.

..

.. date: 2026-04-10-14-20-54 .. gh-issue: 148284 .. nonce: HKs-S_ .. section: Core and Builtins

Fix high stack consumption in Python's interpreter loop on Clang 22 by setting function limits for inlining when building with computed gotos.

..

.. date: 2026-04-09-14-18-33 .. gh-issue: 148037 .. nonce: aP3CSX .. section: Core and Builtins

Remove critical section from :c:func:!PyCode_Addr2Line in free-threading.

..

.. date: 2026-04-08-06-59-23 .. gh-issue: 115802 .. nonce: jqfZty .. section: Core and Builtins

Improve JIT code generation on Linux AArch64 by reducing the indirect call to external symbols. Patch by Diego Russo.

..

.. date: 2026-04-08-02-49-07 .. gh-issue: 148189 .. nonce: 0KpXID .. section: Core and Builtins

Repaired undercount of bytes in type-specific free lists reported by sys._debugmallocstats(). For types that participate in cyclic garbage collection, it was missing two pointers used by GC.

..

.. date: 2026-04-07-20-37-23 .. gh-issue: 148222 .. nonce: uF4D4E .. section: Core and Builtins

Fix vectorcall support in :class:types.GenericAlias when the underlying type does not support the vectorcall protocol. Fix possible leaks in :class:types.GenericAlias and :class:types.UnionType in case of memory error.

..

.. date: 2026-04-07-20-21-44 .. gh-issue: 148208 .. nonce: JAxpDU .. section: Core and Builtins

Fix recursion depth leak in :c:func:PyObject_Print

..

.. date: 2026-04-06-18-25-53 .. gh-issue: 95004 .. nonce: CQeT_H .. section: Core and Builtins

The specializing interpreter now specializes for :class:enum.Enum improving performance and scaling in free-threading. Patch by Kumar Aditya.

..

.. date: 2026-04-05-16-10-00 .. gh-issue: 149202 .. nonce: W8sQeR .. section: Core and Builtins

Enable frame pointers by default for GCC-compatible CPython builds, including -mno-omit-leaf-frame-pointer, -marm on 32-bit ARM, and/or -mbackchain on s390x platforms when the compiler supports them, so profilers and debuggers can unwind native interpreter frames more reliably. Users can pass :option:--without-frame-pointers to ./configure to opt out.

..

.. date: 2026-04-02-17-52-33 .. gh-issue: 148014 .. nonce: 2Y6ND_ .. section: Core and Builtins

Accept a function name in :option:-X presite <-X> command line option and :envvar:PYTHON_PRESITE environment variable. Patch by Victor Stinner.

..

.. date: 2026-04-02-13-25-09 .. gh-issue: 147998 .. nonce: wnzkRT .. section: Core and Builtins

Fixed a memory leak in interpreter helper calls so cleanup works when an operation falls across interpreter boundaries. Patch by Maurycy Pawłowski-Wieroński.

..

.. date: 2026-03-26-08-49-35 .. gh-issue: 146455 .. nonce: f54083a9 .. section: Core and Builtins

Fix O(N²) compile-time regression in constant folding after it was moved from AST to CFG optimizer.

..

.. date: 2026-03-25-12-00-00 .. gh-issue: 146306 .. nonce: B9f62e .. section: Core and Builtins

Specialize float true division in the tier 2 optimizer with inplace mutation for uniquely-referenced operands.

..

.. date: 2026-03-23-11-34-37 .. gh-issue: 142186 .. nonce: v8Yp3W .. section: Core and Builtins

Global :mod:sys.monitoring events can now be turned on and disabled on a per code object basis. Returning DISABLE from a callback disables the event for the entire code object (for the current tool).

..

.. date: 2026-03-17-20-30-17 .. gh-issue: 126910 .. nonce: NaUwmD .. section: Core and Builtins

Add support for unwinding JIT frames using GDB. Patch by Diego Russo and Pablo Galindo.

..

.. date: 2026-03-16-17-29-22 .. gh-issue: 146031 .. nonce: 6nyB7C .. section: Core and Builtins

The unstable API _PyInterpreterState_SetEvalFrameFunc has a companion function _PyInterpreterState_SetEvalFrameAllowSpecialization to specify if specialization should be allowed. When this option is set to 1 the specializer will turn Python -> Python calls into specialized opcodes which the replacement interpreter loop can choose to respect and perform inlined dispatch.

..

.. date: 2026-02-26-21-22-34 .. gh-issue: 145278 .. nonce: DHkYqt .. section: Core and Builtins

The :mod:encodings is now partially frozen, including the aliases and utf_8 submodules.

The :mod:linecache is now frozen.

..

.. date: 2026-02-18-16-53-26 .. gh-issue: 134584 .. nonce: a-O4sd .. section: Core and Builtins

Optimize and eliminate redundant ref-counting for MAKE_FUNCTION in the JIT.

..

.. date: 2026-01-15-13-37-21 .. gh-issue: 143886 .. nonce: 2gk5QC .. section: Core and Builtins

Reorder function annotations so positional-only arguments are returned before other arguments. This fixes how :func:functools.singledispatch registers functions with positional-only arguments.

..

.. date: 2025-12-08-00-25-35 .. gh-issue: 98894 .. nonce: hKWyfqNx .. section: Core and Builtins

Restore function__entry and function__return DTrace/SystemTap probes that were broken since Python 3.11.

..

.. date: 2025-08-16-12-56-08 .. gh-issue: 116021 .. nonce: hMN9yw .. section: Core and Builtins

Support for creating instances of abstract AST nodes from the :mod:ast module is deprecated and scheduled for removal in Python 3.20. Patch by Brian Schubert.

..

.. date: 2025-08-15-21-33-16 .. gh-issue: 137814 .. nonce: 6yRTeu .. section: Core and Builtins

Fix the __qualname__ attribute of __annotate__ functions on functions.

..

.. date: 2025-08-09-19-00-36 .. gh-issue: 137600 .. nonce: p_p6OU .. section: Core and Builtins

:mod:ast: The constructors of AST nodes now raise a :exc:TypeError when a required argument is omitted or when a keyword argument that does not map to a field on the AST node is passed. These cases had previously raised a :exc:DeprecationWarning since Python 3.13. Patch by Brian Schubert.

..

.. date: 2025-08-01-20-31-30 .. gh-issue: 137293 .. nonce: 4x3JbV .. section: Core and Builtins

Fix :exc:SystemError when searching ELF Files in :func:sys.remote_exec.

..

.. date: 2025-06-10-17-30-55 .. gh-issue: 135357 .. nonce: sUXU1W .. section: Core and Builtins

Add support for :data:!socket.SO_PASSRIGHTS on Linux.

..

.. date: 2025-05-26-10-03-18 .. gh-issue: 134690 .. nonce: mUMT16 .. section: Core and Builtins

Removed deprecated in :pep:626 since Python 3.12 :attr:!codeobject.co_lnotab from :class:types.CodeType.

..

.. date: 2025-01-17-19-48-28 .. gh-issue: 100239 .. nonce: 7pbTEA .. section: Core and Builtins

Specialize BINARY_OP for concatenation of lists and tuples, and propagate the result type through _BINARY_OP_EXTEND in the tier 2 optimizer so that follow-up type guards can be eliminated.

..

.. date: 2026-05-06-14-26-37 .. gh-issue: 148823 .. nonce: ySmOE4 .. section: Library

Defer the import of _colorize in argparse until needed for coloring output.

..

.. date: 2026-05-06-05-56-59 .. gh-issue: 141560 .. nonce: wlSQaW .. section: Library

Add an annotation_format parameter to :func:inspect.getfullargspec.

..

.. date: 2026-05-05-13-12-58 .. gh-issue: 139489 .. nonce: a8qqIM .. section: Library

Add the :func:xml.is_valid_text function, which allows to check whether a string can be used in the XML document.

..

.. date: 2026-05-05-00-30-04 .. gh-issue: 142389 .. nonce: 4daLzc .. section: Library

Add backticks to stdlib argparse help to display in colour. Patch by Hugo van Kemenade.

..

.. date: 2026-05-04-19-28-48 .. gh-issue: 149377 .. nonce: WNlc8Y .. section: Library

Update bundled pip to 26.1.1

..

.. date: 2026-05-04-18-01-35 .. gh-issue: 142389 .. nonce: 4Faqpq .. section: Library

Add backtick markup support in :mod:argparse option help text to highlight inline code when color output is enabled. Patch by Hugo van Kemenade.

..

.. date: 2026-05-04-16-26-33 .. gh-issue: 148675 .. nonce: xZwXa6 .. section: Library

Remove F and D formats from :mod:array and :class:memoryview. Patch by Victor Stinner.

..

.. date: 2026-05-04-04-06-36 .. gh-issue: 149342 .. nonce: d3CK-y .. section: Library

Fix :mod:!_remote_debugging binary writing so that sampling a thread whose Python frame stack is empty (for example while it is in a C call or mid-syscall) no longer raises RuntimeError("Invalid stack encoding type"), and so that BinaryWriter.total_samples after :meth:!finalize or context-manager exit includes samples flushed from the RLE buffer. Patch by Maurycy Pawłowski-Wieroński.

..

.. date: 2026-05-04-00-51-32 .. gh-issue: 149010 .. nonce: BCp_8k .. section: Library

The inspect module CLI now reports as much information as it has available for non-source modules when --details is specified, and provides an error message rather than a traceback when --details is omitted. It also reports improved information when the given target location is not the target's defining location and when the given target is a data value rather than a class or function definition.

..

.. date: 2026-05-03-23-47-59 .. gh-issue: 146609 .. nonce: V9jqYf .. section: Library

Use :mod:argparse for colour help :mod:timeit CLI. Patch by Hugo van Kemenade.

..

.. date: 2026-05-03-23-29-34 .. gh-issue: 142389 .. nonce: SVYiSv .. section: Library

Add backticks for colour to regrtest and pdb's help description. Patch by Hugo van Kemenade.

..

.. date: 2026-05-03-17-32-24 .. gh-issue: 144384 .. nonce: q-8jSr .. section: Library

Lazily import :mod:!_colorize. Patch by Hugo van Kemenade.

..

.. date: 2026-05-03-12-00-00 .. gh-issue: 149321 .. nonce: fUaxrz .. section: Library

Fix import cycles exposed by running standard library modules with -X lazy_imports=none.

..

.. date: 2026-05-03-01-49-57 .. gh-issue: 145378 .. nonce: rtyAWM .. section: Library

Generate consistent colors for :mod:pdb commands in :mod:pdb REPL.

..

.. date: 2026-05-02-19-09-04 .. gh-issue: 149296 .. nonce: DuKF0j .. section: Library

Add a dump subcommand to :mod:profiling.sampling that prints a single traceback-style snapshot of a running process's Python stack, including per-thread status, source line highlighting, optional bytecode opcode names, and async-aware task reconstruction. Patch by Pablo Galindo.

..

.. date: 2026-05-02-18-23-50 .. gh-issue: 143231 .. nonce: oBbQb5 .. section: Library

A module attribute has been added to :class:!warnings.WarningMessage.

..

.. date: 2026-05-02-15-58-08 .. gh-issue: 148675 .. nonce: b3ZNlj .. section: Library

:mod:ctypes: Change the :py:attr:~ctypes._SimpleCData._type_ of :class:~ctypes.c_float_complex, :class:~ctypes.c_double_complex and :class:~ctypes.c_longdouble_complex from F, D and G to Zf, Zd and Zg for compatibility with numpy. Patch by Victor Stinner.

..

.. date: 2026-05-02-12-30-35 .. gh-issue: 148675 .. nonce: cu2YFT .. section: Library

The :data:array.typecodes type changed from :class:str to :class:tuple to support type codes longer than 1 character (Zf and Zd). Patch by Victor Stinner.

..

.. date: 2026-05-02-01-09-29 .. gh-issue: 149221 .. nonce: __KOks .. section: Library

Catch rare math domain error for :func:random.binomialvariate.

..

.. date: 2026-05-01-16-45-31 .. gh-issue: 149231 .. nonce: x2nBEE .. section: Library

In :mod:tomllib, the number of parts in TOML keys is now limited.

..

.. date: 2026-05-01-11-39-37 .. gh-issue: 143231 .. nonce: 0cOHET .. section: Library

:func:unittest.TestCase.assertWarns and :func:unittest.TestCase.assertWarnsRegex no longer swallow warnings that do not match the specified category or regex. Nested context managers are now supported.

..

.. date: 2026-05-01-10-20-27 .. gh-issue: 149214 .. nonce: btP546 .. section: Library

Fix :mod:!_remote_debugging misreading non-ASCII Unicode strings (Latin-1, BMP and non-BMP) from a remote process. Filenames and function names that contain non-ASCII characters are now reported correctly in stack traces, the sampling profiler, and :mod:asyncio task introspection.

..

.. date: 2026-04-30-18-56-23 .. gh-issue: 149189 .. nonce: mszW10 .. section: Library

:mod:pprint now uses modern defaults: indent=4 and width=88, and the default compact=False output is now formatted similar to pretty-printed :func:json.dumps, with opening parentheses and brackets followed by a newline and the contents indented by one level. The expand parameter, added in 3.15.0a8, has been removed; compact=False (the default) now produces the former expand=True layout. Patch by Hugo van Kemenade.

..

.. date: 2026-04-30-14-21-26 .. gh-issue: 149173 .. nonce: KJqZm0 .. section: Library

Fix inverted :envvar:PYTHON_BASIC_REPL environment check in pdb._pyrepl_available.

..

.. date: 2026-04-29-16-11-27 .. gh-issue: 149117 .. nonce: yEeTYd .. section: Library

Fix :func:runpy.run_module and :func:runpy.run_path to set the :attr:~ImportError.name attribute on the :exc:ImportError they raise.

..

.. date: 2026-04-29-14-33-42 .. gh-issue: 149148 .. nonce: EaiYvk .. section: Library

:mod:ensurepip: Upgrade bundled pip to 26.1. This version fixes the :cve:2026-3219 vulnerability. Patch by Victor Stinner.

..

.. date: 2026-04-29-13-08-46 .. gh-issue: 149009 .. nonce: rek3Tw .. section: Library

Validate that :mod:profiling.sampling binary profiles do not contain more unique (thread, interpreter) pairs than declared in the header. Patch by Maurycy Pawłowski-Wieroński.

..

.. date: 2026-04-28-17-47-55 .. gh-issue: 148292 .. nonce: oIq3ml .. section: Library

:mod:ssl: Update :class:ssl.SSLSocket and :class:ssl.SSLObject for OpenSSL 4. The classes now remember if they get a :exc:ssl.SSLEOFError. In this case, following :meth:~ssl.SSLSocket.read, :meth:!sendfile, :meth:~ssl.SSLSocket.write, and :meth:~ssl.SSLSocket.do_handshake calls raise :exc:ssl.SSLEOFError without calling the underlying OpenSSL function. Thanks to that, :class:ssl.SSLSocket behaves the same on all OpenSSL versions on EOF. Patch by Victor Stinner.

..

.. date: 2026-04-28-16-30-48 .. gh-issue: 149085 .. nonce: 5aNgBD .. section: Library

Add a max_threads keyword argument to :func:faulthandler.dump_traceback, :func:faulthandler.dump_traceback_later, :func:faulthandler.enable, and :func:faulthandler.register.

..

.. date: 2026-04-28-16-25-40 .. gh-issue: 148641 .. nonce: aFgym0 .. section: Library

:func:pkgutil.resolve_name gets a new optional, keyword-only argument called strict. The default is False for backward compatibility.

..

.. date: 2026-04-27-22-34-09 .. gh-issue: 148093 .. nonce: 9pWceM .. section: Library

Fix an out-of-bounds read of one byte in :func:binascii.a2b_uu. Raise :exc:binascii.Error, instead of reading past the buffer end.

..

.. date: 2026-04-27-20-15-54 .. gh-issue: 149083 .. nonce: BdrpU8 .. section: Library

:data:dataclasses.MISSING and :data:dataclasses.KW_ONLY are now instances of :class:sentinel.

..

.. date: 2026-04-27-17-12-11 .. gh-issue: 148914 .. nonce: i5C3kW .. section: Library

Fix memoization of in-band :class:~pickle.PickleBuffer in the Python implementation of :mod:pickle. Previously, identical :class:!PickleBuffer\ s did not preserve identity, and empty writable :class:!PickleBuffer memoized an empty bytearray object in place of b'', so the following references to b'' were unpickled as an empty bytearray object.

..

.. date: 2026-04-26-23-01-50 .. gh-issue: 149026 .. nonce: Akk4Bc .. section: Library

Add colour to :mod:pickletools CLI output. Patch by Hugo van Kemenade.

..

.. date: 2026-04-25-18-09-16 .. gh-issue: 148991 .. nonce: AZ64Et .. section: Library

Add colour to :mod:tokenize CLI output. Patch by Hugo van Kemenade.

..

.. date: 2026-04-25-14-11-24 .. gh-issue: 138907 .. nonce: u21Wnh .. section: Library

Support :rfc:9309 in :mod:urllib.robotparser.

..

.. date: 2026-04-25-12-50-46 .. gh-issue: 148981 .. nonce: YMM4Y9 .. section: Library

Add color parameter to :func:ast.dump.

..

.. date: 2026-04-25-12-04-27 .. gh-issue: 148849 .. nonce: Vk6yEW .. section: Library

Deprecate :meth:http.cookies.Morsel.js_output and :meth:http.cookies.BaseCookie.js_output, which will be removed in Python 3.19. Use :meth:http.cookies.Morsel.output or :meth:http.cookies.BaseCookie.output instead.

..

.. date: 2026-04-25-11-56-05 .. gh-issue: 146311 .. nonce: iHWO0v .. section: Library

Add a canonical keyword-only parameter to the base16, base32, base64, base85, ascii85, and Z85 decoders in :mod:base64 and :mod:binascii. When true, encodings with non-zero padding bits (base16/32/64) or non-canonical encodings (base85/ascii85) are rejected. Single-character final groups in :func:binascii.a2b_ascii85 and :func:binascii.a2b_base85 are now always rejected as encoding violations, regardless of canonical; previously they were silently ignored and produced no output bytes.

..

.. date: 2026-04-23-21-47-49 .. gh-issue: 148947 .. nonce: W4V2lG .. section: Library

Fix crash in :deco:dataclasses.dataclass with slots=True that occurred when a function found within the class had an empty __class__ cell.

..

.. date: 2026-04-23-07-38-04 .. gh-issue: 148680 .. nonce: ___ePl .. section: Library

ForwardRef objects that contain internal names to represent known objects now show the type_repr of the known object rather than the internal __annotationlib_name_x__ name when evaluated as strings.

..

.. date: 2026-04-22-20-49-49 .. gh-issue: 124397 .. nonce: plMglV .. section: Library

The threading module added tooling to support concurrent iterator access: :class:threading.serialize_iterator, :func:threading.synchronized_iterator, and :func:threading.concurrent_tee.

..

.. date: 2026-04-20-18-29-21 .. gh-issue: 148801 .. nonce: ROeNqs .. section: Library

:mod:xml.etree.ElementTree: Fix a crash in :meth:Element.__deepcopy__ <object.__deepcopy__> on deeply nested trees.

..

.. date: 2026-04-18-21-39-15 .. gh-issue: 148735 .. nonce: siw6DG .. section: Library

:mod:xml.etree.ElementTree: Fix a use-after-free in :meth:Element.findtext <xml.etree.ElementTree.Element.findtext> when the element tree is mutated concurrently during the search.

..

.. date: 2026-04-18-17-37-13 .. gh-issue: 148740 .. nonce: sYnFi0 .. section: Library

Fix usage for :mod:uuid command-line interface to support a custom namespace be provided for uuid3 and uuid5.

..

.. date: 2026-04-17-16-31-58 .. gh-issue: 148688 .. nonce: vVugFn .. section: Library

:mod:bz2, :mod:compression.zstd, :mod:lzma, :mod:zlib: Fix a double free on memory allocation failure. Patch by Victor Stinner.

..

.. date: 2026-04-17-13-56-44 .. gh-issue: 148675 .. nonce: f1kG70 .. section: Library

:mod:array, :mod:struct: Add support for Zd and Zf formats for double complex and float complex. Patch by Victor Stinner.

..

.. date: 2026-04-16-13-30-00 .. gh-issue: 148651 .. nonce: ZsTdLk .. section: Library

Fix reference leak in :class:compression.zstd.ZstdDecompressor when an invalid option key is passed.

..

.. date: 2026-04-15-21-46-52 .. gh-issue: 148641 .. nonce: -aoFyC .. section: Library

:pep:829 (package startup configuration files) implements a new format <name>.start parallel to <name>.pth files, to replace import lines in the latter.

..

.. date: 2026-04-15-20-32-55 .. gh-issue: 148639 .. nonce: -dwsjB .. section: Library

Implement :pep:800, adding the :deco:typing.disjoint_base decorator. Patch by Jelle Zijlstra.

..

.. date: 2026-04-15-16-08-12 .. gh-issue: 148615 .. nonce: Uvx50R .. section: Library

Fix :mod:pdb to accept standard -- end of options separator. Reported by haampie. Patched by Shrey Naithani.

..

.. date: 2026-04-15-11-00-39 .. gh-issue: 146553 .. nonce: VGOsoP .. section: Library

Fix infinite loop in :func:typing.get_type_hints when __wrapped__ forms a cycle. Patch by Shamil Abdulaev.

..

.. date: 2026-04-15-09-36-03 .. gh-issue: 148599 .. nonce: 90i1Ku .. section: Library

Update the :mod:socket module's WSA error messages to match official documentation.

..

.. date: 2026-04-14-09-04-35 .. gh-issue: 148508 .. nonce: -GiXml .. section: Library

An intermittent timing error when running SSL tests on iOS has been resolved.

..

.. date: 2026-04-13-21-38-50 .. gh-issue: 144881 .. nonce: 3kPqXw .. section: Library

:mod:asyncio debugging tools (python -m asyncio ps and pstree) now retry automatically on transient errors that can occur when attaching to a process under active thread delegation. The number of retries can be controlled with the --retries flag. Patch by Bartosz Sławecki.

..

.. date: 2026-04-13-15-59-44 .. gh-issue: 148518 .. nonce: RQdvsu .. section: Library

If an email containing an address header that ended in an open double quote was parsed with a non-compat32 policy, accessing the username attribute of the mailbox accessed through that header object would result in an IndexError. It now correctly returns an empty string as the result.

..

.. date: 2026-04-13-06-22-27 .. gh-issue: 148464 .. nonce: Bj_NZy .. section: Library

Add missing __ctype_le/be__ attributes for :class:~ctypes.c_float_complex and :class:~ctypes.c_double_complex. Patch by Sergey B Kirpichev.

..

.. date: 2026-04-12-16-40-11 .. gh-issue: 148370 .. nonce: 0Li2EK .. section: Library

:mod:configparser: prevent quadratic behavior when a :exc:~configparser.ParsingError is raised after a parser fails to parse multiple lines. Patch by Bénédikt Tran.

..

.. date: 2026-04-12-12-31-45 .. gh-issue: 121190 .. nonce: O6-E5_ .. section: Library

importlib.resources.files() now emits a more meaningful error message when module spec is None (as found in some __main__ modules).

..

.. date: 2026-04-11-17-28-06 .. gh-issue: 127012 .. nonce: h3rLYS .. section: Library

importlib.abc.Traversable.read_text now allows/solicits an errors parameter.

..

.. date: 2026-04-11-12-32-38 .. gh-issue: 137855 .. nonce: tsVny_ .. section: Library

Improve import time of :mod:dataclasses module by lazy importing :mod:re and :mod:copy modules.

..

.. date: 2026-04-10-20-23-22 .. gh-issue: 148352 .. nonce: lrec3W .. section: Library

Add more color to :mod:calendar's CLI output. Patch by Hugo van Kemenade.

..

.. date: 2026-04-09-12-42-42 .. gh-issue: 148254 .. nonce: Xt7vKs .. section: Library

Use singular "sec" instead of "secs" in :mod:timeit verbose output for consistency with other time units.

..

.. date: 2026-04-08-21-39-01 .. gh-issue: 130472 .. nonce: 4Bk6qH .. section: Library

Integrate fancycompleter with import completions.

..

.. date: 2026-04-08-14-19-17 .. gh-issue: 148241 .. nonce: fO_QT4 .. section: Library

:mod:json: Fix serialization: no longer call str(obj) on :class:str subclasses. Patch by Victor Stinner.

..

.. date: 2026-04-08-11-44-12 .. gh-issue: 148225 .. nonce: H34yJp .. section: Library

The :mod:profiling.sampling replay command now rejects non-binary profile files with a clear error explaining that replay only accepts files created with --binary.

..

.. date: 2026-04-07-14-13-40 .. gh-issue: 148192 .. nonce: 34AUYQ .. section: Library

email.generator.Generator._make_boundary could fail to detect a duplicate boundary string if linesep was not \n. It now correctly detects boundary strings when linesep is \r\n as well.

..

.. date: 2026-04-07-12-37-53 .. gh-issue: 148207 .. nonce: YhGem4 .. section: Library

:class:typing.TypeVarTuple now accepts bound, covariant, contravariant, and infer_variance parameters, matching the interface of :class:typing.TypeVar and :class:typing.ParamSpec.

..

.. date: 2026-04-04-20-22-02 .. gh-issue: 148100 .. nonce: lSmGQi .. section: Library

:term:Soft deprecate <soft deprecated> :func:re.match and :meth:re.Pattern.match in favour of :func:re.prefixmatch and :meth:re.Pattern.prefixmatch. Patch by Hugo van Kemenade.

..

.. date: 2026-04-02-05-06-34 .. gh-issue: 147991 .. nonce: 2ANtR5 .. section: Library

Improve :mod:tomllib import time (up to 10x faster). Patch by Victor Stinner.

..

.. date: 2026-04-01-07-10-49 .. gh-issue: 147957 .. nonce: QXf5Xx .. section: Library

Guarantees that :meth:collections.UserDict.popitem will pop in the same order as the wrapped dictionary rather than an arbitrary order.

..

.. date: 2026-03-31-17-33-10 .. gh-issue: 146256 .. nonce: Nm_Ke_ .. section: Library

The profiling.sampling module now supports JSONL output format via --jsonl. Each run emits a newline-delimited JSON file that is sequentially parseable by external tools, scripts, and programmatic consumers. Patch by Maurycy Pawłowski-Wieroński.

..

.. date: 2026-03-29-21-31-14 .. gh-issue: 146609 .. nonce: BnshCt .. section: Library

Add colour to :mod:timeit CLI output. Patch by Hugo van Kemenade.

..

.. date: 2026-03-28-11-31-32 .. gh-issue: 146563 .. nonce: cXtSym .. section: Library

:mod:xml.parsers.expat: add an exception note when a custom Expat handler return value cannot be properly interpreted. Patch by Bénédikt Tran.

..

.. date: 2026-03-26-01-42-20 .. gh-issue: 137586 .. nonce: KmHRwR .. section: Library

Add :class:!MacOS to :mod:webbrowser for macOS, which opens URLs via /usr/bin/open instead of piping AppleScript to osascript. Deprecate :class:!MacOSXOSAScript in favour of :class:!MacOS.

..

.. date: 2026-03-25-07-17-41 .. gh-issue: 146406 .. nonce: ydsmqe .. section: Library

Cross-language method suggestions are now shown for :exc:AttributeError on builtin types and their subclasses. For example, [].push() suggests append, (1,2).append(3) suggests using a list, None.keys() suggests expecting a dict, and 1.0.__or__ suggests using an int.

..

.. date: 2026-03-22-23-42-22 .. gh-issue: 146313 .. nonce: RtDeAd .. section: Library

Fix a deadlock in :mod:multiprocessing's resource tracker where the parent process could hang indefinitely in :func:os.waitpid during interpreter shutdown if a child created via :func:os.fork still held the resource tracker's pipe open.

..

.. date: 2026-03-22-16-52-04 .. gh-issue: 146292 .. nonce: rJvvs0 .. section: Library

Add colour to :mod:~http.server.BaseHTTPRequestHandler logs, as used by the :mod:http.server CLI. Patch by Hugo van Kemenade.

..

.. date: 2026-03-13-14-23-33 .. gh-issue: 145917 .. nonce: TooGKx .. section: Library

Add MIME types for TTC and Haptics formats to :mod:mimetypes. (Contributed by Charlie Lin in :gh:145918.)

..

.. date: 2026-03-12-00-00-00 .. gh-issue: 145846 .. nonce: UbHxjv .. section: Library

Fix memory leak in _lsprof when clear() is called during active profiling with nested calls. clearEntries() now walks the entire currentProfilerContext linked list instead of only freeing the top context.

..

.. date: 2026-03-11-15-09-52 .. gh-issue: 145831 .. nonce: _sW94w .. section: Library

Fix :func:!email.quoprimime.decode leaving a stray \r when eol='\r\n' by stripping the full eol string instead of one character.

..

.. date: 2026-03-01-01-58-10 .. gh-issue: 145378 .. nonce: oy6rb9 .. section: Library

Use PyREPL as the default input console for :mod:pdb

..

.. date: 2026-02-26-12-00-00 .. gh-issue: 145244 .. nonce: Kj31cp .. section: Library

Fixed a use-after-free in :mod:json encoder when a default callback mutates the dictionary being serialized.

..

.. date: 2026-02-25-22-20-00 .. gh-issue: 117716 .. nonce: w6kYp9 .. section: Library

Fix :mod:wave writing of odd-sized data chunks by appending the required RIFF pad byte and correcting the RIFF chunk size field accordingly.

..

.. date: 2026-02-25-10-00-00 .. gh-issue: 145200 .. nonce: m_4PAtcI .. section: Library

:mod:hashlib: fix a memory leak when allocating or initializing an OpenSSL HMAC context fails.

..

.. date: 2026-02-22-19-36-00 .. gh-issue: 145056 .. nonce: TH8nX4 .. section: Library

Add support for :class:frozendict in :meth:dataclasses.asdict and :meth:dataclasses.astuple.

..

.. date: 2026-02-22-00-00-00 .. gh-issue: 145105 .. nonce: csv-reader-reentrant .. section: Library

Fix crash in :mod:csv reader when iterating with a re-entrant iterator that calls :func:next on the same reader from within __next__.

..

.. date: 2026-02-19-04-40-57 .. gh-issue: 130750 .. nonce: 0hW52O .. section: Library

Restore quoting of choices in :mod:argparse error messages for improved clarity and consistency with documentation.

..

.. date: 2026-02-12-18-05-16 .. gh-issue: 137855 .. nonce: 2_PTbg .. section: Library

Reduce the import time of :mod:dataclasses module by ~20%.

..

.. date: 2026-02-07-12-54-20 .. gh-issue: 70647 .. nonce: Bja_Lk .. section: Library

:meth:~datetime.datetime.strptime now raises :exc:ValueError when the format string contains %d without a year directive. Using %e without a year now emits a :exc:DeprecationWarning.

..

.. date: 2026-01-19-21-23-18 .. gh-issue: 105936 .. nonce: dGrzjM .. section: Library

Attempting to mutate non-field attributes of :mod:dataclasses with both frozen and slots being True now raises :class:~dataclasses.FrozenInstanceError instead of :class:TypeError. Their non-dataclass subclasses can now freely mutate non-field attributes, and the original non-slotted class can be garbage collected.

..

.. date: 2025-12-17-04-10-35 .. gh-issue: 142831 .. nonce: ee3t4L .. section: Library

Fix a crash in the :mod:json module where a use-after-free could occur if the object being encoded is modified during serialization.

..

.. date: 2025-12-17-02-55-03 .. gh-issue: 108411 .. nonce: up7MAc .. section: Library

typing.IO and typing.BinaryIO method arguments are now positional-only.

..

.. date: 2025-12-10-15-15-09 .. gh-issue: 130273 .. nonce: iCfiY5 .. section: Library

Fix traceback color output with Unicode characters.

..

.. date: 2025-12-06-11-24-25 .. gh-issue: 142307 .. nonce: w8evI9 .. section: Library

:mod:imaplib: deprecate support for :attr:IMAP4.file <imaplib.IMAP4.file>. This attribute was never meant to be part of the public interface and altering its value may result in unclosed files or other synchronization issues with the underlying socket. Patch by Bénédikt Tran.

..

.. date: 2025-12-06-08-48-26 .. gh-issue: 141449 .. nonce: hQvNW_ .. section: Library

Improve tests and documentation for non-function callables as :term:annotate functions <annotate function>.

..

.. date: 2025-10-18-12-13-39 .. gh-issue: 140287 .. nonce: 49iU-4 .. section: Library

The :mod:asyncio REPL now handles exceptions when executing :envvar:PYTHONSTARTUP scripts. Patch by Bartosz Sławecki.

..

.. date: 2025-10-08-15-36-00 .. gh-issue: 139489 .. nonce: W46tvn .. section: Library

Add the :func:xml.is_valid_name function, which allows to check whether a string can be used as an element or attribute name in XML.

..

.. date: 2025-08-24-15-09-30 .. gh-issue: 75707 .. nonce: GOWZrC .. section: Library

Add optional mtime argument to :func:tarfile.open, for setting the mtime header field in .tar.gz archives.

..

.. date: 2025-07-02-17-01-17 .. gh-issue: 125862 .. nonce: WgFYj3 .. section: Library

The :func:contextlib.contextmanager and :func:contextlib.asynccontextmanager decorators now work correctly with generators, coroutine functions, and async generators when the wrapped callables are used as decorators.

..

.. date: 2025-06-22-16-29-10 .. gh-issue: 135528 .. nonce: Rt_QhR .. section: Library

:mod:http.cookiejar: add "tv", "or", "nom", "sch", and "web" to the default list of supported country code second-level domains.

..

.. date: 2025-06-02-22-23-38 .. gh-issue: 135056 .. nonce: yz3dSs .. section: Library

Add a -H or --header CLI option to :program:python -m http.server. Contributed by Anton I. Sipos.

..

.. date: 2025-05-23-10-28-51 .. gh-issue: 134551 .. nonce: 0rnq0X .. section: Library

Add t-strings support to pprint functions

..

.. date: 2025-05-16-01-43-58 .. gh-issue: 133956 .. nonce: 5kWDYd .. section: Library

Fix bug where :func:@dataclass <dataclasses.dataclass> wouldn't detect ClassVar fields if ClassVar was re-exported from a module other than :mod:typing.

..

.. date: 2025-04-17-15-26-35 .. gh-issue: 132631 .. nonce: IDFZfb .. section: Library

Fix "I/O operation on closed file" when parsing JSON Lines file with :mod:JSON CLI <json.tool>.

..

.. date: 2024-11-24-07-18-40 .. gh-issue: 108951 .. nonce: jyKygP .. section: Library

:mod:asyncio: Add :meth:TaskGroup.cancel <asyncio.TaskGroup.cancel> which cancels unfinished tasks and exits the group without raising :exc:asyncio.CancelledError.

..

.. date: 2024-09-09-12-48-37 .. gh-issue: 123853 .. nonce: e-zFxb .. section: Library

Update the table of Windows language code identifiers (LCIDs) used by :func:locale.getdefaultlocale on Windows to protocol version 16.0 (2024-04-23).

..

.. date: 2024-07-31-17-23-06 .. gh-issue: 122476 .. nonce: TtUa-c .. section: Library

The :mod:email module no longer incorrectly uses :rfc:2047 encoding for a mailbox with non-ASCII characters in its local-part. Under a policy with :attr:~email.policy.EmailPolicy.utf8 set False, attempting to serialize such a message will now raise an :exc:~email.errors.HeaderWriteError. There is no valid 7-bit encoding for an internationalized local-part. Use :data:email.policy.SMTPUTF8 (or another policy with utf8=True) to correctly pass through the local-part as Unicode characters.

..

.. date: 2024-07-31-17-22-10 .. gh-issue: 83938 .. nonce: TtUa-c .. section: Library

The :mod:email module no longer incorrectly uses :rfc:2047 encoding for a mailbox with non-ASCII characters in its domain. Under a policy with :attr:~email.policy.EmailPolicy.utf8 set False, attempting to serialize such a message will now raise an :exc:~email.errors.HeaderWriteError. Either apply an appropriate IDNA encoding to convert the domain to ASCII before serialization, or use :data:email.policy.SMTPUTF8 (or another policy with utf8=True) to correctly pass through the internationalized domain name as Unicode characters.

..

.. date: 2024-07-30-19-19-33 .. gh-issue: 81074 .. nonce: YAeWNf .. section: Library

The :mod:email module no longer treats email addresses with non-ASCII characters as defects when parsing a Unicode string or in the addr_spec parameter to :class:email.headerregistry.Address. :rfc:5322 permits such addresses, and they were already supported when parsing bytes and in the Address username parameter.

The (undocumented) :exc:!email.errors.NonASCIILocalPartDefect is no longer used and should be considered deprecated.

..

.. date: 2024-02-10-21-25-22 .. gh-issue: 70039 .. nonce: 6wvcAP .. section: Library

Fixed bug where :meth:smtplib.SMTP.starttls could fail if :meth:smtplib.SMTP.connect is called explicitly rather than implicitly.

..

.. date: 2023-12-25-19-14-07 .. gh-issue: 113471 .. nonce: ZQMpbI .. section: Library

Allow :mod:http.server to set a default content-type when serving files with an unknown or missing extension.

..

.. date: 2023-09-08-13-10-32 .. gh-issue: 83281 .. nonce: 2Plpcj .. section: Library

:mod:email: improve handling trailing garbage in address lists to avoid throwing AttributeError in certain edge cases

..

.. date: 2022-09-17-20-20-01 .. gh-issue: 96894 .. nonce: t7my0A .. section: Library

Do not turn echo off for subsequent commands in batch activators (activate.bat and deactivate.bat) of :mod:venv.

..

.. date: 2026-04-17-02-28-55 .. gh-issue: 148663 .. nonce: MHIbRB .. section: Documentation

Document that :class:calendar.IllegalMonthError is a subclass of both :exc:ValueError and :exc:IndexError since Python 3.12.

..

.. date: 2026-04-02-07-20-00 .. gh-issue: 146646 .. nonce: GlobDoc1 .. section: Documentation

Document that :func:glob.glob, :func:glob.iglob, :meth:pathlib.Path.glob, and :meth:pathlib.Path.rglob silently suppress :exc:OSError exceptions raised from scanning the filesystem.

..

.. date: 2026-05-05-18-49-44 .. gh-issue: 149425 .. nonce: QnQL8j .. section: Tests

Increase time delta in test.test_zipfile.test_core.OtherTests.test_write_without_source_date_epoch

..

.. date: 2026-04-21-12-33-14 .. gh-issue: 148600 .. nonce: vnTb3t .. section: Tests

Add OpenSSL 4.0.0 support to test configurations.

..

.. date: 2026-05-04-23-07-45 .. gh-issue: 149353 .. nonce: XfM8aQ .. section: Build

Avoid unnecessary JIT-related rebuilds during make install after --enable-optimizations builds.

..

.. date: 2026-05-04-06-03-50 .. gh-issue: 149351 .. nonce: hN4sF0 .. section: Build

Avoid possible broken macOS framework install names when DESTDIR is specified during builds.

..

.. date: 2026-05-01-20-01-32 .. gh-issue: 149252 .. nonce: 4W_0-w .. section: Build

Update to WASI SDK 33.

..

.. date: 2026-05-01-12-01-54 .. gh-issue: 148690 .. nonce: oTtYk- .. section: Build

Windows free-threaded builds now output to a different default path with default filenames, for example, PCbuild/amd64t/python.exe rather than PCbuild/amd64/python3.15t.exe. The PC/layout script has been updated to ensure compatibility of generated layouts.

..

.. date: 2026-04-30-08-43-47 .. gh-issue: 146475 .. nonce: 1cL4hX .. section: Build

Block Apple Clang from being used to build the JIT as it ships without required LLVM tools.

..

.. date: 2026-04-17-21-45-32 .. gh-issue: 148644 .. nonce: vwkknh .. section: Build

Errors during the PGO training job on Windows are no longer ignored, and a non-zero return code will cause the build to fail.

..

.. date: 2026-04-14-15-20-29 .. gh-issue: 148535 .. nonce: JjKiaa .. section: Build

No longer use the gcc -fprofile-update=atomic flag on i686. The flag has been added to fix a random GCC internal error on PGO build (:gh:145801) caused by corruption of profile data (.gcda files). The problem is that it makes the PGO build way slower (up to 47x slower) on i686. Since the GCC internal error was not seen on i686 so far, don't use -fprofile-update=atomic on i686 anymore. Patch by Victor Stinner.

..

.. date: 2026-04-13-02-36-13 .. gh-issue: 148483 .. nonce: gLe1h8 .. section: Build

Use Py_GCC_ATTRIBUTE(unused) for stop_tracing label.

..

.. date: 2026-04-12-22-54-16 .. gh-issue: 148474 .. nonce: ouIO8R .. section: Build

Fixed compilation of :file:Python/pystrhex.c with older clang versions.

..

.. date: 2026-04-09-11-42-32 .. gh-issue: 146445 .. nonce: Z1vccC .. section: Build

The Android build tools have been moved to the Platforms folder.

..

.. date: 2026-03-21-18-51-31 .. gh-issue: 146264 .. nonce: Q9Ej4m .. section: Build

Fix static module builds on non-WASI targets by linking HACL dependencies as static libraries when MODULE_BUILDTYPE=static, preventing duplicate _Py_LibHacl_* symbol errors at link time.

..

.. date: 2025-09-03-14-55-59 .. gh-issue: 138451 .. nonce: -Qzh2S .. section: Build

Allow for custom LLVM path using LLVM_TOOLS_INSTALL_DIR during JIT build.

..

.. date: 2025-05-02-17-06-10 .. gh-issue: 133312 .. nonce: YkO6BI .. section: Build

Add a new ./configure option :option:--enable-static-libpython-for-interpreter which, when used with :option:--enable-shared, continues to build the shared library but does not use it for the interpreter. Instead, libpython is statically linked into the interpreter, as if :option:--enable-shared had not been used. This allows you to do a single build and get a Python interpreter binary that does not use a shared library but also get a shared library for use by other programs.

..

.. date: 2026-05-03-13-55-51 .. gh-issue: 149254 .. nonce: ENtMYD .. section: Windows

Updated bundled version of OpenSSL to 3.5.6.

..

.. date: 2026-05-01-12-03-39 .. gh-issue: 148690 .. nonce: TMV8dU .. section: Windows

Non-freethreaded builds on Windows now support extensions linked to python3t.dll, and will include a copy of that library in normal installs that references the non-freethreaded runtime.

..

.. date: 2026-03-27-22-06-10 .. gh-issue: 146458 .. nonce: fYj0UQ .. section: Windows

Fix incorrect REPL height and width tracking on console window resize on Windows.

..

.. date: 2026-05-06-18-23-36 .. gh-issue: 142295 .. nonce: O9RmZH .. section: macOS

For Python macOS framework builds, update Info.plist files to be more compliant with current Apple guidelines. Original patch contributed by Martinus Verburg.

..

.. date: 2026-05-01-20-12-33 .. gh-issue: 149254 .. nonce: kXdWpS .. section: macOS

Update macOS installer to use OpenSSL 3.5.6.

..

.. date: 2026-03-07-20-47-40 .. gh-issue: 94523 .. nonce: dq7m2k .. section: IDLE

Detect file if modified at local disk and prompt to ask refresh. Patch by Shixian Li.

..

.. date: 2025-10-05-19-33-39 .. gh-issue: 139551 .. nonce: TX9BRc .. section: IDLE

Support rendering :exc:BaseExceptionGroup in IDLE.

..

.. date: 2021-10-03-21-55-34 .. gh-issue: 89520 .. nonce: etEExa .. section: IDLE

Make IDLE extension configuration look at user config files, allowing user-installed extensions to have settings and key bindings defined in ~/.idlerc.

..

.. date: 2026-05-01-14-49-09 .. gh-issue: 149225 .. nonce: IdAYPZ .. section: C API

:c:type:PyCriticalSection and related functions are added to the Stable ABI.

..

.. date: 2026-05-01-00-00-00 .. gh-issue: 149216 .. nonce: TpWatch .. section: C API

:c:type:PyType_WatchCallback callbacks registered via :c:func:PyType_AddWatcher are now also invoked when a watched heap type is deallocated. Previously, type watchers were only notified of modifications, which could cause stale references when a type was freed and its address was reused.

..

.. date: 2026-04-28-17-43-12 .. gh-issue: 149101 .. nonce: HTuHTb .. section: C API

Implement :pep:788.

..

.. date: 2026-04-27-10-56-22 .. gh-issue: 149044 .. nonce: TbOcUS .. section: C API

Implement :pep:820: Unified slot system for the C API.

..

.. date: 2026-04-09-14-45-44 .. gh-issue: 148267 .. nonce: p84kG_ .. section: C API

Using :c:macro:Py_LIMITED_API on a non-Windows free-threaded build no longer needs an extra :c:macro:Py_GIL_DISABLED.

..

.. date: 2026-04-05-18-18-59 .. gh-issue: 145559 .. nonce: qKJH9S .. section: C API

Rename _Py_DumpTraceback and _Py_DumpTracebackThreads to :c:func:PyUnstable_DumpTraceback and :c:func:PyUnstable_DumpTracebackThreads.

..

.. date: 2026-04-03-11-06-20 .. gh-issue: 146636 .. nonce: zR6Jsn .. section: C API

Implement :pep:803 -- abi3t: Stable ABI for Free-Threaded Builds.

..

.. date: 2026-03-22-00-00-00 .. gh-issue: 146302 .. nonce: PyIsInit .. section: C API

:c:func:Py_IsInitialized no longer returns true until initialization has fully completed, including import of the :mod:site module. The underlying runtime flags now use atomic operations.

..

.. date: 2026-03-19-15-28-14 .. gh-issue: 146063 .. nonce: Sc-1RU .. section: C API

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

..

.. date: 2026-03-13-16-37-54 .. gh-issue: 145921 .. nonce: ssA7HZ .. section: C API

Add functions that are guaranteed to be safe for use in :c:member:~PyTypeObject.tp_traverse handlers: :c:func:PyObject_GetTypeData_DuringGC, :c:func:PyObject_GetItemData_DuringGC, :c:func:PyType_GetModuleState_DuringGC, :c:func:PyModule_GetState_DuringGC, :c:func:PyModule_GetToken_DuringGC, :c:func:PyType_GetBaseByToken_DuringGC, :c:func:PyType_GetModule_DuringGC, :c:func:PyType_GetModuleByToken_DuringGC.