]> git.ipfire.org Git - thirdparty/Python/cpython.git/log
thirdparty/Python/cpython.git
12 hours agogh-145831: email.quoprimime: `decode()` leaves stray `\r` when `eol='\r\n'` (#145832) main
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)].

15 hours 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)

18 hours 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)

18 hours 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)

18 hours 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)

19 hours 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)

19 hours 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)

20 hours 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)

20 hours 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().

21 hours 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)

23 hours 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)

24 hours 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)

24 hours 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)

27 hours 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)

33 hours 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)

33 hours 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)

34 hours 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.

38 hours 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)

38 hours 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)

41 hours 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)

41 hours 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)

41 hours 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)

41 hours 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)

42 hours 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)

43 hours 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>
44 hours 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>
2 days 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)

2 days 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>
2 days agogh-146458: Fix REPL height and width tracking on resize (#146459)
Gabriel Volles Marinho [Tue, 7 Apr 2026 21:09:11 +0000 (18:09 -0300)] 
gh-146458: Fix REPL height and width tracking on resize (#146459)

Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Co-authored-by: Victor Stinner <vstinner@python.org>
2 days agogh-145846: Fix memory leak in _lsprof clearEntries() context chain (#145847)
Ramin Farajpour Cami [Tue, 7 Apr 2026 20:56:19 +0000 (00:26 +0330)] 
gh-145846: Fix memory leak in _lsprof clearEntries() context chain (#145847)

clearEntries() only freed the top currentProfilerContext but did not
walk the previous linked list. When clear() is called during active
profiling with nested calls, all contexts except the top one were
leaked. Fix by iterating the entire linked list, matching the existing
freelistProfilerContext cleanup pattern.

Co-authored-by: Victor Stinner <vstinner@python.org>
2 days agogh-142518: add thread safety annotations for tuple C-API (#148012)
Kumar Aditya [Tue, 7 Apr 2026 20:25:44 +0000 (01:55 +0530)] 
gh-142518: add thread safety annotations for tuple C-API (#148012)

2 days agoMerge branch 'main' of https://github.com/python/cpython
Hugo van Kemenade [Tue, 7 Apr 2026 17:34:01 +0000 (20:34 +0300)] 
Merge branch 'main' of https://github.com/python/cpython

2 days agoPost 3.15.0a8
Hugo van Kemenade [Tue, 7 Apr 2026 17:32:33 +0000 (20:32 +0300)] 
Post 3.15.0a8

2 days agogh-95004: specialize access to enums and fix scaling on free-threading (#148184)
Kumar Aditya [Tue, 7 Apr 2026 16:13:50 +0000 (21:43 +0530)] 
gh-95004: specialize access to enums and fix scaling on free-threading (#148184)

Co-authored-by: Ken Jin <kenjin4096@gmail.com>
2 days agogh-146333: Fix quadratic regex backtracking in configparser option parsing (GH-146399)
Joshua Swanson [Tue, 7 Apr 2026 14:10:34 +0000 (16:10 +0200)] 
gh-146333: Fix quadratic regex backtracking in configparser option parsing (GH-146399)

Use negative lookahead in option regex to prevent backtracking, and to avoid changing logic outside the regexes (since people could use the regex directly).

2 days agogh-148014: Accept a function name in -X presite option (#148015)
Victor Stinner [Tue, 7 Apr 2026 14:05:39 +0000 (16:05 +0200)] 
gh-148014: Accept a function name in -X presite option (#148015)

2 days agogh-146547: Use lazy imports in ctypes (GH-146548)
Jonathan Dung [Tue, 7 Apr 2026 13:26:53 +0000 (21:26 +0800)] 
gh-146547: Use lazy imports in ctypes (GH-146548)

2 days agogh-130273: Fix traceback color output with unicode characters (GH-142529)
grayjk [Tue, 7 Apr 2026 13:05:23 +0000 (09:05 -0400)] 
gh-130273: Fix traceback color output with unicode characters (GH-142529)

Account for the display width of Unicode characters so that colors and underlining in traceback output is correct.

Co-authored-by: Łukasz Langa <lukasz@langa.pl>
Co-authored-by: Victor Stinner <vstinner@python.org>
2 days agoPython 3.15.0a8 v3.15.0a8
Hugo van Kemenade [Tue, 7 Apr 2026 11:20:51 +0000 (14:20 +0300)] 
Python 3.15.0a8

2 days agogh-146121: Clarify security model of pkgutil.getdata; revert checks (GH-148197)
Petr Viktorin [Tue, 7 Apr 2026 09:39:50 +0000 (11:39 +0200)] 
gh-146121: Clarify security model of pkgutil.getdata; revert checks (GH-148197)

This reverts commit bcdf231946b1da8bdfbab4c05539bb0cc964a1c7,
and clarifies get_data's security model.

Co-authored-by: Stan Ulbrych <stan@python.org>
2 days agoGH-145762: Fix test_ci_fuzz_stdlib for source archive builds (#145778)
Chris Eibl [Tue, 7 Apr 2026 09:02:15 +0000 (11:02 +0200)] 
GH-145762: Fix test_ci_fuzz_stdlib for source archive builds (#145778)

Co-authored-by: Stan Ulbrych <stan@ulbrych.org>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
3 days agogh-101178: Fix UB in `binascii.b2a_ascii85` (#148166)
Stan Ulbrych [Tue, 7 Apr 2026 07:44:03 +0000 (08:44 +0100)] 
gh-101178: Fix UB in `binascii.b2a_ascii85` (#148166)

3 days agogh-146636: abi3t: Define Py_GIL_DISABLED but do not use it (GH-148142)
Petr Viktorin [Tue, 7 Apr 2026 07:06:17 +0000 (09:06 +0200)] 
gh-146636: abi3t: Define Py_GIL_DISABLED but do not use it (GH-148142)

When compiling for abi3t, define Py_GIL_DISABLED, so that users who
check it to enable additional locking aren't broken.

But also avoid using Py_GIL_DISABLED in Python headers themselves
-- abi3 and abi3t ought to be the same except
the _Py_OPAQUE_PYOBJECT differences.

A check for this is coming in a later PR.
It will require rewriting some preprocessor conditions, some of these
changes are included in this PR.
For _Py_IsOwnedByCurrentThread & supporting functions
I opted to move them to a cpython/ header, as they're rather self-contained.

3 days agogh-144503: Pass sys.argv to forkserver as real argv elements (GH-148194)
Gregory P. Smith [Tue, 7 Apr 2026 05:41:02 +0000 (22:41 -0700)] 
gh-144503: Pass sys.argv to forkserver as real argv elements (GH-148194)

Avoid embedding the parent's sys.argv into the forkserver -c command
string via repr().  When sys.argv is large (e.g. thousands of file
paths from a pre-commit hook), the resulting single argument could
exceed the OS per-argument length limit (MAX_ARG_STRLEN on Linux,
typically 128 KiB), causing posix_spawn to fail and the parent to
observe a BrokenPipeError.

Instead, append the argv entries as separate command-line arguments
after -c; the forkserver child reads them back as sys.argv[1:].  This
cannot exceed any limit the parent itself did not already satisfy.

Regression introduced by gh-143706 / 298d5440eb8.

3 days agoGH-146128: Remove the buggy AArch64 "33rx" relocation (#146263)
Brandt Bucher [Tue, 7 Apr 2026 04:52:59 +0000 (21:52 -0700)] 
GH-146128: Remove the buggy AArch64 "33rx" relocation (#146263)

3 days agogh-112632: Add optional keyword-only argument `expand` to `pprint` (#136964)
Semyon Moroz [Tue, 7 Apr 2026 04:42:54 +0000 (08:42 +0400)] 
gh-112632: Add optional keyword-only argument `expand` to `pprint` (#136964)

Co-authored-by: stodoran <stefan.todoran@uipath.com>
Co-authored-by: StefanTodoran <stefan.alex4@gmail.com>
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
3 days agoNote out-of-date obmalloc comments (#148149)
Tim Peters [Tue, 7 Apr 2026 04:08:47 +0000 (23:08 -0500)] 
Note out-of-date obmalloc comments (#148149)

Vladimir's original overviews, from 1998, are still good, but going
on 30 years later details have changed. Note that, but rather try
to keep up with moving targets in a different file, point to
sys._debugmallocstats() as the sure way to discover precise current
details.

No code changes, just added a block comment.

Co-authored-by: Bartosz Sławecki <bartosz@ilikepython.com>
3 days agogh-145844: Update WASI SDK from 30 to 32 (#145859)
Mazin Sharaf [Mon, 6 Apr 2026 23:48:38 +0000 (09:48 +1000)] 
gh-145844: Update WASI SDK from 30 to 32 (#145859)

Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Co-authored-by: Brett Cannon <brett@python.org>
3 days agogh-73613: clarify padding= docs in for base64 & binascii modules (GH-148183)
Gregory P. Smith [Mon, 6 Apr 2026 23:45:13 +0000 (16:45 -0700)] 
gh-73613: clarify padding= docs in for base64 & binascii modules (GH-148183)

Based on mayeut's comment in https://github.com/python/cpython/pull/147974#discussion_r3038498019.

3 days agogh-148110: Resolve lazy import filter names for relative imports (#148111)
Pablo Galindo Salgado [Mon, 6 Apr 2026 21:29:02 +0000 (22:29 +0100)] 
gh-148110: Resolve lazy import filter names for relative imports (#148111)

3 days agogh-137586: Open external osascript program with absolute path (GH-137584)
Fionn [Mon, 6 Apr 2026 16:42:10 +0000 (00:42 +0800)] 
gh-137586: Open external osascript program with absolute path (GH-137584)

Open web browser with absolute path

On macOS, web browsers are opened via popen calling osascript. However,
if a user has a colliding osascript executable earlier in their PATH,
this may fail or cause unwanted behaviour.

Depending on one's environment or level of paranoia, this may be considered a security vulnerability.

Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
3 days agogh-148072: Cache pickle.dumps/loads per interpreter in XIData (GH-148125)
Junya Fukuda [Mon, 6 Apr 2026 15:37:02 +0000 (00:37 +0900)] 
gh-148072: Cache pickle.dumps/loads per interpreter in XIData (GH-148125)

Store references to pickle.dumps and pickle.loads in _PyXI_state_t
so they are looked up only once per interpreter lifetime, avoiding
repeated PyImport_ImportModuleAttrString calls on every cross-interpreter
data transfer via pickle fallback.

Benchmarks show 1.7x-3.3x speedup for InterpreterPoolExecutor
when transferring mutable types (list, dict) through XIData.

3 days agogh-130472: Remove readline-only hacks from PyREPL completions (#148161)
Pablo Galindo Salgado [Mon, 6 Apr 2026 14:57:25 +0000 (15:57 +0100)] 
gh-130472: Remove readline-only hacks from PyREPL completions (#148161)

PyREPL was still carrying over two readline-specific tricks from the
fancy completer: a synthetic CSI prefix to influence sorting and a fake
blank completion entry to suppress readline's prefix insertion. Those
workarounds are not appropriate in PyREPL because the reader already
owns completion ordering and menu rendering, so the fake entries leaked
into the UI as real terminal attributes and empty menu cells.

Sort completion candidates in ReadlineAlikeReader by their visible text
with stripcolor(), and let the fancy completer return only real matches.
That keeps colored completions stable without emitting bogus escape
sequences, removes the empty completion slot, and adds regression tests
for both the low-level completer output and the reader integration.

3 days agogh-140279: Stale workflow needs 'actions: write' to update its own cache (#148165)
Hugo van Kemenade [Mon, 6 Apr 2026 13:07:15 +0000 (16:07 +0300)] 
gh-140279: Stale workflow needs 'actions: write' to update its own cache (#148165)

3 days agogh-100239: Propagate type info through _BINARY_OP_EXTEND in tier 2 (GH-148146)
Pieter Eendebak [Mon, 6 Apr 2026 12:52:42 +0000 (14:52 +0200)] 
gh-100239: Propagate type info through _BINARY_OP_EXTEND in tier 2 (GH-148146)

3 days agoAdd Stan to docs config reviewers (#148164)
Stan Ulbrych [Mon, 6 Apr 2026 12:47:44 +0000 (13:47 +0100)] 
Add Stan to docs config reviewers (#148164)

3 days agogh-148119: Refactor `get_type_attr_as_size` to improve error handling in `structseq...
Wulian233 [Mon, 6 Apr 2026 12:11:30 +0000 (20:11 +0800)] 
gh-148119: Refactor `get_type_attr_as_size` to improve error handling in `structseq.c` (#148120)

3 days ago gh-148157: Check for `_PyPegen_add_type_comment_to_arg` fail in `_PyPegen_name_defau...
Stan Ulbrych [Mon, 6 Apr 2026 11:56:36 +0000 (12:56 +0100)] 
 gh-148157: Check for `_PyPegen_add_type_comment_to_arg` fail in `_PyPegen_name_default_pair` (#148158)

3 days agoDocs: Update "Installing Python modules" (#146249)
Hugo van Kemenade [Mon, 6 Apr 2026 11:21:59 +0000 (14:21 +0300)] 
Docs: Update "Installing Python modules" (#146249)

3 days agogh-148153: Do not use assert for parameter validation in base64 (GH-148154)
Serhiy Storchaka [Mon, 6 Apr 2026 10:47:27 +0000 (13:47 +0300)] 
gh-148153: Do not use assert for parameter validation in base64 (GH-148154)

base64.b32encode() now always raises ValueError instead of
AssertionError for the value of map01 with invalid length.

4 days agogh-144418: Increase Android testbed emulator RAM to 4 GB (#148054)
Malcolm Smith [Mon, 6 Apr 2026 05:48:00 +0000 (06:48 +0100)] 
gh-144418: Increase Android testbed emulator RAM to 4 GB (#148054)

Pre-create the Android emulator image so that the the configuration can be
modified to use 4GB of RAM.

4 days agogh-148144: Initialize visited on copied interpreter frames (#148143)
Pablo Galindo Salgado [Sun, 5 Apr 2026 23:23:07 +0000 (00:23 +0100)] 
gh-148144: Initialize visited on copied interpreter frames (#148143)

_PyFrame_Copy() copied interpreter frames into generator and
frame-object storage without initializing the visited byte. Incremental
GC later reads frame->visited in mark_stacks() on non-start passes, so
copied frames could expose an uninitialized value once they became live
on a thread stack again.

Reset visited when copying a frame so copied frames start with defined
GC bookkeeping state. Preserve lltrace in Py_DEBUG builds.

4 days agogh-145098: Use `macos-15-intel` instead of unstable `macos-26-intel` in `{jit,tail...
Stan Ulbrych [Sun, 5 Apr 2026 19:23:43 +0000 (20:23 +0100)] 
gh-145098: Use `macos-15-intel` instead of unstable `macos-26-intel` in `{jit,tail-call}.yml` (#148126)

Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
4 days agogh-140870: PyREPL auto-complete module attributes in import statements (#140871)
Loïc Simon [Sun, 5 Apr 2026 19:10:59 +0000 (21:10 +0200)] 
gh-140870: PyREPL auto-complete module attributes in import statements  (#140871)

Co-authored-by: Pablo Galindo Salgado <pablogsal@gmail.com>
4 days agogh-69605: Add math.integer to PyREPL module completer hardcoded list (#144811)
Loïc Simon [Sun, 5 Apr 2026 18:31:19 +0000 (20:31 +0200)] 
gh-69605: Add math.integer to PyREPL module completer hardcoded list (#144811)

4 days agoSilence `unused-variable` warnings in `optimizer_cases.c.h` (#148127)
Stan Ulbrych [Sun, 5 Apr 2026 18:22:10 +0000 (19:22 +0100)] 
Silence `unused-variable` warnings in `optimizer_cases.c.h` (#148127)

4 days agogh-94632: document the subprocess need for extra_groups=() with user= (GH-148129)
Gregory P. Smith [Sun, 5 Apr 2026 18:07:07 +0000 (11:07 -0700)] 
gh-94632: document the subprocess need for extra_groups=() with user= (GH-148129)

4 days agogh-144319: Fix huge page leak in datastack chunk allocator (#147963)
Pablo Galindo Salgado [Sun, 5 Apr 2026 15:29:38 +0000 (16:29 +0100)] 
gh-144319: Fix huge page leak in datastack chunk allocator (#147963)

Fix huge page leak in datastack chunk allocator

The original fix rounded datastack chunk allocations in pystate.c so that
_PyObject_VirtualFree() would receive the full huge page mapping size.

Change direction and move that logic into _PyObject_VirtualAlloc() and
_PyObject_VirtualFree() instead. The key invariant is that munmap() must see
the full mapped size, so alloc and free now apply the same platform-specific
rounding in the allocator layer.

This keeps _PyStackChunk bookkeeping in requested-size units, avoids a
hardcoded 2 MB assumption, and also covers other small virtual-memory users
such as the JIT tracer state allocation in optimizer.c.

4 days agoGH-139922: add interpreter types to InternalDocs/interpreter.md (GH-148035)
Chris Eibl [Sun, 5 Apr 2026 15:25:14 +0000 (17:25 +0200)] 
GH-139922: add interpreter types to InternalDocs/interpreter.md (GH-148035)

4 days agogh-130472: Integrate fancycompleter with the new repl, to get colored tab completions...
Antonio Cuni [Sun, 5 Apr 2026 14:23:07 +0000 (16:23 +0200)] 
gh-130472: Integrate fancycompleter with the new repl, to get colored tab completions (#130473)

Co-authored-by: Pablo Galindo <pablogsal@gmail.com>
5 days agoAdd `permissions: {}` to all reusable workflows (#148114)
Ezio Melotti [Sat, 4 Apr 2026 22:31:54 +0000 (06:31 +0800)] 
Add `permissions: {}` to all reusable workflows (#148114)

Add permissions: {} to all reusable workflows

5 days agogh-142927: Show self time in flamegraph tooltip (#147706)
ivonastojanovic [Sat, 4 Apr 2026 19:55:05 +0000 (20:55 +0100)] 
gh-142927: Show self time in flamegraph tooltip (#147706)

We already show self time in differential flamegraphs, but it should
be included in regular flamegraphs as well. Display the time spent
in the function body excluding callees, not just the total inclusive
time.

5 days agogh-145000: Find correct merge base in `reusable-check-html-ids.yml` workflow (#147975)
Stan Ulbrych [Sat, 4 Apr 2026 19:47:11 +0000 (20:47 +0100)] 
gh-145000: Find correct merge base in `reusable-check-html-ids.yml` workflow (#147975)

5 days agogh-73613: Support Base32 and Base64 without padding (GH-147974)
Serhiy Storchaka [Sat, 4 Apr 2026 18:26:16 +0000 (21:26 +0300)] 
gh-73613: Support Base32 and Base64 without padding (GH-147974)

Add the padded parameter in functions related to Base32 and Base64 codecs
in the binascii and base64 modules.  In the encoding functions it controls
whether the pad character can be added in the output, in the decoding
functions it controls whether padding is required in input.

Padding of input no longer required in base64.urlsafe_b64decode() by default.

5 days agoDocs: Standardize documentation authors (#148102)
Stan Ulbrych [Sat, 4 Apr 2026 18:02:16 +0000 (19:02 +0100)] 
Docs: Standardize documentation authors (#148102)

5 days agogh-146527: Heap-allocate gc_stats to avoid bloating PyInterpreterState (#148057)
Pablo Galindo Salgado [Sat, 4 Apr 2026 17:42:30 +0000 (18:42 +0100)] 
gh-146527: Heap-allocate gc_stats to avoid bloating PyInterpreterState (#148057)

The gc_stats struct contains ring buffers of gc_generation_stats
entries (11 young + 3×2 old on default builds). Embedding it inline
in _gc_runtime_state, which is itself inline in PyInterpreterState,
pushed fields like _gil.locked and threads.head to offsets beyond
what out-of-process profilers and debuggers can reasonably read in
a single buffer (e.g. offset 9384 for _gil.locked vs an 8 KiB read
buffer).

Heap-allocate generation_stats via PyMem_RawCalloc in _PyGC_Init and
free it in _PyGC_Fini. This shrinks PyInterpreterState by ~1.6 KiB
and keeps the GIL, thread-list, and other frequently-inspected fields
at stable, low offsets.

5 days agoDocs: Fix a typo in the 'Non-ASCII characters in names' section (#148043)
Stan Ulbrych [Sat, 4 Apr 2026 16:45:52 +0000 (17:45 +0100)] 
Docs: Fix a typo in the 'Non-ASCII characters in names' section (#148043)

5 days agoRegex HOWTO: invalid string literals result in `SyntaxWarning` (#148092)
Hugo van Kemenade [Sat, 4 Apr 2026 16:13:17 +0000 (19:13 +0300)] 
Regex HOWTO: invalid string literals result in `SyntaxWarning` (#148092)

Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
5 days agogh-148083: Prevent constant folding when lhs is container types (gh-148090)
Donghee Na [Sat, 4 Apr 2026 15:40:12 +0000 (00:40 +0900)] 
gh-148083: Prevent constant folding when lhs is container types (gh-148090)

5 days agogh-148074: Fix `typeobject.c` missing error return (#148075)
Wulian233 [Sat, 4 Apr 2026 15:34:55 +0000 (23:34 +0800)] 
gh-148074: Fix `typeobject.c` missing error return (#148075)

5 days agogh-148083: Constant-fold _CONTAINS_OP_SET for frozenset (gh-148084)
Donghee Na [Sat, 4 Apr 2026 12:32:12 +0000 (21:32 +0900)] 
gh-148083: Constant-fold _CONTAINS_OP_SET for frozenset (gh-148084)

5 days agogh-145883: Fix two heap-buffer-overflows in `_zoneinfo` (#145885)
Stan Ulbrych [Sat, 4 Apr 2026 12:29:17 +0000 (13:29 +0100)] 
gh-145883: Fix two heap-buffer-overflows in `_zoneinfo` (#145885)

5 days agogh-146073: Revert "gh-146073: Add fitness/exit quality mechanism for JIT trace fronte...
Ken Jin [Sat, 4 Apr 2026 11:56:40 +0000 (19:56 +0800)] 
gh-146073: Revert "gh-146073: Add fitness/exit quality mechanism for JIT trace frontend (GH-147966)" (#148082)

This reverts commit 198b04b75f7425c401ffe40a748688a89d28dd59.

5 days agogh-148067: Fix typo in asyncio event loop docs: 'signals' -> 'signal' (#148073)
TT [Sat, 4 Apr 2026 10:32:58 +0000 (12:32 +0200)] 
gh-148067: Fix typo in asyncio event loop docs: 'signals' -> 'signal' (#148073)

5 days agogh-148078: Fix uses of sym_is_not_null in JIT optimizer (GH-148079)
Ken Jin [Sat, 4 Apr 2026 10:16:23 +0000 (18:16 +0800)] 
gh-148078: Fix uses of sym_is_not_null in JIT optimizer (GH-148079)

5 days agogh-131798: split recursion check to _CHECK_RECURSION_LIMIT and combine checks (GH...
Kumar Aditya [Sat, 4 Apr 2026 09:23:03 +0000 (14:53 +0530)] 
gh-131798: split recursion check to _CHECK_RECURSION_LIMIT and combine checks (GH-148070)

6 days agogh-148016: Improve "Leading padding not allowed" error in Base32 and Base64 decoders...
Serhiy Storchaka [Sat, 4 Apr 2026 08:37:14 +0000 (11:37 +0300)] 
gh-148016: Improve "Leading padding not allowed" error in Base32 and Base64 decoders (GH-148017)

It is now raised instead of "Excess padding not allowed" if all characters
preceding "=" were ignored.

6 days agogh-148029: Fix error message for invalid number of Base32 characters (GH-148030)
Serhiy Storchaka [Sat, 4 Apr 2026 08:07:19 +0000 (11:07 +0300)] 
gh-148029: Fix error message for invalid number of Base32 characters (GH-148030)

Do not count ignored non-alphabet characters.

6 days agogh-131798: relax GUARD_CALLABLE checks for self type checks (#148069)
Kumar Aditya [Sat, 4 Apr 2026 07:19:23 +0000 (12:49 +0530)] 
gh-131798: relax GUARD_CALLABLE checks for self type checks (#148069)

6 days agogh-131798: JIT inline function addresses of builtin methods (#146906)
Kumar Aditya [Sat, 4 Apr 2026 03:42:13 +0000 (09:12 +0530)] 
gh-131798: JIT inline function addresses of builtin methods  (#146906)

6 days agogh-146450: Normalise feature set of Android build script with other platform build...
Russell Keith-Magee [Sat, 4 Apr 2026 03:42:04 +0000 (11:42 +0800)] 
gh-146450: Normalise feature set of Android build script with other platform build scripts (#146451)

Allows for cleaning a subset of targets, customization of the download cache and
cross-build directories, and modifies the build command to allow 'all', 'build'
and 'hosts' targets.

6 days agogh-146541: Allow building the Android testbed for 32-bit targets (#146542)
Robert Kirkman [Sat, 4 Apr 2026 03:27:27 +0000 (22:27 -0500)] 
gh-146541: Allow building the Android testbed for 32-bit targets (#146542)

Allows building the Android testbed for 32-bit targets, adding the target triplets
`arm-linux-androideabi` and `i686-linux-android`.

Co-authored-by: Malcolm Smith <smith@chaquo.com>
6 days agoGH-146210: Fix building the jit stencils on Windows when the interpreter is built...
Chris Eibl [Fri, 3 Apr 2026 19:42:13 +0000 (21:42 +0200)] 
GH-146210: Fix building the jit stencils on Windows when the interpreter is built with a different clang version (#146338)

Co-authored-by: Savannah Ostrowski <savannah@python.org>
6 days agogh-126676: Expand argparse docs for type=bool with warning and alternatives (#146435)
Joshua Swanson [Fri, 3 Apr 2026 18:07:03 +0000 (20:07 +0200)] 
gh-126676: Expand argparse docs for type=bool with warning and alternatives (#146435)

Co-authored-by: joshuaswanson <joshuaswanson@users.noreply.github.com>
Co-authored-by: Savannah Ostrowski <savannah@python.org>
6 days agogh-145098: Use `macos-15-intel` instead of unstable `macos-26-intel` (#148038)
Hugo van Kemenade [Fri, 3 Apr 2026 16:23:29 +0000 (19:23 +0300)] 
gh-145098: Use `macos-15-intel` instead of unstable `macos-26-intel` (#148038)

6 days agogh-146073: Add fitness/exit quality mechanism for JIT trace frontend (GH-147966)
Hai Zhu [Fri, 3 Apr 2026 15:54:30 +0000 (23:54 +0800)] 
gh-146073: Add fitness/exit quality mechanism for JIT trace frontend (GH-147966)

6 days agogh-143930: Tweak the exception message and increase test coverage (GH-146476)
Łukasz Langa [Fri, 3 Apr 2026 15:31:25 +0000 (17:31 +0200)] 
gh-143930: Tweak the exception message and increase test coverage (GH-146476)

6 days agogh-146640: Optimize int operations by mutating uniquely-referenced operands in place...
Pieter Eendebak [Fri, 3 Apr 2026 15:23:04 +0000 (17:23 +0200)] 
gh-146640: Optimize int operations by mutating uniquely-referenced operands in place (JIT only) (GH-146641)

6 days agogh-125895: Fix static asset location for `sphinx-notfound-page` (#147984)
Stan Ulbrych [Fri, 3 Apr 2026 15:19:30 +0000 (16:19 +0100)] 
gh-125895: Fix static asset location for `sphinx-notfound-page` (#147984)

6 days agogh-148022: Add threat model to remote debugging docs (#148024)
Pablo Galindo Salgado [Fri, 3 Apr 2026 14:20:50 +0000 (15:20 +0100)] 
gh-148022: Add threat model to remote debugging docs (#148024)

The remote debugging protocol has been generating spurious
vulnerability reports from automated scanners that pattern-match
on "remote access" and "memory operations" without understanding
the privilege model. This section documents the security boundaries
so reporters can self-triage before submitting.

The threat model clarifies three points: attaching requires the
same OS-level privileges as GDB (ptrace, task_for_pid, or
SeDebugPrivilege), crashes caused by reading corrupted target
process memory are not security issues, and a compromised target
process is out of scope. A subsection explains when operators
should use PYTHON_DISABLE_REMOTE_DEBUG for defence-in-depth.