Miss Islington (bot)
80d7626c74
[3.15] gh-150902: Optimize PyCriticalSection2 to skip locking the same locks held by the current CS2 (gh-151554)
...
This mimics an optimization already present for the single-mutex critical section.
(cherry picked from commit c2ca7724af )
Co-authored-by: Daniele Parmeggiani <8658291+dpdani@users.noreply.github.com>
2026-06-19 09:52:07 -04:00
Miss Islington (bot)
3135ab811d
[3.15] gh-151436: Fix missing tstate->last_profiled_frame updates (GH-151437) ( #151612 )
...
gh-151436: Fix missing `tstate->last_profiled_frame` updates (GH-151437)
(cherry picked from commit a8d74c062f )
Co-authored-by: Maurycy Pawłowski-Wieroński <maurycy@maurycy.com>
2026-06-19 10:24:53 +02:00
Pablo Galindo Salgado
83e26a43a7
[3.15] gh-149321: Remove lazy_imports=none startup mode (GH-149389) ( #150129 )
2026-06-08 22:55:57 +00:00
Miss Islington (bot)
85e75a73d4
[3.15] gh-150907: Fix dynamic_annotations.h when built with C++ and Valgrind (GH-150914) ( #150962 )
...
gh-150907: Fix dynamic_annotations.h when built with C++ and Valgrind (GH-150914)
Add extern "C++" scope for the C++ template.
Fix test_cppext when Python is built with --with-valgrind.
(cherry picked from commit c32501261a )
Co-authored-by: Victor Stinner <vstinner@python.org>
2026-06-05 12:41:19 +00:00
Hugo van Kemenade
a138769594
Post 3.15.0b2
2026-06-02 20:34:33 +03:00
Hugo van Kemenade
94a64bbc6c
Python 3.15.0b2
2026-06-02 18:28:41 +03:00
Miss Islington (bot)
b17bcfdf7e
[3.15] gh-150766: export _PyGC_VisitFrameStack and _PyGC_VisitStackRef functions (GH-150767) ( #150787 )
...
gh-150766: export `_PyGC_VisitFrameStack` and `_PyGC_VisitStackRef` functions (GH-150767)
(cherry picked from commit df34a2f712 )
Co-authored-by: Kumar Aditya <kumaraditya@python.org>
2026-06-02 13:36:52 +00:00
Miss Islington (bot)
3573b3b1ec
[3.15] gh-149018: Use XML_SetHashSalt16Bytes in pyexpat/_elementtree when possible ( #149645 )
...
(cherry picked from commit 24b8f12544 )
Co-authored-by: Stan Ulbrych <stan@python.org>
2026-05-24 14:36:30 +01:00
Miss Islington (bot)
22c994cc92
[3.15] gh-149335: Avoid JIT trace buffer asserts with overhead above FITNESS_INITIAL (GH-149633) ( #150245 )
...
gh-149335: Avoid JIT trace buffer asserts with overhead above `FITNESS_INITIAL` (GH-149633)
(cherry picked from commit 441af3a934 )
Co-authored-by: Hai Zhu <haiizhu@outlook.com>
2026-05-24 12:48:58 +05:30
Miss Islington (bot)
f5231469b5
[3.15] gh-148829: Make sentinels' repr and module customizable (GH-149654) ( #150092 )
...
Implementation of python/peps#4968 .
(cherry picked from commit 08218030a5 )
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2026-05-22 07:44:34 -07:00
Dino Viehland
6847f4bc60
[3.15] gh-150052: Resolve un-loaded lazily loaded submodules via module.__getattr__ instead of publishing lazy values ( #150055 )
2026-05-19 21:23:30 +00:00
Dino Viehland
94c8bac2cd
[3.15] gh-148587: Make sys.lazy_modules match PEP and keep internal lazy submodules tra… ( #150014 )
...
Make sys.lazy_modules match PEP and keep internal lazy submodules tracking internal
2026-05-18 17:53:54 -07:00
Miss Islington (bot)
63a4007d25
[3.15] gh-149685: Use the _Py prefix for private C macros (GH-149686) (GH-149790)
...
(cherry picked from commit 125f26358a )
Co-authored-by: Petr Viktorin <encukou@gmail.com>
2026-05-13 23:29:08 +02:00
Miss Islington (bot)
a5f77a13fd
[3.15] gh-148829: Add PySentinel_CheckExact() (GH-149725) ( #149766 )
...
gh-148829: Add PySentinel_CheckExact() (GH-149725)
(cherry picked from commit 94df62542c )
Co-authored-by: scoder <stefan_ml@behnel.de>
2026-05-13 10:39:38 +00:00
Sam Gross
8297d50a63
[3.15] gh-145235: Make dict watcher API thread-safe for free-threaded builds (gh-145233) ( #149690 )
...
In free-threaded builds, concurrent calls to PyDict_AddWatcher, PyDict_ClearWatcher, PyDict_Watch, and PyDict_Unwatch can race on the shared callback array and the per-dict watcher tags. This change adds a mutex to serialize watcher registration and removal, atomic operations for tag updates, and atomic acquire/release synchronization for callback dispatch in _PyDict_SendEvent.
(cherry picked from commit 8a4895985f )
Co-authored-by: Alper <alperyoney@fb.com>
2026-05-11 14:23:39 -04:00
Miss Islington (bot)
5cb915da44
[3.15] gh-149481: skip FOR_ITER inline specialization for Python __next__ (GH-149491) ( #149523 )
...
gh-149481: skip `FOR_ITER` inline specialization for Python `__next__` (GH-149491)
(cherry picked from commit 49918f5b0c )
Co-authored-by: Neko Asakura <neko.asakura@outlook.com>
Co-authored-by: Savannah Ostrowski <savannah@python.org>
Co-authored-by: Stan Ulbrych <stan@python.org>
2026-05-07 19:08:12 -07:00
Hugo van Kemenade
e81025e6d2
Post 3.15.0b1
2026-05-07 19:01:11 +03:00
Hugo van Kemenade
f31a89bb90
Python 3.15.0b1
2026-05-07 16:26:31 +03:00
Neil Schemenauer
13188dbf85
gh-148937: revert process RSS based GC deferral ( #149475 )
2026-05-07 14:32:14 +03:00
Peter Bierma
2b7c28a440
gh-149101: Implement PEP 788 (GH-149116)
...
Co-authored-by: Petr Viktorin <encukou@gmail.com>
Co-authored-by: Sam Gross <colesbury@gmail.com>
2026-05-06 17:39:30 -04:00
Alex Malyshev
646853df13
gh-145559: Add PyUnstable_DumpTraceback() and PyUnstable_DumpTracebackThreads() ( #148145 )
...
Co-authored-by: Petr Viktorin <encukou@gmail.com>
Co-authored-by: Victor Stinner <vstinner@python.org>
2026-05-06 15:01:12 +00:00
Mark Shannon
70bd1c2dd2
GH-143732: SEND specialization (GH-148963)
...
* SEND specialization. Adds 2 new specialized instructions:
* SEND_VIRTUAL: for sends to virtual iterators e.g lists and tuples
* SEND_ASYNC_GEN: for sends to async generators
Tweak FOR_ITER_VIRTUAL so that SEND_VIRTUAL and FOR_ITER_VIRTUAL use equivalent guards
2026-05-05 15:19:16 +01:00
Diego Russo
1e5d94274d
GH-126910: Add GNU backtrace support for unwinding JIT frames ( #149104 )
...
Co-authored-by: Pablo Galindo Salgado <pablogsal@gmail.com>
2026-05-05 09:29:07 +01:00
Petr Viktorin
508b49845d
gh-149044: Implement PEP 820 – PySlot: Unified slot system for the C API (GH-149055)
...
Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
2026-05-05 09:18:04 +02:00
Pablo Galindo Salgado
8c796782fc
gh-146462: Add dict introspection debug offsets ( #148633 )
2026-05-04 23:00:23 +00:00
Sergey Miryanov
e89568f0cb
GH-148726: Add heap_size to generational GC ( #149195 )
2026-05-04 22:14:45 +01:00
Steve Dower
10f950c9bb
gh-148690: Build Windows freethreaded binaries into separate directory and include python3t.dll on GIL-enabled (GH-149218)
...
Co-authored-by: Petr Viktorin <encukou@gmail.com>
2026-05-04 17:45:08 +01:00
Neko Asakura
9846407eaf
gh-143732: add specialization for FOR_ITER (GH-148745)
2026-05-04 17:29:10 +01:00
Victor Stinner
952784af47
gh-137030: Fix YIELD_VALUE bytecode assertion ( #149184 )
...
Co-authored-by: Mark Shannon <mark@hotpy.org>
2026-05-04 18:09:57 +02:00
Petr Viktorin
6ca5cdba18
gh-149225: Expose Py_CriticalSection in Stable ABI (GH-149227)
2026-05-04 17:32:17 +02:00
Victor Stinner
ce51c18818
gh-146063: Add PyObject_CallFinalizerFromDealloc() to the limited C API ( #146172 )
...
Co-authored-by: Petr Viktorin <encukou@gmail.com>
2026-05-04 15:37:45 +02:00
Kumar Aditya
5847931d11
gh-143732: allow dict subclasses to be specialized (GH-148128)
2026-05-04 09:39:03 +01:00
sobolevn
726a17e265
gh-149243: Check for recursion limits in CALL_ALLOC_AND_ENTER_INIT ( #149310 )
2026-05-03 13:26:05 +03:00
Neko Asakura
7c9ad27dd1
gh-148871: extend and improve LOAD_COMMON_CONSTANT (GH-148971)
2026-05-02 19:59:51 +01:00
Brian Schubert
bdedc4a20e
gh-116021: Deprecate support for instantiating abstract AST nodes ( #137865 )
...
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2026-05-02 09:50:06 -07:00
Sergey Miryanov
39f123c587
GH-146527: Add get_gc_stats function to _remote_debugging ( #148071 )
2026-05-02 15:04:18 +00:00
Neko Asakura
2ca6333065
gh-148380: remove all uses of _PyType_LookupByVersion in optimizer_bytecodes.c (GH-148394)
2026-05-02 15:45:38 +01:00
Pablo Galindo Salgado
efcac6f281
gh-149214: Fix non ascii characters in remote debugging ( #149228 )
2026-05-02 15:07:28 +01:00
Diego Russo
c7b7ca2cd5
GH-126910: Add gdb support for unwinding JIT frames ( #146071 )
...
Co-authored-by: Pablo Galindo Salgado <pablogsal@gmail.com>
2026-05-02 13:42:03 +00:00
petervanvugt
9668d260a1
gh-148850: Fix memory sanitizer false positive in os.getrandom (GH-148851)
...
Co-authored-by: Petr Viktorin <encukou@gmail.com>
2026-05-01 17:37:36 +02:00
Neko Asakura
0102c1d9b9
gh-149204: add _RROT_3 uop to reduce stack moves (GH-149205)
2026-05-01 12:35:31 +01:00
Petr Viktorin
fcd53b6872
gh-145497: Use same size of static_types array in all builds (GH-149139)
...
When someone adds a new type but doesn't increment
`_Py_MAX_MANAGED_STATIC_BUILTIN_TYPES` or
`_Py_MAX_MANAGED_STATIC_EXT_TYPES`, JIT tests fail,
because JIT builds define an extra type.
But the JIT tests don't necessarily run for the commit
that causes the failure.
As a workaround, use the same size for the array for all
builds, potentially with an empty spot.
2026-05-01 09:41:28 +02:00
Sergey Miryanov
1575a81bf2
GH-148726: Forward-port generational GC. (GH-148746)
...
The replaces the incremental GC with a forward port (from 3.13) of the generational GC.
Co-Authored-By: Neil Schemenauer <nas@arctrix.com>
Co-Authored-By: Zanie Blue <contact@zanie.dev>
Co-Authored-By: Sergey Miryanov <sergey.miryanov@gmail.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2026-04-30 12:19:13 -07:00
Victor Stinner
f0e90d78eb
gh-148829: Move sentinelobject.h to Include/cpython/ ( #149186 )
...
This C API is not part of the limited C API, so move it to the
CPython C API.
2026-04-30 16:57:29 +02:00
Eric Froemling
7686abe063
gh-149085: Add max_threads keyword to faulthandler.dump_traceback() (GH-149106)
...
Add a keyword-only `max_threads` argument to `dump_traceback()` and
`dump_traceback_later()`, defaulting to 100 to preserve existing
behavior. Allows server processes with many worker threads to dump
beyond the historical 100-thread cap (previously a hardcoded
`MAX_NTHREADS = 100` in `Python/traceback.c`).
The cap matters in practice: tstates are prepended to the
PyInterpreterState linked list, so the dump walks newest-first. With
more than 100 threads alive, the main thread (oldest, at the tail) is
silently elided from watchdog dumps -- exactly the thread that's
usually wanted.
The hardcoded value is moved to a new internal macro
`_Py_TRACEBACK_MAX_NTHREADS` in `pycore_traceback.h` so the in-tree
fatal-signal callers all reference one source of truth.
2026-04-30 09:27:57 -04:00
Jelle Zijlstra
d71e3bc5a0
gh-148829: bump number of static types ( #149121 )
2026-04-28 18:59:48 -07:00
Neko Asakura
2b6a13710f
gh-148211: decompose _SHUFFLE_3_LOAD_CONST_INLINE_BORROW in JIT (GH-148816)
2026-04-28 13:48:23 +01:00
Hai Zhu
be968c7210
gh-148571: [JIT] Preserve family-head recorder layouts for specialized opcode families (GH-148730)
...
* Records the same objects for each member of family before execution
* Records derived values when recording the trace
* This makes sure that specialization, or deoptimization, does not cause invalid values to be recorded
2026-04-28 13:41:16 +01:00
Jelle Zijlstra
29a92abb60
gh-148829: Implement PEP 661 ( #148831 )
...
Co-authored-by: Victorien <65306057+Viicos@users.noreply.github.com>
Co-authored-by: Pieter Eendebak <pieter.eendebak@gmail.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2026-04-27 19:28:30 -07:00
Mark Shannon
276f474c9a
GH-146073: Add fitness to executor dumps. (GH-148959)
2026-04-27 17:34:09 +01:00