]>
git.ipfire.org Git - thirdparty/Python/cpython.git/log
Guido van Rossum [Sat, 14 Mar 2026 18:28:49 +0000 (11:28 -0700)]
gh-123720: When closing an asyncio server, stop the handlers (#124689)
Stan Ulbrych [Sat, 14 Mar 2026 18:11:29 +0000 (18:11 +0000)]
Fix `fuzz_builtin_int` fuzzer reproducibility (#145890)
dependabot[bot] [Sat, 14 Mar 2026 16:30:26 +0000 (16:30 +0000)]
build(deps): bump the actions group with 4 updates (#145952)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Stan Ulbrych [Sat, 14 Mar 2026 16:00:15 +0000 (16:00 +0000)]
gh-137650: Group dependabot actions updates (#145947)
Sacul [Sat, 14 Mar 2026 12:00:18 +0000 (20:00 +0800)]
gh-134584: Eliminate redundant refcounting in JIT for `MATCH_CLASS` (GH-144821)
Bénédikt Tran [Sat, 14 Mar 2026 09:58:15 +0000 (10:58 +0100)]
gh-143636: fix a crash when calling ``__replace__`` on invalid `SimpleNamespace` instances (#143655)
Connor Gibson [Sat, 14 Mar 2026 09:19:00 +0000 (02:19 -0700)]
Docs: fix missing period in `Doc/library/stdtypes.rst` (#145935)
Konstantin Vlasov [Sat, 14 Mar 2026 05:37:30 +0000 (06:37 +0100)]
gh-145703: Fix `asyncio.BaseEventLoop` low clock resolution (#145706)
Victor Stinner [Fri, 13 Mar 2026 18:44:51 +0000 (19:44 +0100)]
gh-129813: Document that PyBytesWriter_GetData() cannot fail (#145900)
Document that PyBytesWriter_GetData() and PyBytesWriter_GetSize()
getter functions cannot fail
Petr Viktorin [Fri, 13 Mar 2026 17:51:23 +0000 (18:51 +0100)]
GH-60729: Revert "Add IEEE format wave audio support (GH-145384)" (GH-145928)
Revert "GH-60729: Add IEEE format wave audio support (GH-145384)"
This reverts commit
61f2a1a5993967ed4b97ba93a4477c37fe68cf59 for now;
as tests fail on big-endian machines.
Pieter Eendebak [Fri, 13 Mar 2026 15:42:19 +0000 (16:42 +0100)]
gh-145376: Fix GC tracking in `structseq.__replace__` (#145820)
Lysandros Nikolaou [Fri, 13 Mar 2026 13:53:01 +0000 (14:53 +0100)]
gh-142518: Document thread-safety guarantees of set objects (#145225)
Michiel W. Beijen [Fri, 13 Mar 2026 13:10:48 +0000 (14:10 +0100)]
GH-60729: Add IEEE format wave audio support (GH-145384)
Co-authored-by: Lionel Koenig <lionelk@google.com>
Jason Yalim, PhD [Fri, 13 Mar 2026 13:00:39 +0000 (06:00 -0700)]
gh-140715: Add %t and %n format codes support to strptime() (GH-144896)
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Furkan Onder [Fri, 13 Mar 2026 12:38:06 +0000 (21:38 +0900)]
gh-99631: Add shelve custom serialization to What's New in 3.15 (#145253)
VanshAgarwal24036 [Fri, 13 Mar 2026 12:15:26 +0000 (17:45 +0530)]
gh-145792: Fix incorrect alloca allocation size in traceback.c (#145814)
devdanzin [Fri, 13 Mar 2026 11:57:35 +0000 (08:57 -0300)]
gh-145887: Use `write()` instead of `stream.write()` in `PrettyPrinter._pprint_frozendict` (#145894)
Serhiy Storchaka [Fri, 13 Mar 2026 11:05:41 +0000 (13:05 +0200)]
gh-145850: Change some implementation details in struct.Struct (GH-145851)
* calling it with non-ASCII string format will now raise a ValueError
instead of UnicodeEncodeError
* calling it with non-ASCII bytes format will now raise a ValueError
instead of struct.error
* getting the format attribute of uninitialized object will now raise
an AttributeError instead of RuntimeError.
Stan Ulbrych [Fri, 13 Mar 2026 11:05:20 +0000 (11:05 +0000)]
gh-145783: Propagate errors raised in `NEW_TYPE_COMMENT` (#145784)
Maurizio Sambati [Fri, 13 Mar 2026 09:40:20 +0000 (10:40 +0100)]
Docs: except with multiple exceptions parentheses not required (#145848)
As of PEP 758 the except statement doesn't require parentheses anymore for exception tuples.
See: https://peps.python.org/pep-0758/
Stan Ulbrych [Fri, 13 Mar 2026 01:53:29 +0000 (01:53 +0000)]
Revert "gh-143050: Remove redundant decref in _PyLong_Negate (gh-143051)" (#145891)
OSS Fuzzer caught an assertion failure.
This reverts commit
5197ecb5e4df30ba0f6792d8bc0e36846154f58a .
Victor Stinner [Thu, 12 Mar 2026 22:48:51 +0000 (23:48 +0100)]
gh-145801: Use gcc -fprofile-update=atomic for PGO builds (#145802)
When Python build is optimized with GCC using PGO, use
-fprofile-update=atomic option to use atomic operations when updating
profile information. This option reduces the risk of gcov Data Files
(.gcda) corruption which can cause random GCC crashes.
Sergey Miryanov [Thu, 12 Mar 2026 22:16:53 +0000 (03:16 +0500)]
GH-132042: Fix calculation of slotdef index in update_one_slot() (#145880)
Sam Gross [Thu, 12 Mar 2026 17:30:36 +0000 (13:30 -0400)]
gh-145685: Improve scaling of type attribute lookups (gh-145774)
Avoid locking in the PyType_Lookup cache-miss path if the type's
tp_version_tag is already valid.
Charlie Lin [Thu, 12 Mar 2026 16:56:07 +0000 (12:56 -0400)]
gh-145717: Add a few Microsoft-specific MIME types, and synchronize between `mimetypes` module and tests (#145718)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Co-authored-by: Petr Viktorin <encukou@gmail.com>
Tan Long [Thu, 12 Mar 2026 15:59:43 +0000 (23:59 +0800)]
gh-140131: Fix REPL cursor position on Windows when module completion suggestion line hits console width (GH-140333)
Victor Stinner [Thu, 12 Mar 2026 14:04:36 +0000 (15:04 +0100)]
gh-141510: Update PyDict C API doc for frozendict (#145533)
Mention frozendict support.
bkap123 [Thu, 12 Mar 2026 13:46:37 +0000 (09:46 -0400)]
gh-145446: Add critical section in functools module for `PyDict_Next` (GH-145487)
Thomas Kowalski [Thu, 12 Mar 2026 13:27:07 +0000 (14:27 +0100)]
gh-145681: do not deallocate list buffer in `_PyList_AsTupleAndClear` (GH-145680)
Setting the size to 0 turns the list contents into overallocated memory that the deallocator will free.
Ownership is transferred to the new tuple so no refcount adjustment is needed.
Mark Shannon [Thu, 12 Mar 2026 10:57:59 +0000 (10:57 +0000)]
GH-145692: Convert DEOPT_IFs to EXIT_IFs (GH-145751)
* Convert DEOPT_IFs to EXIT_IFs for guards. Keep DEOPT_IF for intentional drops to the interpreter.
* Modify BINARY_OP_SUBSCR_LIST_INT and STORE_SUBSCR_LIST_INT to handle negative indices, to keep EXIT_IFs and DEOPT_IFs in different uops
Shamil [Thu, 12 Mar 2026 10:46:36 +0000 (13:46 +0300)]
gh-140594: Fix an out of bounds read when feeding NUL byte to PyOS_StdioReadline() (#140910)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: Victor Stinner <vstinner@python.org>
Serhiy Storchaka [Thu, 12 Mar 2026 07:44:11 +0000 (09:44 +0200)]
gh-143715: Deprecate incomplete initialization of struct.Struct() (GH-145580)
* Struct.__new__() will require a mandatory argument (format)
* Calls of __init__() method with a different format argument on initialized
Struct are deprecated
Co-authored-by: Sergey B Kirpichev <skirpichev@gmail.com>
Lysandros Nikolaou [Thu, 12 Mar 2026 06:48:43 +0000 (07:48 +0100)]
gh-145254: Add thread safety annotation in docs (#145255)
Sergey Miryanov [Wed, 11 Mar 2026 21:08:18 +0000 (02:08 +0500)]
GH-145247: Use _PyTuple_FromPair in Parser and Python (#145842)
Use _PyTuple_FromPair in Parser and Python
Hai Zhu [Wed, 11 Mar 2026 20:24:19 +0000 (04:24 +0800)]
gh-144540: Add _MAKE_HEAP_SAFE uop to eliminate unnecessary refcount operations in RETURN_VALUE and YIELD_VALUE (GH-144414)
Serhiy Storchaka [Wed, 11 Mar 2026 19:01:03 +0000 (21:01 +0200)]
gh-145736: Fix Tkinter tests for Tk 8.7, 9.0 and 9.1 (GH-145738)
Victor Stinner [Wed, 11 Mar 2026 16:05:09 +0000 (17:05 +0100)]
gh-141510: Raise TypeError in PyDict_SetItem() on frozendict (#145564)
If the following functions get an unexpected frozendict,
raise TypeError instead of SystemError:
* PyDict_DelItem()
* PyDict_DelItemString()
* PyDict_Merge()
* PyDict_MergeFromSeq2()
* PyDict_Pop()
* PyDict_PopString()
* PyDict_SetDefault()
* PyDict_SetDefaultRef()
* PyDict_SetItem()
* PyDict_SetItemString()
* _PyDict_SetItem_KnownHash()
* PyDict_Update()
Co-authored-by: mohsinm-dev <mohsin.mdev@gmail.com>
T. Wouters [Wed, 11 Mar 2026 14:46:16 +0000 (15:46 +0100)]
gh-142183: Cache one datachunk per tstate to prevent alloc/dealloc thrashing (#145789)
Cache one datachunk per tstate to prevent alloc/dealloc thrashing when repeatedly hitting the same call depth at exactly the wrong boundary.
---------
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Bénédikt Tran [Wed, 11 Mar 2026 14:30:09 +0000 (15:30 +0100)]
gh-139933: correctly suggest attributes for classes with a custom `__dir__` (GH-139950)
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
Lysandros Nikolaou [Wed, 11 Mar 2026 14:14:47 +0000 (15:14 +0100)]
gh-142518: Improve mimalloc allocator docs (#145224)
Seth Michael Larson [Wed, 11 Mar 2026 13:51:25 +0000 (08:51 -0500)]
Add GitHub team for maintaining fuzzers
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Seth Michael Larson [Wed, 11 Mar 2026 13:47:55 +0000 (08:47 -0500)]
gh-141707: Skip TarInfo DIRTYPE normalization during GNU long name handling
Co-authored-by: Eashwar Ranganathan <eashwar@eashwar.com>
Sergey B Kirpichev [Wed, 11 Mar 2026 13:25:24 +0000 (16:25 +0300)]
gh-99875: Document rounding mode for old-style formatting (#126382)
Pieter Eendebak [Wed, 11 Mar 2026 13:24:15 +0000 (14:24 +0100)]
gh-145376: Fix refleak & pointer type bug in uncommon code paths in Parser/ (GH-145684)
Thomas Kowalski [Wed, 11 Mar 2026 13:02:23 +0000 (14:02 +0100)]
gh-145492: fix regression test for defaultdict factory repr (GH-145788)
Stan Ulbrych [Wed, 11 Mar 2026 12:29:43 +0000 (12:29 +0000)]
Warn that overriding `__builtins__` for `eval` is not a security mechanism (GH-145773)
Co-authored-by: Ned Batchelder <ned@nedbatchelder.com>
Stefan Zetzsche [Wed, 11 Mar 2026 12:21:22 +0000 (12:21 +0000)]
gh-145546: unittest.util: fix `sorted_list_difference` tail deduplication (GH-145547)
* fix(unittest.util): Deduplicate tail elements in sorted_list_difference
sorted_list_difference failed to deduplicate remaining elements when one
list was exhausted, causing duplicate values in the result.
Deduplicate before extending.
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Shrey Naithani [Wed, 11 Mar 2026 12:08:48 +0000 (17:38 +0530)]
gh-145587: fix busy loop in multiprocessing.connection.wait on Windows (GH-145597)
Ensure wait() blocks for the specified timeout when object_list is empty, preventing 100% CPU usage. This aligns the Windows behavior with the Unix implementation.
Co-authored-by: AN Long <aisk@users.noreply.github.com>
Sergey B Kirpichev [Wed, 11 Mar 2026 11:39:24 +0000 (14:39 +0300)]
gh-145633: Remove support for ancient ARM platforms with mixed-endian doubles (#145634)
* Drop DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 macro.
* Use DOUBLE_IS_BIG/LITTLE_ENDIAN_IEEE754 to detect endianness of
float/doubles.
* Drop "unknown_format" code path in PyFloat_Pack/Unpack*().
Co-authored-by: Victor Stinner <vstinner@python.org>
Sam Gross [Wed, 11 Mar 2026 11:19:32 +0000 (07:19 -0400)]
gh-145685: Avoid contention on TYPE_LOCK in super() lookups (gh-145775)
Cody Maloney [Wed, 11 Mar 2026 08:02:23 +0000 (01:02 -0700)]
gh-101100: Fix sphinx reference warnings around I/O (#139592)
Co-authored-by: Carol Willing <carolcode@willingconsulting.com>
Thomas Kowalski [Wed, 11 Mar 2026 07:27:26 +0000 (08:27 +0100)]
gh-145713: make bytearray.resize thread-safe on free-threading (#145714)
Co-authored-by: Kumar Aditya <kumaraditya@python.org>
Hood Chatham [Wed, 11 Mar 2026 00:43:27 +0000 (01:43 +0100)]
gh-145219: Cache Emscripten build dependencies, add install-emscripten (#145664)
Modifies the Emscripten build script to allow for caching of dependencies, and
for automated installation of new EMSDK versions.
Co-authored-by: Russell Keith-Magee <russell@keith-magee.com>
Pieter Eendebak [Tue, 10 Mar 2026 19:51:17 +0000 (20:51 +0100)]
gh-143050: Remove redundant decref in _PyLong_Negate (gh-143051)
Sam Gross [Tue, 10 Mar 2026 18:47:58 +0000 (14:47 -0400)]
gh-142763: Fix race in ZoneInfo cache eviction (gh-144978)
The cache may be cleared between the evaluation of the if statement and the
call to popitem.
Stan Ulbrych [Tue, 10 Mar 2026 16:57:34 +0000 (16:57 +0000)]
Fix integer overflow for formats "s" and "p" in the struct module (GH-145750)
Sam Gross [Tue, 10 Mar 2026 16:55:29 +0000 (12:55 -0400)]
gh-145010: Fix Python.h compilation with -masm=intel (#145011)
Sam Gross [Tue, 10 Mar 2026 16:47:12 +0000 (12:47 -0400)]
gh-145685: Update find_name_in_mro() to return a _PyStackRef (gh-145693)
Sergey B Kirpichev [Tue, 10 Mar 2026 16:40:51 +0000 (19:40 +0300)]
gh-144173: fix flaky test_complex.test_truediv() (#144355)
Previously, component-wise relative error bound was tested. However,
such bound can't exist already for complex multiplication as one can be
used to perform subtraction of floating-point numbers, e.g. x and y for
z0=1+1j and z1=x+yj.
```pycon
>>> x, y = 1e-9+1j, 1+1j
>>> a = x*y*y.conjugate()/2;a
(1.
0000000272292198e -09+1j)
>>> b = x*(y*y.conjugate()/2);b
(1e-09+1j)
>>> b == x
True
>>> (a.real-b.real)/math.ulp(b.real)
131672427 .0
```
Benedikt Johannes [Tue, 10 Mar 2026 16:33:56 +0000 (17:33 +0100)]
gh-145044: avoid calling `Py_DECREF` in `unsafe_object_compare` on immortal objects (#145045)
bkap123 [Tue, 10 Mar 2026 16:30:11 +0000 (12:30 -0400)]
gh-145036: Fix data race for list capacity in free-threading (#145365)
Co-authored-by: Kumar Aditya <kumaraditya@python.org>
Serhiy Storchaka [Tue, 10 Mar 2026 16:29:23 +0000 (18:29 +0200)]
gh-145743: Fix inconsistency after calling Struct.__init__() with invalid format (GH-145744)
Only set the format attribute after successful (re-)initialization.
Farhan Saif [Tue, 10 Mar 2026 16:23:39 +0000 (11:23 -0500)]
gh-125053: Document that ob_mutex must only be used via critical section API (#144599)
Add a warning in the free-threading extensions howto explaining that
PyObject.ob_mutex is reserved for the critical section API and must not
be locked directly with PyMutex_Lock, as this can cause deadlocks.
Extension authors who need their own lock should add a separate PyMutex
field to their object struct.
Also add an ob_mutex member entry under PyObject in the C API reference
(Doc/c-api/structures.rst) with a cross-reference to the howto.
Co-authored-by: Victor Stinner <vstinner@python.org>
Alexander Shadchin [Tue, 10 Mar 2026 16:02:57 +0000 (19:02 +0300)]
gh-85277: Fix building without `stropts.h` or empty `stropts.h` (#143521)
Ali Towaiji [Tue, 10 Mar 2026 15:48:41 +0000 (11:48 -0400)]
gh-145591: Move slicing note to __getitem__ (GH-145606)
Charlie Lin [Tue, 10 Mar 2026 15:21:33 +0000 (11:21 -0400)]
gh-145697: Add `.sql` and `.sqlite3` recognition in `mimetypes` (GH-145698)
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Co-authored-by: Benedikt Johannes <benedikt.johannes.hofer@gmail.com>
Peter Bierma [Tue, 10 Mar 2026 14:57:13 +0000 (10:57 -0400)]
Docs: Improve the C API documentation involving threads (GH-145520)
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Hugo van Kemenade [Tue, 10 Mar 2026 14:41:02 +0000 (16:41 +0200)]
Merge branch 'main' of https://github.com/python/cpython
Hugo van Kemenade [Tue, 10 Mar 2026 14:40:10 +0000 (16:40 +0200)]
Post 3.15.0a7
Adorilson Bezerra [Tue, 10 Mar 2026 14:19:24 +0000 (14:19 +0000)]
gh-106318: Add examples for str.isspace() docs (#145399)
Steve Dower [Tue, 10 Mar 2026 13:58:32 +0000 (13:58 +0000)]
gh-145035: Allows removing the _pyrepl module to completely disable the modern REPL (GH-145159)
Matt Van Horn [Tue, 10 Mar 2026 13:20:42 +0000 (06:20 -0700)]
gh-145492: Fix defaultdict __repr__ infinite recursion (GH-145659)
Co-Authored-By: Thomas Kowalski <thom.kowa@gmail.com>
Hugo van Kemenade [Tue, 10 Mar 2026 12:30:46 +0000 (14:30 +0200)]
Python 3.15.0a7
Kumar Aditya [Tue, 10 Mar 2026 12:11:12 +0000 (17:41 +0530)]
gh-142651: use `NonCallableMock._lock` for thread safety of `call_count` (#142922)
Hugo van Kemenade [Tue, 10 Mar 2026 11:38:48 +0000 (13:38 +0200)]
gh-142927: Detect system theme in flame graph like in heatmap (#144885)
Hugo van Kemenade [Tue, 10 Mar 2026 11:11:43 +0000 (13:11 +0200)]
gh-133879: Copyedit "What's new in Python 3.15" (#145737)
Sergey Miryanov [Tue, 10 Mar 2026 10:44:20 +0000 (15:44 +0500)]
GH-145247: Implement _PyTuple_FromPair() (#145325)
Implement _PyTuple_FromPair() and _PyTuple_FromPairSteal().
Co-authored-by: Pieter Eendebak <pieter.eendebak@gmail.com>
Co-authored-by: Victor Stinner <vstinner@python.org>
Co-authored-by: Bartosz Sławecki <bartosz@ilikepython.com>
Co-authored-by: Kumar Aditya <kumaraditya@python.org>
Pieter Eendebak [Tue, 10 Mar 2026 09:46:13 +0000 (10:46 +0100)]
gh-145376: Fix refleaks and double decref for code in Python/ (#145666)
Emma Smith [Tue, 10 Mar 2026 09:21:57 +0000 (02:21 -0700)]
gh-145607: Ensure BIG_DATA has two compressed blocks in test_bz2 (#145730)
Stan Ulbrych [Tue, 10 Mar 2026 08:56:00 +0000 (08:56 +0000)]
gh-103997: Remove incorrect statements about `-c` dedenting (gh-138624)
Hugo van Kemenade [Tue, 10 Mar 2026 08:45:07 +0000 (10:45 +0200)]
gh-145731: Fix negative timestamp during DST on Windows (GH-145728)
Hai Zhu [Tue, 10 Mar 2026 04:12:48 +0000 (12:12 +0800)]
gh-144681: Fix JIT trace builder assertion failure when conditional branch jump target coincides with fallthrough target (GH-144742)
Stan Ulbrych [Mon, 9 Mar 2026 22:51:00 +0000 (22:51 +0000)]
Vary compiler flags in `fuzz_pycompile` (#145236)
* Vary compiler flags in fuzz_pycompile
* Drop `PyCF_SOURCE_IS_UTF8`
Sam Gross [Mon, 9 Mar 2026 22:41:07 +0000 (18:41 -0400)]
gh-145685: Stop the world when updating MRO of existing types (gh-145707)
We already have a stop-the-world pause elsewhere in this code path
(type_set_bases) and this makes will make it easier to avoid contention
on the TYPE_LOCK when looking up names in the MRO hierarchy.
Also use deferred reference counting for non-immortal MROs.
Stan Ulbrych [Mon, 9 Mar 2026 19:56:41 +0000 (19:56 +0000)]
gh-145701: Fix `__classdict__` & `__conditional_annotations__` in class-scope inlined comprehensions (GH-145702)
Stan Ulbrych [Mon, 9 Mar 2026 19:43:13 +0000 (19:43 +0000)]
Remove the `distutils-sig@python.org` email in 'Installing Python Modules' (#145613)
Filipe Laíns [Mon, 9 Mar 2026 19:37:33 +0000 (19:37 +0000)]
GH-145273: don't skip missing platstdlib warning if stdlib_zip is found (#145544)
Hugo van Kemenade [Mon, 9 Mar 2026 18:23:11 +0000 (20:23 +0200)]
Docs: Update programming FAQ (#144573)
Co-authored-by: Savannah Ostrowski <savannah@python.org>
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Co-authored-by: Stan Ulbrych <stan@ulbrych.org>
Petr Viktorin [Mon, 9 Mar 2026 18:18:14 +0000 (19:18 +0100)]
gh-145278: Revert "freeze encodings (partially) and linecache (#145279)" (#145689)
Stan Ulbrych [Mon, 9 Mar 2026 17:37:23 +0000 (17:37 +0000)]
gh-143055: Fix crash in AST unparser when unparsing dict comprehension unpacking (#145556)
Sam Gross [Mon, 9 Mar 2026 17:24:34 +0000 (13:24 -0400)]
gh-145615: Fix mimalloc page leak in the free-threaded build (gh-145626)
Fix three issues that caused mimalloc pages to be leaked until the
owning thread exited:
1. In _PyMem_mi_page_maybe_free(), move pages out of the full queue
when relying on QSBR to defer freeing the page. Pages in the full
queue are never searched by mi_page_queue_find_free_ex(), so a page
left there is unusable for allocations.
2. Move _PyMem_mi_page_clear_qsbr() from _mi_page_free_collect() to
_mi_page_thread_free_collect() where it only fires when all blocks
on the page are free (used == 0). The previous placement was too
broad: it cleared QSBR state whenever local_free was non-NULL, but
_mi_page_free_collect() is called from non-allocation paths (e.g.,
page visiting in mi_heap_visit_blocks) where the page is not being
reused.
3. In _PyMem_mi_page_maybe_free(), use the page's heap tld to find the
correct thread state for QSBR list insertion instead of
PyThreadState_GET(). During stop-the-world pauses, the function may
process pages belonging to other threads, so the current thread
state is not necessarily the owner of the page.
Yashraj [Mon, 9 Mar 2026 16:30:00 +0000 (22:00 +0530)]
gh-141617: clarify `concurrent.futures.ThreadPoolExecutor` deadlock example (#141620)
---------
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Maciej Olko [Mon, 9 Mar 2026 16:19:02 +0000 (12:19 -0400)]
gh-139588: Docs: fix PDF build (#145480)
Mark Shannon [Mon, 9 Mar 2026 15:21:33 +0000 (15:21 +0000)]
GH-144688: Fix refleaks in JIT when optimization fails (GH-145420)
Victor Stinner [Mon, 9 Mar 2026 14:47:02 +0000 (15:47 +0100)]
gh-141510: Optimize frozendict(frozendict) (#145592)
Return the same object unmodified if it's exactly the frozendict
type.
Optimize also PyFrozenDict_New(frozendict).
Daan De Meyer [Mon, 9 Mar 2026 14:07:23 +0000 (15:07 +0100)]
gh-145541: Fix `InvalidStateError` in `BaseSubprocessTransport._call_connection_lost()` (#145554)
Petr Viktorin [Mon, 9 Mar 2026 14:02:06 +0000 (15:02 +0100)]
gh-78773: Improve ctypes dynamic library loading docs (GH-145313)
Victor Stinner [Mon, 9 Mar 2026 13:53:52 +0000 (14:53 +0100)]
gh-145376: Fix _cursesmodule.c build on FreeBSD/macOS (#145669)
Petr Viktorin [Mon, 9 Mar 2026 13:32:28 +0000 (14:32 +0100)]
Document that PyType_GetModule returns a borrowed ref (GH-145612)
Filipe Laíns [Mon, 9 Mar 2026 13:28:00 +0000 (13:28 +0000)]
GH-145278: freeze encodings (partially) and linecache (#145279)