]> git.ipfire.org Git - thirdparty/Python/cpython.git/log
thirdparty/Python/cpython.git
6 weeks agogh-148515: make `optimizer_generator` respect multiple caches (#148524)
Neko Asakura [Tue, 14 Apr 2026 04:51:05 +0000 (00:51 -0400)] 
gh-148515: make `optimizer_generator` respect multiple caches (#148524)

6 weeks agogh-148508: Add resilience to SSL preauth tests on iOS (#148536)
Russell Keith-Magee [Tue, 14 Apr 2026 03:12:37 +0000 (11:12 +0800)] 
gh-148508: Add resilience to SSL preauth tests on iOS (#148536)

Adds handling for a test case seen in the iOS SSL tests where an SSL connection fails to
handshake correctly.

6 weeks agogh-148252: Fix stack depth calculation in binary reader on 32-bit platforms (#148253)
Pablo Galindo Salgado [Mon, 13 Apr 2026 22:43:55 +0000 (23:43 +0100)] 
gh-148252: Fix stack depth calculation in binary reader on 32-bit platforms (#148253)

Compute ``final_depth`` in ``decode_stack_pop_push()`` and
``decode_stack_suffix()`` using ``uint64_t`` before validating it.

On 32-bit builds, using ``size_t`` arithmetic for ``keep + push`` can wrap
for large input values, causing the later bounds check to validate the wrong
final depth. Using a widened type keeps the validation aligned with the
actual result.

6 weeks agogh-148370: prevent quadratic behavior in `configparser.ParsingError.combine` (#148452)
Bénédikt Tran [Mon, 13 Apr 2026 22:32:54 +0000 (00:32 +0200)] 
gh-148370: prevent quadratic behavior in `configparser.ParsingError.combine` (#148452)

6 weeks agogh-148178: Validate remote debug offset tables on load (#148187)
Pablo Galindo Salgado [Mon, 13 Apr 2026 22:22:23 +0000 (23:22 +0100)] 
gh-148178: Validate remote debug offset tables on load (#148187)

Treat the debug offset tables read from a target process as untrusted input
and validate them before the unwinder uses any reported sizes or offsets.

Add a shared validator in debug_offsets_validation.h and run it once when
_Py_DebugOffsets is loaded and once when AsyncioDebug is loaded. The checks
cover section sizes used for fixed local buffers and every offset that is
later dereferenced against a local buffer or local object view. This keeps
the bounds checks out of the sampling hot path while rejecting malformed
tables up front.

6 weeks agogh-144881: Add retry logic to asyncio debugging tools (#148530)
Bartosz Sławecki [Mon, 13 Apr 2026 22:10:54 +0000 (00:10 +0200)] 
gh-144881: Add retry logic to asyncio debugging tools (#148530)

Transient errors can occur when attaching to a process that is actively
using thread delegation (e.g. asyncio.to_thread). Add a retry loop to
_get_awaited_by_tasks for RuntimeError, OSError, UnicodeDecodeError, and
MemoryError, and expose --retries CLI flag on both `ps` and `pstree`
subcommands (default: 3).

Co-authored-by: Pablo Galindo Salgado <Pablogsal@gmail.com>
Co-authored-by: Stan Ulbrych <stan@python.org>
6 weeks agogh-146445: Migrate Android build tools to the Platforms folder. (#148282)
Russell Keith-Magee [Mon, 13 Apr 2026 21:41:16 +0000 (05:41 +0800)] 
gh-146445: Migrate Android build tools to the Platforms folder. (#148282)

Migrates Android build tooling to the shared Platforms folder.

Co-authored-by: Malcolm Smith <smith@chaquo.com>
6 weeks agogh-146139: Disable `socketpair` authentication on WASI (#146140)
Joel Dice [Mon, 13 Apr 2026 21:06:36 +0000 (15:06 -0600)] 
gh-146139: Disable `socketpair` authentication on WASI (#146140)

Calling `connect(2)` on a non-blocking socket on WASI may leave the socket in a
"connecting" but not yet "connected" state.  In the former case, calling
`getpeername(2)` on it will fail, leading to an unhandled exception in Python.

Co-authored-by: Victor Stinner <vstinner@python.org>
Co-authored-by: Brett Cannon <brett@python.org>
6 weeks agogh-148169: Fix webbrowser `%action` substitution bypass of dash-prefix check (#148170)
Stan Ulbrych [Mon, 13 Apr 2026 19:02:52 +0000 (20:02 +0100)] 
gh-148169: Fix webbrowser `%action` substitution bypass of dash-prefix check (#148170)

6 weeks agoFix "encodings" typo in argparse.FileType documentation (#148502)
Gleb Popov [Mon, 13 Apr 2026 18:12:25 +0000 (21:12 +0300)] 
Fix "encodings" typo in argparse.FileType documentation (#148502)

6 weeks agogh-148393: Use acquire load for _ma_watcher_tag in dict notify event (gh-148509)
Sam Gross [Mon, 13 Apr 2026 18:11:28 +0000 (14:11 -0400)] 
gh-148393: Use acquire load for _ma_watcher_tag in dict notify event (gh-148509)

The watcher-bits read in _PyDict_NotifyEvent needs to use acquire to
synchronize with the release from PyDict_Watch so that the callback
publication is visible before the callback is invoked.

6 weeks agoMinor improvement to statistics.pdf() (gh-148500)
Raymond Hettinger [Mon, 13 Apr 2026 16:29:15 +0000 (11:29 -0500)] 
Minor improvement to statistics.pdf() (gh-148500)

6 weeks agogh-131798: JIT: Optimize `_CHECK_IS_NOT_PY_CALLABLE_EX` and `_CHECK_IS_NOT_PY_CALLABL...
Wulian233 [Mon, 13 Apr 2026 14:41:06 +0000 (22:41 +0800)] 
gh-131798: JIT: Optimize `_CHECK_IS_NOT_PY_CALLABLE_EX` and `_CHECK_IS_NOT_PY_CALLABLE_KW` (GH-148494)

6 weeks agogh-131798: optimize through keyword and bound method calls in the JIT (GH-148466)
Kumar Aditya [Mon, 13 Apr 2026 13:14:48 +0000 (18:44 +0530)] 
gh-131798: optimize through keyword and bound method calls in the JIT (GH-148466)

Co-authored-by: Ken Jin <kenjin4096@gmail.com>
6 weeks agogh-148483: Use Py_GCC_ATTRIBUTE(unused) for stop_tracing label (GH-148481)
Charlie Lin [Mon, 13 Apr 2026 13:05:34 +0000 (09:05 -0400)] 
gh-148483: Use Py_GCC_ATTRIBUTE(unused) for stop_tracing label (GH-148481)

6 weeks agogh-148285: Allow recording uops after specializing uops (GH-148482)
Neko Asakura [Mon, 13 Apr 2026 12:56:29 +0000 (08:56 -0400)] 
gh-148285: Allow recording uops after specializing uops (GH-148482)

6 weeks agogh-96894: Do not turn echo off for subsequent commands in batch activators (GH-96895)
Paweł Szramowski [Mon, 13 Apr 2026 11:50:46 +0000 (13:50 +0200)] 
gh-96894: Do not turn echo off for subsequent commands in batch activators (GH-96895)

6 weeks agoInternalDocs: Correct struct path for latin1 singletons in `string_interning.md`...
Stan Ulbrych [Mon, 13 Apr 2026 09:45:41 +0000 (10:45 +0100)] 
InternalDocs: Correct struct path for latin1 singletons in `string_interning.md` (GH-148358)

6 weeks agogh-148395: Fix a possible UAF in `{LZMA,BZ2,_Zlib}Decompressor` (GH-148396)
Stan Ulbrych [Mon, 13 Apr 2026 01:14:54 +0000 (02:14 +0100)] 
gh-148395: Fix a possible UAF in `{LZMA,BZ2,_Zlib}Decompressor` (GH-148396)

Fix dangling input pointer after `MemoryError` in _lzma/_bz2/_ZlibDecompressor.decompress

6 weeks agogh-121190: Emit a better error message from `importlib.resources.files()` when module...
Jason R. Coombs [Sun, 12 Apr 2026 22:15:01 +0000 (18:15 -0400)] 
gh-121190: Emit a better error message from `importlib.resources.files()` when module spec is `None`" (#148460)

Also merges incidental changes from importlib_resources 7.1.

Co-authored by: Yuichiro Tachibana (Tsuchiya) <t.yic.yt@gmail.com>

6 weeks agogh-146450: Ensure Android gradle build uses custom cross-build dir (#148319)
Russell Keith-Magee [Sun, 12 Apr 2026 21:57:29 +0000 (05:57 +0800)] 
gh-146450: Ensure Android gradle build uses custom cross-build dir (#148319)

Ensures that the testbed's Gradle configuration uses the cross-build environment
variable, and that variable is passed to Gradle by the cross-build script.

Co-authored-by: Malcolm Smith <smith@chaquo.com>
6 weeks agogh-105936: Properly update closure cells for `__setattr__` and `__delattr__` in froze...
Sviataslau [Sun, 12 Apr 2026 21:12:19 +0000 (00:12 +0300)] 
gh-105936: Properly update closure cells for `__setattr__` and `__delattr__` in frozen dataclasses with slots (GH-144021)

6 weeks agogh-148438: implement `_RECORD_BOUND_METHOD` in JIT (GH-148457)
Neko Asakura [Sun, 12 Apr 2026 18:57:55 +0000 (14:57 -0400)] 
gh-148438: implement `_RECORD_BOUND_METHOD` in JIT (GH-148457)

6 weeks agogh-131798: Split `_CHECK_AND_ALLOCATE_OBJECT` into smaller uops (GH-148433)
Sacul [Sun, 12 Apr 2026 18:31:24 +0000 (02:31 +0800)] 
gh-131798: Split `_CHECK_AND_ALLOCATE_OBJECT` into smaller uops (GH-148433)

Co-authored-by: Hai Zhu <haiizhu@outlook.com>
Co-authored-by: Ken Jin <kenjin4096@gmail.com>
6 weeks agogh-146261: JIT: protect against function version changes (#146300)
Ken Jin [Sun, 12 Apr 2026 18:23:47 +0000 (02:23 +0800)] 
gh-146261: JIT: protect against function version changes (#146300)

Co-authored-by: Kumar Aditya <kumaraditya@python.org>
6 weeks agogh-139551: add support for BaseExceptionGroup in IDLE (GH-139563)
Locked-chess-official [Sun, 12 Apr 2026 17:06:41 +0000 (01:06 +0800)] 
gh-139551: add support for BaseExceptionGroup in IDLE (GH-139563)

Meaningfully render ExceptionGroup tracebacks in the IDLE GUI REPL.

---------

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: Gregory P. Smith <greg@krypto.org>
6 weeks agogh-148393: Use atomic ops on _ma_watcher_tag in free threading build (gh-148397)
Sam Gross [Sun, 12 Apr 2026 14:40:41 +0000 (10:40 -0400)] 
gh-148393: Use atomic ops on _ma_watcher_tag in free threading build (gh-148397)

Fixes data races between dict mutation and watch/unwatch on the same dict.

6 weeks agogh-131798: Add `_CHECK_IS_NOT_PY_CALLABLE` to the JIT optimizer (GH-148434)
Wulian233 [Sun, 12 Apr 2026 13:07:19 +0000 (21:07 +0800)] 
gh-131798: Add `_CHECK_IS_NOT_PY_CALLABLE` to the JIT optimizer (GH-148434)

6 weeks agogh-148398: add type watcher in `_CHECK_ATTR_CLASS` (GH-148399)
Neko Asakura [Sun, 12 Apr 2026 12:54:03 +0000 (08:54 -0400)] 
gh-148398: add type watcher in `_CHECK_ATTR_CLASS` (GH-148399)

6 weeks agogh-146313: Fix multiprocessing ResourceTracker deadlock after os.fork() (GH-146316)
Gregory P. Smith [Sun, 12 Apr 2026 06:06:19 +0000 (23:06 -0700)] 
gh-146313: Fix multiprocessing ResourceTracker deadlock after os.fork() (GH-146316)

`ResourceTracker.__del__` (added in gh-88887 circa Python 3.12) calls
os.waitpid(pid, 0) which blocks indefinitely if a process created via os.fork()
still holds the tracker pipe's write end. The tracker never sees EOF, never
exits, and the parent hangs at interpreter shutdown.

Fix with two layers:

- **At-fork handler.** An os.register_at_fork(after_in_child=...)
  handler closes the inherited pipe fd in the child unless a preserve
  flag is set. popen_fork.Popen._launch() sets the flag before its
  fork so mp.Process(fork) children keep the fd and reuse the parent's
  tracker (preserving gh-80849). Raw os.fork() children close the fd,
  letting the parent reap promptly.

- **Timeout safety-net.** _stop_locked() gains a wait_timeout
  parameter. When called from `__del__`, it polls with WNOHANG using
  exponential backoff for up to 1 second instead of blocking
  indefinitely. The at-fork handler makes this unreachable in
  well-behaved paths; it remains for abnormal shutdowns.

Co-authored-by: Itamar Oren <itamarost@gmail.com>
6 weeks agoGH-148047: Check early whether tail-calling is possible for MSVC builds on Windows...
Chris Eibl [Sun, 12 Apr 2026 05:49:18 +0000 (07:49 +0200)] 
GH-148047: Check early whether tail-calling is possible for MSVC builds on Windows (#148036)

Rather than failing late when compiling e.g. a debug configuration
```
build.bat -c debug --tail-call-interp
```
with hundreds of
```
error C4737: Unable to perform required tail call. Performance may be degraded.
```
-- fail early with an explicit error message for configurations that are not supported by MSVC.

This is a follow-up on https://github.com/python/cpython/issues/140513 / https://github.com/python/cpython/pull/140548

6 weeks agogh-89520: Load extension settings and keybindings from user config (GH-28713)
CoolCat467 [Sun, 12 Apr 2026 04:44:33 +0000 (23:44 -0500)] 
gh-89520: Load extension settings and keybindings from user config (GH-28713)

Extension keybindings defined in ~/.idlerc/config-extensions.cfg were silently ignored because GetExtensionKeys, __GetRawExtensionKeys, and GetExtensionBindings only checked default config. Fix these to check user config as well, and update the extensions config dialog to handle user-only extensions correctly.

---------

Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Co-authored-by: Gregory P. Smith <68491+gpshead@users.noreply.github.com>
Co-authored-by: Gregory P. Smith <greg@krypto.org>
6 weeks agogh-100305: Deemphasize that `ast.literal_eval` is safe in `eval` documentation (...
Ram Vikram Singh [Sun, 12 Apr 2026 03:07:42 +0000 (08:37 +0530)] 
gh-100305: Deemphasize that `ast.literal_eval` is safe in `eval` documentation (#100326)

Co-authored-by: Éric <merwok@netwok.org>
6 weeks agogh-147965: Add shutdown() to multiprocessing.Queue excluded methods (GH-147970)
WYSIATI [Sun, 12 Apr 2026 00:46:06 +0000 (08:46 +0800)] 
gh-147965: Add shutdown() to multiprocessing.Queue excluded methods (GH-147970)

The multiprocessing.Queue documentation states it implements all
methods of queue.Queue except task_done() and join(). Since
queue.Queue.shutdown() was added in Python 3.13,
multiprocessing.Queue also does not implement it. Update the docs
to include shutdown() in the list of excluded methods.

6 weeks agogh-97032: avoid test_squeezer crash on macOS buildbots (gh-115508) (GH-148141)
Neil Schemenauer [Sun, 12 Apr 2026 00:43:04 +0000 (17:43 -0700)] 
gh-97032: avoid test_squeezer crash on macOS buildbots (gh-115508) (GH-148141)

gh-97032: avoid test_squeezer crash on macOS buildbots (#115508)

avoid test_squeezer crash on macOS buildbots

Co-authored-by: Ned Deily <nad@python.org>
6 weeks agogh-148208: Fix recursion depth leak in `PyObject_Print` (GH-148209)
Wulian233 [Sun, 12 Apr 2026 00:26:18 +0000 (08:26 +0800)] 
gh-148208: Fix recursion depth leak in `PyObject_Print` (GH-148209)

6 weeks agogh-142831: Fix use-after-free in json encoder during re-entrant mutation (gh-142851)
Shamil [Sun, 12 Apr 2026 00:14:50 +0000 (03:14 +0300)] 
gh-142831: Fix use-after-free in json encoder during re-entrant mutation (gh-142851)

Hold strong references to borrowed items unconditionally (not only in
free-threading builds) in _encoder_iterate_mapping_lock_held and
_encoder_iterate_fast_seq_lock_held.  User callbacks invoked during
encoding can mutate or clear the underlying container, invalidating
borrowed references.

The dict iteration path was already fixed by gh-145244.

Co-authored-by: Kumar Aditya <kumaraditya@python.org>
Co-authored-by: Gregory P. Smith <greg@krypto.org>
6 weeks agogh-146287: Fix signed/unsigned mismatch in _hashlib_hmac_digest_size (GH-148407)
Gregory P. Smith [Sun, 12 Apr 2026 00:02:56 +0000 (17:02 -0700)] 
gh-146287: Fix signed/unsigned mismatch in _hashlib_hmac_digest_size (GH-148407)

* gh-146287: use signed type for HMAC digest size to prevent unsigned wrapping

Change _hashlib_hmac_digest_size() return type from unsigned int to int
so that a hypothetical negative return from EVP_MD_size() is not
silently wrapped to a large positive value. Add an explicit check for
negative digest_size in the legacy OpenSSL path, and use SystemError
(not ValueError) since these conditions indicate internal invariant
violations. Also add debug-build asserts to EVP_get_block_size and
EVP_get_digest_size documenting that the hash context is always
initialized.

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
6 weeks agotests: use errno.EBADF instead of hardcoded number in _close_file() (GH-148345)
Artem Yarulin [Sun, 12 Apr 2026 00:01:18 +0000 (03:01 +0300)] 
tests: use errno.EBADF instead of hardcoded number in _close_file() (GH-148345)

test_interpreters: use errno.EBADF instead of hardcoded number in _close_file()

Replace the hardcoded `9` check in `Lib/test/test_interpreters/utils.py` with `errno.EBADF`.

Using `errno.EBADF` makes the helper portable across platforms with different errno numbering while preserving the intended behavior.

6 weeks agogh-145244: Fix use-after-free on borrowed dict key in json encoder (GH-145245)
Ramin Farajpour Cami [Sat, 11 Apr 2026 22:26:36 +0000 (01:56 +0330)] 
gh-145244: Fix use-after-free on borrowed dict key in json encoder (GH-145245)

In encoder_encode_key_value(), key is a borrowed reference from
PyDict_Next(). If the default callback mutates or clears the dict,
key becomes a dangling pointer. The error path then calls
_PyErr_FormatNote("%R", key) on freed memory.

Fix by holding strong references to key and value unconditionally
during encoding, not just in the free-threading build.

Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
6 weeks agogh-127012: `Traversable.read_text` now allows/solicits an `errors` parameter. (#148401)
Jason R. Coombs [Sat, 11 Apr 2026 22:25:20 +0000 (18:25 -0400)] 
gh-127012: `Traversable.read_text` now allows/solicits an `errors` parameter. (#148401)

Applies changes from importlib_resources 6.5.2.

6 weeks agogh-145105: Fix crash in csv.reader with re-entrant iterator (GH-145106)
Ramin Farajpour Cami [Sat, 11 Apr 2026 22:18:02 +0000 (01:48 +0330)] 
gh-145105: Fix crash in csv.reader with re-entrant iterator (GH-145106)

When a custom iterator calls next() on the same csv.reader from
within __next__, the inner iteration sets self->fields to NULL.
The outer iteration then crashes in parse_save_field() by passing
NULL to PyList_Append.

Add a guard after PyIter_Next() to detect that fields was set to
NULL by a re-entrant call, and raise csv.Error instead of crashing.

6 weeks agogh-145200: Fix EVP_MAC_CTX leak in hashlib HMAC on init failure (GH-145201)
Ramin Farajpour Cami [Sat, 11 Apr 2026 22:10:43 +0000 (01:40 +0330)] 
gh-145200: Fix EVP_MAC_CTX leak in hashlib HMAC on init failure (GH-145201)

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
6 weeks agogh-146302: make Py_IsInitialized() thread-safe and reflect true init completion ...
Gregory P. Smith [Sat, 11 Apr 2026 21:54:23 +0000 (14:54 -0700)] 
gh-146302: make Py_IsInitialized() thread-safe and reflect true init completion (GH-146303)

## Summary

- Move the `runtime->initialized = 1` store from before `site.py` import to the end of `init_interp_main()`, so `Py_IsInitialized()` only returns true after initialization has fully completed
- Access `initialized` and `core_initialized` through new inline accessors using acquire/release atomics, to also protect from data race undefined behavior
- `PySys_AddAuditHook()` now uses the accessor, so with the flag move it correctly skips audit hook invocation during all init phases (matching the documented "after runtime initialization" behavior) ... We could argue that running these earlier would be good even if the intent was never explicitly expressed, but that'd be its own issue.

## Motivation

`Py_IsInitialized()` returned 1 while `Py_InitializeEx()` was still running — specifically, before `site.py` had been imported. See https://github.com/PyO3/pyo3/issues/5900 where a second thread could acquire the GIL and start executing Python with an incomplete `sys.path` because `site.py` hadn't finished.

The flag was also a plain `int` with no atomic operations, making concurrent reads a C-standard data race, though unlikely to manifest.

## Regression test:

The added test properly fails on `main` with `ERROR: Py_IsInitialized() was true during site import`.

---

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
6 weeks agogh-94523: IDLE: Detect file if modified and prompt the user to refresh (GH-145625)
Shixian Li [Sat, 11 Apr 2026 21:36:59 +0000 (05:36 +0800)] 
gh-94523: IDLE: Detect file if modified and prompt the user to refresh (GH-145625)

6 weeks agogh-146264: Use static HACL deps for static module builds (GH-146265)
Ihar Hrachyshka [Sat, 11 Apr 2026 21:31:10 +0000 (17:31 -0400)] 
gh-146264: Use static HACL deps for static module builds (GH-146265)

6 weeks agogh-116738: Align bz2 unused_data getter to lzma implementation (GH-144351)
Alper [Sat, 11 Apr 2026 21:13:51 +0000 (14:13 -0700)] 
gh-116738: Align bz2 unused_data getter to lzma implementation (GH-144351)

Align bz2 unused_data getter to lzma

6 weeks agogh-137855: Improve import time of dataclasses by lazy importing `re` and `copy`...
Daniel Hollas [Sat, 11 Apr 2026 21:05:24 +0000 (22:05 +0100)] 
gh-137855: Improve import time of dataclasses by lazy importing  `re` and `copy` modules (#148379)

Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
6 weeks agogh-131798: do not watch immutable types in JIT (#148383)
Kumar Aditya [Sat, 11 Apr 2026 15:43:53 +0000 (21:13 +0530)] 
gh-131798: do not watch immutable types in JIT (#148383)

7 weeks agoDefault GHA permissions to `contents: read` (#148346)
Hugo van Kemenade [Sat, 11 Apr 2026 15:37:12 +0000 (18:37 +0300)] 
Default GHA permissions to `contents: read` (#148346)

7 weeks agogh-148320: document that `import sys.monitoring` raises `ModuleNotFoundError` (#148365)
Jonathan Dung [Sat, 11 Apr 2026 15:22:48 +0000 (23:22 +0800)] 
gh-148320: document that `import sys.monitoring` raises `ModuleNotFoundError` (#148365)

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
7 weeks agogh-148374: Fix a bug in `_Py_uop_sym_get_type` (GH-148375)
Sacul [Sat, 11 Apr 2026 15:03:13 +0000 (23:03 +0800)] 
gh-148374: Fix a bug in `_Py_uop_sym_get_type` (GH-148375)

7 weeks agogh-131798: Add `_IS_NONE` to the JIT optimizer (GH-148369)
Wulian233 [Sat, 11 Apr 2026 15:02:46 +0000 (23:02 +0800)] 
gh-131798: Add `_IS_NONE` to the JIT optimizer (GH-148369)

7 weeks agogh-148276: Optimize object creation and method calls in the JIT by resolving __init__...
Pieter Eendebak [Sat, 11 Apr 2026 14:22:42 +0000 (16:22 +0200)] 
gh-148276: Optimize object creation and method calls in the JIT by resolving __init__ at trace optimization time (GH-148277)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Ken Jin <kenjin4096@gmail.com>
7 weeks agogh-148171: Convert `CALL_BUILTIN_CLASS` to leave arguments on the stack (gh-148381)
Donghee Na [Sat, 11 Apr 2026 14:01:25 +0000 (23:01 +0900)] 
gh-148171: Convert `CALL_BUILTIN_CLASS` to leave arguments on the stack (gh-148381)

7 weeks agogh-148211: decompose `_POP_TWO/_POP_CALL(_ONE/_TWO)` in JIT (GH-148377)
Neko Asakura [Sat, 11 Apr 2026 12:46:56 +0000 (08:46 -0400)] 
gh-148211: decompose `_POP_TWO/_POP_CALL(_ONE/_TWO)` in JIT (GH-148377)

7 weeks agogh-148211: decompose `[_POP_TWO/_INSERT_2]_LOAD_CONST_INLINE_BORROW` in JIT (GH-148357)
Neko Asakura [Sat, 11 Apr 2026 10:27:51 +0000 (06:27 -0400)] 
gh-148211: decompose `[_POP_TWO/_INSERT_2]_LOAD_CONST_INLINE_BORROW` in JIT (GH-148357)

7 weeks agoFix format string mismatch for `uint64_t` in `_remote_debugging/threads.c` (#148360) 148367/head
Stan Ulbrych [Sat, 11 Apr 2026 08:10:02 +0000 (09:10 +0100)] 
Fix format string mismatch for `uint64_t` in `_remote_debugging/threads.c` (#148360)

7 weeks agogh-148171: Convert variadic argument opcodes to leave their arguments on the stack...
Sacul [Sat, 11 Apr 2026 05:27:24 +0000 (13:27 +0800)] 
gh-148171: Convert variadic argument opcodes to leave their arguments on the stack (`CALL_BUILTIN_FAST_WITH_KEYWORDS`) (#148366)

7 weeks agogh-148171: convert more variadic uops to leave input on stack in JIT (#148361)
Kumar Aditya [Sat, 11 Apr 2026 04:59:38 +0000 (10:29 +0530)] 
gh-148171: convert more variadic uops to leave input on stack in JIT (#148361)

7 weeks agogh-142518: add thread safety docs for set C-APIs (#146562)
Kumar Aditya [Fri, 10 Apr 2026 19:33:24 +0000 (01:03 +0530)] 
gh-142518: add thread safety docs for set C-APIs (#146562)

Co-authored-by: Victor Stinner <vstinner@python.org>
7 weeks agogh-139038: Credit more people for JIT in 3.15 (GH-148359)
Ken Jin [Fri, 10 Apr 2026 18:59:18 +0000 (02:59 +0800)] 
gh-139038: Credit more people for JIT in 3.15 (GH-148359)

7 weeks agogh-142518: annotate dict C-APIs for thread safety (#145875)
Lysandros Nikolaou [Fri, 10 Apr 2026 18:41:12 +0000 (20:41 +0200)] 
gh-142518: annotate dict C-APIs for thread safety (#145875)

7 weeks agogh-131798: split `_CALL_BUILTIN_CLASS` to smaller uops (#148094)
Kumar Aditya [Fri, 10 Apr 2026 17:28:20 +0000 (22:58 +0530)] 
gh-131798: split `_CALL_BUILTIN_CLASS` to smaller uops (#148094)

7 weeks agogh-148284: Block inlining of gigantic functions in ceval.c for clang 22 (GH-148334)
Ken Jin [Fri, 10 Apr 2026 16:52:23 +0000 (00:52 +0800)] 
gh-148284: Block inlining of gigantic functions in ceval.c for clang 22 (GH-148334)

Co-authored-by: Victor Stinner <vstinner@python.org>
7 weeks agogh-148337: Document `importlib.resources` security model (#148340)
Stan Ulbrych [Fri, 10 Apr 2026 16:02:22 +0000 (17:02 +0100)] 
gh-148337: Document `importlib.resources` security model (#148340)

7 weeks agoRemove dead links to `pkg_resources` in `importlib` docs (#148344)
Stan Ulbrych [Fri, 10 Apr 2026 16:02:00 +0000 (17:02 +0100)] 
Remove dead links to `pkg_resources` in `importlib` docs (#148344)

7 weeks agoFix mixed line endings with pre-commit (#148336)
Hugo van Kemenade [Fri, 10 Apr 2026 15:33:11 +0000 (18:33 +0300)] 
Fix mixed line endings with pre-commit (#148336)

Co-authored-by: Zachary Ware <zachary.ware@gmail.com>
7 weeks agogh-146211: Reject CR/LF in HTTP tunnel request headers (#146212)
Seth Larson [Fri, 10 Apr 2026 15:21:42 +0000 (10:21 -0500)] 
gh-146211: Reject CR/LF in HTTP tunnel request headers (#146212)

Co-authored-by: Illia Volochii <illia.volochii@gmail.com>
7 weeks agogh-148171: Convert CALL_BUILTIN_FAST to leave inputs on the stack for refcount elimin...
Ken Jin [Fri, 10 Apr 2026 15:11:18 +0000 (23:11 +0800)] 
gh-148171: Convert CALL_BUILTIN_FAST to leave inputs on the stack for refcount elimination in JIT (GH-148172)

7 weeks agogh-148211: decompose `[_POP_CALL_X/_SHUFFLE_2]_LOAD_CONST_INLINE_BORROW` in JIT ...
Neko Asakura [Fri, 10 Apr 2026 13:57:01 +0000 (21:57 +0800)] 
gh-148211: decompose `[_POP_CALL_X/_SHUFFLE_2]_LOAD_CONST_INLINE_BORROW` in JIT (GH-148313)

7 weeks agogh-148037: remove critical section from `PyCode_Addr2Line` (#148103)
Kumar Aditya [Fri, 10 Apr 2026 12:28:17 +0000 (17:58 +0530)] 
gh-148037: remove critical section from `PyCode_Addr2Line` (#148103)

7 weeks agogh-145831: email.quoprimime: `decode()` leaves stray `\r` when `eol='\r\n'` (#145832)
Stefan Zetzsche [Thu, 9 Apr 2026 20:21:49 +0000 (21:21 +0100)] 
gh-145831: email.quoprimime: `decode()` leaves stray `\r` when `eol='\r\n'` (#145832)

decoded[:-1] only strips one character, leaving a stray \r when eol
is two characters. Fix: decoded[:-len(eol)].

7 weeks agogh-148211: decompose `_INSERT_1_LOAD_CONST_INLINE(_BORROW)` in JIT (GH-148283)
Neko Asakura [Thu, 9 Apr 2026 16:45:39 +0000 (00:45 +0800)] 
gh-148211: decompose `_INSERT_1_LOAD_CONST_INLINE(_BORROW)` in JIT (GH-148283)

7 weeks agogh-148254: Use singular "sec" in timeit verbose output (#148290)
gaweng [Thu, 9 Apr 2026 14:37:19 +0000 (16:37 +0200)] 
gh-148254: Use singular "sec" in timeit verbose output (#148290)

7 weeks agogh-134584 : Optimize and eliminate redundant ref-counting for `MAKE_FUNCTION` in...
Sacul [Thu, 9 Apr 2026 14:22:53 +0000 (22:22 +0800)] 
gh-134584 : Optimize and eliminate redundant ref-counting for  `MAKE_FUNCTION` in the JIT (GH-144963)

7 weeks agogh-148091: clarify asyncio.Future.cancel(msg) behaviour (#148248)
Manoj K M [Thu, 9 Apr 2026 14:11:31 +0000 (19:41 +0530)] 
gh-148091: clarify asyncio.Future.cancel(msg) behaviour (#148248)

7 weeks agogh-106318: Add example for str.swapcase() method (#144575)
Adorilson Bezerra [Thu, 9 Apr 2026 13:33:31 +0000 (14:33 +0100)] 
gh-106318: Add example for str.swapcase() method (#144575)

7 weeks agogh-148274: properly handle result from `PyObject_VisitManagedDict` (#148275)
Max Bachmann [Thu, 9 Apr 2026 13:20:50 +0000 (15:20 +0200)] 
gh-148274: properly handle result from `PyObject_VisitManagedDict` (#148275)

7 weeks agogh-148250: Mention str subclasses in PyUnicodeWriter_WriteStr() doc (#148251)
Victor Stinner [Thu, 9 Apr 2026 11:53:10 +0000 (13:53 +0200)] 
gh-148250: Mention str subclasses in PyUnicodeWriter_WriteStr() doc (#148251)

7 weeks agogh-148241: Fix json serialization for str subclasses (#148249)
Victor Stinner [Thu, 9 Apr 2026 11:50:44 +0000 (13:50 +0200)] 
gh-148241: Fix json serialization for str subclasses (#148249)

Fix json serialization: no longer call str(obj) on str subclasses.

Replace PyUnicodeWriter_WriteStr() with PyUnicodeWriter_WriteASCII()
and private _PyUnicodeWriter_WriteStr().

7 weeks agogh-146646: Document that glob functions suppress OSError (#147996)
WYSIATI [Thu, 9 Apr 2026 10:44:24 +0000 (18:44 +0800)] 
gh-146646: Document that glob functions suppress OSError (#147996)

7 weeks agogh-148286: Fail when new UB is found by CI UBSan (#148168)
Stan Ulbrych [Thu, 9 Apr 2026 09:30:53 +0000 (10:30 +0100)] 
gh-148286: Fail when new UB is found by CI UBSan (#148168)

7 weeks agogh-131798: fold super method lookups in JIT (#148231)
Kumar Aditya [Thu, 9 Apr 2026 07:55:01 +0000 (13:25 +0530)] 
gh-131798: fold super method lookups in JIT (#148231)

7 weeks agoUpdate and expand the 'Fuzz Tests for CPython' README (#148270)
Stan Ulbrych [Thu, 9 Apr 2026 07:52:30 +0000 (08:52 +0100)] 
Update and expand the 'Fuzz Tests for CPython' README (#148270)

7 weeks agogh-148211: refactor bool to explicit uops in JIT (GH-148258)
Neko Asakura [Thu, 9 Apr 2026 05:20:31 +0000 (13:20 +0800)] 
gh-148211: refactor bool to explicit uops in JIT (GH-148258)

7 weeks agogh-148225: Validate profiling.sampling replay input (#148243)
Pablo Galindo Salgado [Wed, 8 Apr 2026 23:34:46 +0000 (00:34 +0100)] 
gh-148225: Validate profiling.sampling replay input (#148243)

7 weeks agogh-148105: _pyrepl: switch console refresh to structured rendered screens (#146584)
Pablo Galindo Salgado [Wed, 8 Apr 2026 22:42:26 +0000 (23:42 +0100)] 
gh-148105: _pyrepl: switch console refresh to structured rendered screens (#146584)

7 weeks agogh-70039: smtplib: store the server name in ._host in .connect() (#115259)
nmartensen [Wed, 8 Apr 2026 21:46:25 +0000 (23:46 +0200)] 
gh-70039: smtplib: store the server name in ._host in .connect() (#115259)

Original patch by gigaplastik, extended with a few more tests.

Addresses gh-70039 and bpo-25852: failure of starttls if connect is called explicitly.

7 weeks agogh-148257: move wave whatsnew to correct section (#148262)
Michiel W. Beijen [Wed, 8 Apr 2026 17:53:33 +0000 (19:53 +0200)] 
gh-148257: move wave whatsnew to correct section (#148262)

7 weeks agoMinor edit: Four space indent in example (#148264)
Raymond Hettinger [Wed, 8 Apr 2026 17:48:54 +0000 (12:48 -0500)] 
Minor edit: Four space indent in example (#148264)

7 weeks agoGH-115802: Remove no-plt for Linux AArch64 (#148238)
Diego Russo [Wed, 8 Apr 2026 15:34:04 +0000 (16:34 +0100)] 
GH-115802: Remove no-plt for Linux AArch64 (#148238)

7 weeks agogh-148210: fix incorrect `_BINARY_OP_SUBSCR_DICT` JIT optimization (GH-148213)
Kumar Aditya [Wed, 8 Apr 2026 15:23:20 +0000 (20:53 +0530)] 
gh-148210: fix incorrect `_BINARY_OP_SUBSCR_DICT` JIT optimization  (GH-148213)

7 weeks agogh-145866: Convert `_CALL_METHOD_DESCRIPTOR_NOARGS` to leave its inputs on the stack...
Sacul [Wed, 8 Apr 2026 15:21:37 +0000 (23:21 +0800)] 
gh-145866: Convert `_CALL_METHOD_DESCRIPTOR_NOARGS` to leave its inputs on the stack to be cleaned up by _POP_TOP (GH-148227)

7 weeks agogh-148211: decompose `_POP_TOP_LOAD_CONST_INLINE(_BORROW)` in JIT (GH-148230)
Neko Asakura [Wed, 8 Apr 2026 15:20:31 +0000 (23:20 +0800)] 
gh-148211: decompose `_POP_TOP_LOAD_CONST_INLINE(_BORROW)` in JIT (GH-148230)

7 weeks agogh-37883: Safely skip test_resource file size tests when limits are strict (GH-145579)
Shrey Naithani [Wed, 8 Apr 2026 14:06:05 +0000 (19:36 +0530)] 
gh-37883: Safely skip test_resource file size tests when limits are strict (GH-145579)

7 weeks agogh-146609: Add colour to `timeit` CLI output (#146610)
Hugo van Kemenade [Wed, 8 Apr 2026 13:18:53 +0000 (16:18 +0300)] 
gh-146609: Add colour to `timeit` CLI output (#146610)

Co-authored-by: Stan Ulbrych <stan@python.org>
7 weeks agogh-146292: Add colour to `http.server` logs (GH-146293)
Hugo van Kemenade [Wed, 8 Apr 2026 12:10:05 +0000 (15:10 +0300)] 
gh-146292: Add colour to `http.server` logs (GH-146293)

Co-authored-by: Brian Schubert <brianm.schubert@gmail.com>
7 weeks agogh-148235: remove duplicate uops `_LOAD_CONST_UNDER_INLINE(_BORROW)` in JIT (GH-148236)
Neko Asakura [Wed, 8 Apr 2026 08:22:59 +0000 (16:22 +0800)] 
gh-148235: remove duplicate uops `_LOAD_CONST_UNDER_INLINE(_BORROW)` in JIT (GH-148236)

7 weeks agogh-145921: Add "_DuringGC" functions for tp_traverse (GH-145925)
Petr Viktorin [Wed, 8 Apr 2026 07:15:11 +0000 (09:15 +0200)] 
gh-145921: Add "_DuringGC" functions for tp_traverse (GH-145925)

There are newly documented restrictions on tp_traverse:

    The traversal function must not have any side effects.
    It must not modify the reference counts of any Python
    objects nor create or destroy any Python objects.

* Add several functions that are guaranteed side-effect-free,
  with a _DuringGC suffix.
* Use these in ctypes
* Consolidate tp_traverse docs in gcsupport.rst, moving unique
  content from typeobj.rst there

Co-authored-by: Lysandros Nikolaou <lisandrosnik@gmail.com>
Co-authored-by: Victor Stinner <vstinner@python.org>