]> git.ipfire.org Git - thirdparty/Python/cpython.git/log
thirdparty/Python/cpython.git
10 days agogh-141004: Document `Py_MEMCPY` (GH-141676)
Stan Ulbrych [Mon, 17 Nov 2025 22:52:13 +0000 (22:52 +0000)] 
gh-141004: Document `Py_MEMCPY` (GH-141676)

11 days agogh-141004: Document `PyODict*` APIs (GH-141136)
Peter Bierma [Mon, 17 Nov 2025 19:40:47 +0000 (14:40 -0500)] 
gh-141004: Document `PyODict*` APIs (GH-141136)

11 days agogh-140578: Delete unnecessary NEWS entry (#141427)
Louis [Mon, 17 Nov 2025 17:47:00 +0000 (18:47 +0100)] 
gh-140578: Delete unnecessary NEWS entry (#141427)

Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
11 days agogh-141497: Make ipaddress.IP{v4,v6}Network.hosts() always returning an iterator ...
Krishna Chaitanya [Mon, 17 Nov 2025 17:29:06 +0000 (22:59 +0530)] 
gh-141497: Make ipaddress.IP{v4,v6}Network.hosts() always returning an iterator (GH-141547)

11 days agogh-135953: Simplify GC markers in the tachyon profiler (#141666)
Pablo Galindo Salgado [Mon, 17 Nov 2025 16:32:08 +0000 (16:32 +0000)] 
gh-135953: Simplify GC markers in the tachyon profiler (#141666)

11 days agogh-130160: Add anchors to CLI Usage section for `cmdline` (#133182)
Semyon Moroz [Mon, 17 Nov 2025 14:51:21 +0000 (18:51 +0400)] 
gh-130160: Add anchors to CLI Usage section for `cmdline` (#133182)

11 days agogh-130693: Support more options for search in tkinter.Text (GH-130848)
R.C.M [Mon, 17 Nov 2025 14:42:26 +0000 (09:42 -0500)] 
gh-130693: Support more options for search in tkinter.Text (GH-130848)

* Add parameters nolinestop and strictlimits in the tkinter.Text.search() method.
* Add the tkinter.Text.search_all() method.
* Add more tests for tkinter.Text.search().
* stopindex is now only ignored if it is None.

11 days agoGH-139914: Handle stack growth direction on HPPA (GH-140028)
Stefano Rivera [Mon, 17 Nov 2025 13:41:22 +0000 (05:41 -0800)] 
GH-139914: Handle stack growth direction on HPPA (GH-140028)

Adapted from a patch for Python 3.14 submitted to the Debian BTS by John
https://bugs.debian.org/1105111#20

Co-authored-by: John David Anglin <dave.anglin@bell.net>
11 days agoGH-140643: Add `<native>` and `<GC>` frames to the sampling profiler (#141108)
Brandt Bucher [Mon, 17 Nov 2025 13:39:00 +0000 (05:39 -0800)] 
GH-140643: Add `<native>` and `<GC>` frames to the sampling profiler (#141108)

- Introduce a new field in the GC state to store the frame that initiated garbage collection.
- Update RemoteUnwinder to include options for including "<native>" and "<GC>" frames in the stack trace.
- Modify the sampling profiler to accept parameters for controlling the inclusion of native and GC frames.
- Enhance the stack collector to properly format and append these frames during profiling.
- Add tests to verify the correct behavior of the profiler with respect to native and GC frames, including options to exclude them.

Co-authored-by: Pablo Galindo Salgado <pablogsal@gmail.com>
11 days agogh-135953: Add GIL contention markers to sampling profiler Gecko format (#139485)
Pablo Galindo Salgado [Mon, 17 Nov 2025 12:46:26 +0000 (12:46 +0000)] 
gh-135953: Add GIL contention markers to sampling profiler Gecko format (#139485)

This commit enhances the Gecko format reporter in the sampling profiler
to include markers for GIL acquisition events.

11 days agogh-140729: Add __mp_main__ as a duplicate for __main__ for pickle to work (#140735)
yihong [Mon, 17 Nov 2025 12:43:14 +0000 (20:43 +0800)] 
gh-140729: Add __mp_main__ as a duplicate for __main__ for pickle to work (#140735)

11 days agoDocs: Fix typo in socketserver documentation (#140956)
Thomas Ballard [Mon, 17 Nov 2025 11:47:28 +0000 (06:47 -0500)] 
Docs: Fix typo in socketserver documentation (#140956)

11 days agogh-62480: De-personalize "Coping with mutable arguments" section in `unittest.mock...
dereckduran [Mon, 17 Nov 2025 11:44:44 +0000 (03:44 -0800)] 
gh-62480: De-personalize "Coping with mutable arguments" section in `unittest.mock` examples (#141323)

11 days agogh-141650: Fix typo in `xml.sax.saxutils.unescape` documentation (#141652)
Tamzin Hadasa Kelly [Mon, 17 Nov 2025 11:35:01 +0000 (18:35 +0700)] 
gh-141650: Fix typo in `xml.sax.saxutils.unescape` documentation (#141652)

11 days agogh-141018: Update `.exe`, `.dll`, `.rtf` and `.jpg` mime types in `mimetypes` (#141023)
Stan Ulbrych [Mon, 17 Nov 2025 11:32:00 +0000 (11:32 +0000)] 
gh-141018: Update `.exe`, `.dll`, `.rtf` and `.jpg` mime types in `mimetypes` (#141023)

11 days agofix memory order of `_Py_atomic_store_uint_release` (#141562)
SubbaraoGarlapati [Mon, 17 Nov 2025 11:23:12 +0000 (06:23 -0500)] 
fix memory order of `_Py_atomic_store_uint_release` (#141562)

12 days agogh-136057: Allow step and next to step over for loops (#136160)
Tian Gao [Sun, 16 Nov 2025 21:57:07 +0000 (13:57 -0800)] 
gh-136057: Allow step and next to step over for loops (#136160)

12 days agogh-141004: Document missing `PyCFunction*` and `PyCMethod*` APIs (GH-141253)
Peter Bierma [Sun, 16 Nov 2025 19:25:50 +0000 (14:25 -0500)] 
gh-141004: Document missing `PyCFunction*` and `PyCMethod*` APIs (GH-141253)

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
12 days agogh-125115 : Refactor the pdb parsing issue so positional arguments can pass through...
Tian Gao [Sun, 16 Nov 2025 18:58:28 +0000 (10:58 -0800)] 
gh-125115 : Refactor the pdb parsing issue so positional arguments can pass through (#140933)

12 days agogh-141004: Document the `PyPickleBuffer_*` C API (GH-141630)
Stan Ulbrych [Sun, 16 Nov 2025 18:50:54 +0000 (18:50 +0000)] 
gh-141004: Document the `PyPickleBuffer_*` C API (GH-141630)

Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
13 days agogh-139109: JIT _EXIT_TRACE to ENTER_EXECUTOR rather than _DEOPT (GH-141573)
Ken Jin [Sat, 15 Nov 2025 20:19:41 +0000 (04:19 +0800)] 
gh-139109: JIT _EXIT_TRACE to ENTER_EXECUTOR rather than _DEOPT (GH-141573)

13 days agogh-141553: Fix incorrect function signatures in `_testmultiphase` (#141554)
Shamil [Sat, 15 Nov 2025 17:46:54 +0000 (20:46 +0300)] 
gh-141553: Fix incorrect function signatures in `_testmultiphase` (#141554)

13 days agogh-140458: `xmlrpc.client` raises Fault, does not returns it. (GH-140759)
Yongzi Li [Sat, 15 Nov 2025 16:14:23 +0000 (00:14 +0800)] 
gh-140458: `xmlrpc.client` raises Fault, does not returns it. (GH-140759)

13 days agogh-141579: Fix perf_jit backend in sys.activate_stack_trampoline() (#141580)
Pablo Galindo Salgado [Sat, 15 Nov 2025 02:23:54 +0000 (02:23 +0000)] 
gh-141579: Fix perf_jit backend in sys.activate_stack_trampoline() (#141580)

13 days agogh-136442: Fix unittest to return exit code 5 when setUpClass raises an exception...
Takuya UESHIN [Sat, 15 Nov 2025 00:59:51 +0000 (16:59 -0800)] 
gh-136442: Fix unittest to return exit code 5 when setUpClass raises an exception (#136487)

13 days agoGH-90344: replace single-call `io.IncrementalNewlineDecoder` usage with non-increment...
Guo Ci [Sat, 15 Nov 2025 00:13:37 +0000 (19:13 -0500)] 
GH-90344: replace single-call `io.IncrementalNewlineDecoder` usage with non-incremental newline decoders (GH-30276)

Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Co-authored-by: Brett Cannon <brett@python.org>
13 days agogh-140938: Raise ValueError for infinite inputs to stdev/pstdev (GH-141531)
Raymond Hettinger [Fri, 14 Nov 2025 23:25:45 +0000 (17:25 -0600)] 
gh-140938: Raise ValueError for infinite inputs to stdev/pstdev (GH-141531)

Raise ValueError for infinite inputs to stdev/pstdev

---

Co-authored-by: Gregory P. Smith <68491+gpshead@users.noreply.github.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2 weeks agogh-141367: Use CALL_LIST_APPEND instruction only for lists, not for list subclasses...
Mikhail Efimov [Fri, 14 Nov 2025 21:38:39 +0000 (00:38 +0300)] 
gh-141367: Use CALL_LIST_APPEND instruction only for lists, not for list subclasses (GH-141398)

Co-authored-by: Ken Jin <kenjin4096@gmail.com>
2 weeks agogh-114203: skip locking if object is already locked by two-mutex critical section...
Kumar Aditya [Fri, 14 Nov 2025 17:47:59 +0000 (23:17 +0530)] 
gh-114203: skip locking if object is already locked by two-mutex critical section (#141476)

2 weeks agogh-141488: Add `Py_` prefix to Include/datetime.h macros (#141493)
Locked-chess-official [Fri, 14 Nov 2025 15:52:14 +0000 (23:52 +0800)] 
gh-141488: Add `Py_` prefix to Include/datetime.h macros (#141493)

2 weeks agoAdd PyManager troubleshooting steps for direct launch of script files (GH-141530)
Steve Dower [Fri, 14 Nov 2025 15:23:01 +0000 (15:23 +0000)] 
Add PyManager troubleshooting steps for direct launch of script files (GH-141530)

2 weeks agogh-116146: Avoid empty braces in _testembed.c (GH-141556)
Petr Viktorin [Fri, 14 Nov 2025 15:05:42 +0000 (16:05 +0100)] 
gh-116146: Avoid empty braces in _testembed.c (GH-141556)

2 weeks agogh-139653: Remove assertions in _Py_InitializeRecursionLimits() (#141551)
Victor Stinner [Fri, 14 Nov 2025 14:56:37 +0000 (15:56 +0100)] 
gh-139653: Remove assertions in _Py_InitializeRecursionLimits() (#141551)

These checks were invalid and failed randomly on FreeBSD
and Alpine Linux.

2 weeks agoGH-141509: Fix warning about remaining subinterpreters (GH-141528)
Sergey Miryanov [Fri, 14 Nov 2025 14:55:04 +0000 (19:55 +0500)] 
GH-141509: Fix warning about remaining subinterpreters (GH-141528)

Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
2 weeks agoGH-141312: Allow only integers to longrangeiter_setstate state (GH-141317)
Sergey Miryanov [Fri, 14 Nov 2025 14:52:01 +0000 (19:52 +0500)] 
GH-141312: Allow only integers to longrangeiter_setstate state (GH-141317)

This fixes an assertion error when the new computed start is not an integer.

2 weeks agogh-139344: Remove pending removal notice for undeprecated importlib.resources API...
Petr Viktorin [Fri, 14 Nov 2025 14:50:03 +0000 (15:50 +0100)] 
gh-139344: Remove pending removal notice for undeprecated importlib.resources API (GH-141507)

2 weeks agogh-122255: Synchronize warnings in C and Python implementations of the warnings modul...
Serhiy Storchaka [Fri, 14 Nov 2025 14:49:28 +0000 (16:49 +0200)] 
gh-122255: Synchronize warnings in C and Python implementations of the warnings module (GH-122824)

In the linecache module and in the Python implementation of the
warnings module, a DeprecationWarning is issued when
m.__loader__ differs from m.__spec__.loader (like in the C
implementation of the warnings module).

2 weeks agogh-131229: Temporarily skip `test_basic_multiple_interpreters_deleted_no_reset` ...
Peter Bierma [Fri, 14 Nov 2025 14:22:36 +0000 (09:22 -0500)] 
gh-131229: Temporarily skip `test_basic_multiple_interpreters_deleted_no_reset` (GH-141552)

This is a temporary band-aid to unblock other PRs.

Co-authored-by: Kumar Aditya <kumaraditya@python.org>
2 weeks agogh-141004: Document `PyOS_InterruptOccurred` (GH-141526)
Stan Ulbrych [Fri, 14 Nov 2025 11:20:36 +0000 (11:20 +0000)] 
gh-141004: Document `PyOS_InterruptOccurred` (GH-141526)

2 weeks agogh-141376: Remove exceptions from `make smelly` (GH-141392)
Petr Viktorin [Fri, 14 Nov 2025 10:22:18 +0000 (11:22 +0100)] 
gh-141376: Remove exceptions from `make smelly` (GH-141392)

* Don't ignore initialized data and BSS
* Remove exceptions for _init and _fini

2 weeks agogh-131510: Use PyUnstable_Unicode_GET_CACHED_HASH() (GH-141520)
Victor Stinner [Fri, 14 Nov 2025 10:13:24 +0000 (11:13 +0100)] 
gh-131510: Use PyUnstable_Unicode_GET_CACHED_HASH() (GH-141520)

Replace code that directly accesses PyASCIIObject.hash with
PyUnstable_Unicode_GET_CACHED_HASH().

Remove redundant "assert(PyUnicode_Check(op))" from
PyUnstable_Unicode_GET_CACHED_HASH(), _PyASCIIObject_CAST() already
implements the check.

2 weeks agogh-139596: Cease caching config.cache & ccache in GH Actions (#141451)
Hugo van Kemenade [Fri, 14 Nov 2025 09:59:19 +0000 (11:59 +0200)] 
gh-139596: Cease caching config.cache & ccache in GH Actions (#141451)

2 weeks agogh-116146: Add C-API to create module from spec and initfunc (GH-139196)
Itamar Oren [Fri, 14 Nov 2025 09:43:25 +0000 (01:43 -0800)] 
gh-116146: Add C-API to create module from spec and initfunc (GH-139196)

Co-authored-by: Kumar Aditya <kumaraditya@python.org>
Co-authored-by: Petr Viktorin <encukou@gmail.com>
Co-authored-by: Victor Stinner <vstinner@python.org>
2 weeks agogh-140550: Use a bool for the Py_mod_gil value (GH-141519)
Petr Viktorin [Fri, 14 Nov 2025 09:38:49 +0000 (10:38 +0100)] 
gh-140550: Use a bool for the Py_mod_gil value (GH-141519)

This needs a single bit, but was stored as a void* in the module
struct. This didn't matter due to packing, but now that there's
another bool in the struct, we can save a bit of memory by
making md_gil a bool.

Variables that changed type are renamed, to detect conflicts.

2 weeks agogh-140790: pdb: Initialize instance variables in Pdb.__init__ (#140791)
M Bussonnier [Fri, 14 Nov 2025 03:18:54 +0000 (04:18 +0100)] 
gh-140790: pdb: Initialize instance variables in Pdb.__init__ (#140791)

Initialize lineno, stack, curindex, curframe, currentbp, and _user_requested_quit attributes in `Pdb.__init__``.

2 weeks agogh-140601: Add ResourceWarning to iterparse when not closed (GH-140603)
Osama Abdelkader [Thu, 13 Nov 2025 19:05:28 +0000 (20:05 +0100)] 
gh-140601: Add ResourceWarning to iterparse when not closed (GH-140603)

When iterparse() opens a file by filename and is not explicitly closed,
emit a ResourceWarning to alert developers of the resource leak.

Signed-off-by: Osama Abdelkader <osama.abdelkader@gmail.com>
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2 weeks agogh-137969: Fix double evaluation of `ForwardRef`s which rely on globals (#140974)
dr-carlos [Thu, 13 Nov 2025 18:17:17 +0000 (04:47 +1030)] 
gh-137969: Fix double evaluation of `ForwardRef`s which rely on globals (#140974)

2 weeks agogh-139109: A new tracing JIT compiler frontend for CPython (GH-140310)
Ken Jin [Thu, 13 Nov 2025 18:08:32 +0000 (02:08 +0800)] 
gh-139109: A new tracing JIT compiler frontend for CPython (GH-140310)

This PR changes the current JIT model from trace projection to trace recording. Benchmarking: better pyperformance (about 1.7% overall) geomean versus current https://raw.githubusercontent.com/facebookexperimental/free-threading-benchmarking/refs/heads/main/results/bm-20251108-3.15.0a1%2B-7e2bc1d-JIT/bm-20251108-vultr-x86_64-Fidget%252dSpinner-tracing_jit-3.15.0a1%2B-7e2bc1d-vs-base.svg, 100% faster Richards on the most improved benchmark versus the current JIT. Slowdown of about 10-15% on the worst benchmark versus the current JIT. **Note: the fastest version isn't the one merged, as it relies on fixing bugs in the specializing interpreter, which is left to another PR**. The speedup in the merged version is about 1.1%. https://raw.githubusercontent.com/facebookexperimental/free-threading-benchmarking/refs/heads/main/results/bm-20251112-3.15.0a1%2B-f8a764a-JIT/bm-20251112-vultr-x86_64-Fidget%252dSpinner-tracing_jit-3.15.0a1%2B-f8a764a-vs-base.svg

Stats: 50% more uops executed, 30% more traces entered the last time we ran them. It also suggests our trace lengths for a real trace recording JIT are too short, as a lot of trace too long aborts https://github.com/facebookexperimental/free-threading-benchmarking/blob/main/results/bm-20251023-3.15.0a1%2B-eb73378-CLANG%2CJIT/bm-20251023-vultr-x86_64-Fidget%252dSpinner-tracing_jit-3.15.0a1%2B-eb73378-pystats-vs-base.md .

This new JIT frontend is already able to record/execute significantly more instructions than the previous JIT frontend. In this PR, we are now able to record through custom dunders, simple object creation, generators, etc. None of these were done by the old JIT frontend. Some custom dunders uops were discovered to be broken as part of this work gh-140277

The optimizer stack space check is disabled, as it's no longer valid to deal with underflow.

Pros:
* Ignoring the generated tracer code as it's automatically created, this is only additional 1k lines of code. The maintenance burden is handled by the DSL and code generator.
* `optimizer.c` is now significantly simpler, as we don't have to do strange things to recover the bytecode from a trace.
* The new JIT frontend is able to handle a lot more control-flow than the old one.
* Tracing is very low overhead. We use the tail calling interpreter/computed goto interpreter to switch between tracing mode and non-tracing mode. I call this mechanism dual dispatch, as we have two dispatch tables dispatching to each other. Specialization is still enabled while tracing.
* Better handling of polymorphism. We leverage the specializing interpreter for this.

Cons:
* (For now) requires tail calling interpreter or computed gotos. This means no Windows JIT for now :(. Not to fret, tail calling is coming soon to Windows though https://github.com/python/cpython/pull/139962

Design:
* After each instruction, the `record_previous_inst` function/label is executed. This does as the name suggests.
* The tracing interpreter lowers bytecode to uops directly so that it can obtain "fresh" values at the point of lowering.
* The tracing version behaves nearly identical to the normal interpreter, in fact it even has specialization! This allows it to run without much of a slowdown when tracing. The actual cost of tracing is only a function call and writes to memory.
* The tracing interpreter uses the specializing interpreter's deopt to naturally form the side exit chains. This allows it to side exit chain effectively, without repeating much code. We force a re-specializing when tracing a deopt.
* The tracing interpreter can even handle goto errors/exceptions, but I chose to disable them for now as it's not tested.
* Because we do not share interpreter dispatch, there is should be no significant slowdown to the original specializing interpreter on tailcall and computed got with JIT disabled. With JIT enabled, there might be a slowdown in the form of the JIT trying to trace.
* Things that could have dynamic instruction pointer effects are guarded on. The guard deopts to a new instruction --- `_DYNAMIC_EXIT`.

2 weeks agogh-141004: Document `PyErr_RangedSyntaxLocationObject` (#141521)
Stan Ulbrych [Thu, 13 Nov 2025 17:58:47 +0000 (17:58 +0000)] 
gh-141004: Document `PyErr_RangedSyntaxLocationObject` (#141521)

PyErr_RangedSyntaxLocationObject

2 weeks agogh-140873: Add support of non-descriptor callables in functools.singledispatchmethod...
Serhiy Storchaka [Thu, 13 Nov 2025 17:48:52 +0000 (19:48 +0200)] 
gh-140873: Add support of non-descriptor callables in functools.singledispatchmethod() (GH-140884)

2 weeks agogh-139653: Add PyUnstable_ThreadState_SetStackProtection() (#139668)
Victor Stinner [Thu, 13 Nov 2025 16:30:50 +0000 (17:30 +0100)] 
gh-139653: Add PyUnstable_ThreadState_SetStackProtection() (#139668)

Add PyUnstable_ThreadState_SetStackProtection() and
PyUnstable_ThreadState_ResetStackProtection() functions
to set the stack base address and stack size of a Python
thread state.

Co-authored-by: Petr Viktorin <encukou@gmail.com>
2 weeks agogh-141004: Document `PyCode_Optimize` (GH-141378)
Peter Bierma [Thu, 13 Nov 2025 15:07:57 +0000 (10:07 -0500)] 
gh-141004: Document `PyCode_Optimize` (GH-141378)

2 weeks agogh-141004: Document C APIs for dictionary keys, values, and items (GH-141009)
Peter Bierma [Thu, 13 Nov 2025 15:02:21 +0000 (10:02 -0500)] 
gh-141004: Document C APIs for dictionary keys, values, and items (GH-141009)

Co-authored-by: Petr Viktorin <encukou@gmail.com>
2 weeks agogh-137959: Fix `TIER1_TO_TIER2` macro name in JIT InternalDocs (GH-141496)
Mikhail Efimov [Thu, 13 Nov 2025 14:44:40 +0000 (17:44 +0300)] 
gh-137959: Fix `TIER1_TO_TIER2` macro name in JIT InternalDocs (GH-141496)

JIT InternalDocs fix

2 weeks agogh-139871: Add `bytearray.take_bytes([n])` to efficiently extract `bytes` (GH-140128)
Cody Maloney [Thu, 13 Nov 2025 13:19:44 +0000 (05:19 -0800)] 
gh-139871: Add `bytearray.take_bytes([n])` to efficiently extract `bytes` (GH-140128)

Update `bytearray` to contain a `bytes` and provide a zero-copy path to
"extract" the `bytes`. This allows making several code paths more efficient.

This does not move any codepaths to make use of this new API. The documentation
changes include common code patterns which can be made more efficient with
this API.

---

When just changing `bytearray` to contain `bytes` I ran pyperformance on a
`--with-lto --enable-optimizations --with-static-libpython` build and don't see
any major speedups or slowdowns with this; all seems to be in the noise of
my machine (Generally changes under 5% or benchmarks that don't touch
bytes/bytearray).

Co-authored-by: Victor Stinner <vstinner@python.org>
Co-authored-by: Maurycy Pawłowski-Wieroński <5383+maurycy@users.noreply.github.com>
2 weeks agogh-140601: Refactor ElementTree.iterparse() tests (GH-141499)
Serhiy Storchaka [Thu, 13 Nov 2025 11:37:01 +0000 (13:37 +0200)] 
gh-140601: Refactor ElementTree.iterparse() tests (GH-141499)

Split existing tests on smaller methods and move them to separate class.
Rename variable "content" to "it".
Use BytesIO instead of StringIO.
Add few more tests.

2 weeks agogh-135801: Add the module parameter to compile() etc (GH-139652)
Serhiy Storchaka [Thu, 13 Nov 2025 11:21:32 +0000 (13:21 +0200)] 
gh-135801: Add the module parameter to compile() etc (GH-139652)

Many functions related to compiling or parsing Python code, such as
compile(), ast.parse(), symtable.symtable(),
and importlib.abc.InspectLoader.source_to_code() now allow to pass
the module name used when filtering syntax warnings.

2 weeks agogh-140260: fix data race in `_struct` module initialization with subinterpreters...
Shamil [Thu, 13 Nov 2025 11:01:31 +0000 (14:01 +0300)] 
gh-140260: fix data race in `_struct` module initialization with subinterpreters (#140909)

2 weeks agogh-137109: refactor warning about threads when forking (#141438)
Gregory P. Smith [Thu, 13 Nov 2025 02:15:16 +0000 (18:15 -0800)] 
gh-137109: refactor warning about threads when forking (#141438)

* gh-137109: refactor warning about threads when forking

This splits the OS API specific functionality to get the number of threads out
from the fallback Python method and warning raising code itself.  This way the
OS APIs can be queried before we've run
`os.register_at_fork(after_in_parent=...)` registered functions which
themselves may (re)start threads that would otherwise be detected.

This is best effort.  If the OS APIs are either unavailable or fail, the
warning generating code still falls back to looking at the Python threading
state after the CPython interpreter world has been restarted and the
after_in_parent calls have been made.  The common case for most Linux and macOS
environments should work today.

This also lines up with the existing TODO refactoring, we may choose to expose
this API to get the number of OS threads in the `os` module in the future.

* NEWS entry

* avoid "function-prototype" compiler warning?

2 weeks agogh-141004: Document `PyRun_InteractiveOneObject` (GH-141405)
Peter Bierma [Wed, 12 Nov 2025 22:52:56 +0000 (17:52 -0500)] 
gh-141004: Document `PyRun_InteractiveOneObject` (GH-141405)

2 weeks agogh-124111: Fix TCL 9 thread detection (GH-128103)
Michael Cho [Wed, 12 Nov 2025 22:16:58 +0000 (17:16 -0500)] 
gh-124111: Fix TCL 9 thread detection (GH-128103)

2 weeks agogh-141442: Add escaping to iOS testbed arguments (#141443)
Russell Keith-Magee [Wed, 12 Nov 2025 21:41:26 +0000 (05:41 +0800)] 
gh-141442: Add escaping to iOS testbed arguments (#141443)

Xcode concatenates the test argument array, losing quoting in the process.

2 weeks agogh-140936: Fix JIT assertion crash at finalization if some generator is alive (GH...
Mikhail Efimov [Wed, 12 Nov 2025 19:04:02 +0000 (22:04 +0300)] 
gh-140936: Fix JIT assertion crash at finalization if some generator is alive (GH-140969)

2 weeks agoAdd details about JIT build infrastructure and updating dependencies to `Tools/jit...
Savannah Ostrowski [Wed, 12 Nov 2025 18:26:50 +0000 (10:26 -0800)] 
Add details about JIT build infrastructure and updating dependencies to `Tools/jit` (#141167)

2 weeks agogh-141412: Use reliable target URL for urllib example (GH-141428)
Bob Kline [Wed, 12 Nov 2025 18:25:23 +0000 (13:25 -0500)] 
gh-141412: Use reliable target URL for urllib example (GH-141428)

The endpoint used for demonstrating reading URLs is no longer
stable. This change substitutes a target over which we have more
control.

2 weeks agoGH-140479: Update JIT builds to use LLVM 21 (#140973)
Savannah Ostrowski [Wed, 12 Nov 2025 18:09:25 +0000 (10:09 -0800)] 
GH-140479: Update JIT builds to use LLVM 21 (#140973)

2 weeks agogh-141004: Document `PyType_SUPPORTS_WEAKREFS` (GH-141408)
Peter Bierma [Wed, 12 Nov 2025 16:38:17 +0000 (11:38 -0500)] 
gh-141004: Document `PyType_SUPPORTS_WEAKREFS` (GH-141408)

Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
2 weeks agogh-141004: Document `Py_MATH_{E, PI, TAU}` constants (#141373)
Stan Ulbrych [Wed, 12 Nov 2025 16:37:54 +0000 (16:37 +0000)] 
gh-141004: Document `Py_MATH_{E, PI, TAU}` constants (#141373)

2 weeks agogh-132657: add regression test for `PySet_Contains` with unhashable type (#141411)
M Bussonnier [Wed, 12 Nov 2025 15:20:08 +0000 (16:20 +0100)] 
gh-132657: add regression test for `PySet_Contains` with unhashable type (#141411)

2 weeks agogh-87710: Update mime type for ``.ai`` (#141239)
Stan Ulbrych [Wed, 12 Nov 2025 14:22:01 +0000 (14:22 +0000)] 
gh-87710: Update mime type for ``.ai`` (#141239)

2 weeks agogh-141464: a typo in profiling sampling when can not run warning in linux (#141465)
yihong [Wed, 12 Nov 2025 12:45:43 +0000 (20:45 +0800)] 
gh-141464: a typo in profiling sampling when can not run warning in linux (#141465)

2 weeks agogh-141004: soft-deprecate Py_INFINITY macro (#141033)
Sergey B Kirpichev [Wed, 12 Nov 2025 12:44:49 +0000 (15:44 +0300)] 
gh-141004: soft-deprecate Py_INFINITY macro (#141033)

Co-authored-by: Victor Stinner <vstinner@python.org>
2 weeks agogh-98896: resource_tracker: use json&base64 to allow arbitrary shared memory names...
Rani Pinchuk [Wed, 12 Nov 2025 12:35:01 +0000 (13:35 +0100)] 
gh-98896: resource_tracker: use json&base64 to allow arbitrary shared memory names (GH-138473)

2 weeks agogh-131116: Fix inspect.getdoc() to work with cached_property objects (GH-131165)
Jacob Austin Lincoln [Wed, 12 Nov 2025 10:07:21 +0000 (02:07 -0800)] 
gh-131116: Fix inspect.getdoc() to work with cached_property objects (GH-131165)

2 weeks agogh-141042: fix sNaN's packing for mixed floating-point formats (#141107)
Sergey B Kirpichev [Wed, 12 Nov 2025 10:06:29 +0000 (13:06 +0300)] 
gh-141042: fix sNaN's packing for mixed floating-point formats (#141107)

2 weeks agogh-141311: Avoid assertion in BytesIO.readinto() (GH-141333)
Cody Maloney [Wed, 12 Nov 2025 09:57:05 +0000 (01:57 -0800)] 
gh-141311: Avoid assertion in BytesIO.readinto() (GH-141333)

Fix error in assertion which causes failure if pos is equal to PY_SSIZE_T_MAX.
Fix undefined behavior in read() and readinto() if pos is larger that the size
of the underlying buffer.

2 weeks agogh-141370: document undefined behavior of Py_ABS() (GH-141439)
Sergey B Kirpichev [Wed, 12 Nov 2025 09:50:44 +0000 (12:50 +0300)] 
gh-141370: document undefined behavior of Py_ABS() (GH-141439)

2 weeks agogh-85524: Raise "UnsupportedOperation" on FileIO.readall (#141214)
Cody Maloney [Wed, 12 Nov 2025 09:37:48 +0000 (01:37 -0800)] 
gh-85524: Raise "UnsupportedOperation" on FileIO.readall (#141214)

io.UnsupportedOperation is a subclass of OSError and recommended by
io.IOBase for this case; matches other read methods on io.FileIO.

2 weeks agogh-141376: Rename _AsyncioDebug to _Py_AsyncioDebug (GH-141391)
Petr Viktorin [Wed, 12 Nov 2025 08:42:56 +0000 (09:42 +0100)] 
gh-141376: Rename _AsyncioDebug to _Py_AsyncioDebug (GH-141391)

2 weeks agogh-75593: Add support of bytes and path-like paths in wave.open() (GH-140951)
Mark Byrne [Wed, 12 Nov 2025 08:20:55 +0000 (09:20 +0100)] 
gh-75593: Add support of bytes and path-like paths in wave.open() (GH-140951)

2 weeks agoGH-116946: revert eliminate the need for the GC in the `_thread.lock` and `_thread...
Kumar Aditya [Wed, 12 Nov 2025 07:21:43 +0000 (12:51 +0530)] 
GH-116946: revert eliminate the need for the GC in the `_thread.lock` and `_thread.RLock`  (#141448)

Revert "GH-116946: eliminate the need for the GC in the `_thread.lock` and `_thread.RLock` (#141268)"

This reverts commit fbebca289d811669fc1980e3a135325b8542a846.

2 weeks agogh-103847: fix cancellation safety of `asyncio.create_subprocess_exec` (#140805)
Kumar Aditya [Wed, 12 Nov 2025 05:17:38 +0000 (10:47 +0530)] 
gh-103847: fix cancellation safety of `asyncio.create_subprocess_exec` (#140805)

2 weeks agoGH-116946: eliminate the need for the GC in the `_thread.lock` and `_thread.RLock...
Sergey Miryanov [Wed, 12 Nov 2025 04:59:48 +0000 (09:59 +0500)] 
GH-116946: eliminate the need for the GC in the `_thread.lock` and `_thread.RLock` (#141268)

2 weeks agoGH-137618: Require Python 3.10 to Python 3.15 for PYTHON_FOR_REGEN (GH-137619)
Adam Turner [Wed, 12 Nov 2025 00:53:21 +0000 (00:53 +0000)] 
GH-137618: Require Python 3.10 to Python 3.15 for PYTHON_FOR_REGEN (GH-137619)

* Require Python 3.11 to Python 3.15 for PYTHON_FOR_REGEN

* NEWS

* keep allowing python 3.10

---------

Co-authored-by: Gregory P. Smith <greg@krypto.org>
2 weeks agogh-137928: remove redundant size validation in multiprocessing.heap (GH-137929)
Alejandro Cabello Jiménez [Wed, 12 Nov 2025 00:36:43 +0000 (01:36 +0100)] 
gh-137928: remove redundant size validation in multiprocessing.heap (GH-137929)

remove redundant size check, malloc does it

---------

Co-authored-by: Gregory P. Smith <greg@krypto.org>
2 weeks agogh-138621: Increase test coverage for csv.DictReader and csv.Sniffer (GH-138622)
Jan-Eric Nitschke [Wed, 12 Nov 2025 00:32:26 +0000 (01:32 +0100)] 
gh-138621: Increase test coverage for csv.DictReader and csv.Sniffer (GH-138622)

* Increase test coverage for csv.DictReader and csv.Sniffer

Previously there were no tests for the DictReader fieldnames
setter, the case where a StopIteration was encountered when trying
to determine the fieldnames from the content or the case where
Sniffer could not find a delimiter.

* Revert whitespace change to comment

* Add a test that csv.Sniffer.has_header checks up to 20 rows

* Replace name and age with letter and offset

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
* Address review comment

---------

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: Gregory P. Smith <68491+gpshead@users.noreply.github.com>
2 weeks agogh-137952: update `csv.Sniffer().has_header()` docs to describe the actual off-by...
Maurycy Pawłowski-Wieroński [Wed, 12 Nov 2025 00:03:14 +0000 (01:03 +0100)] 
gh-137952: update `csv.Sniffer().has_header()` docs to describe the actual off-by-onish behavior (GH-137953)

* checks 21, not 20
* Say "header" instead of "first row" to disambiguate per review.

---------

Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Co-authored-by: Maurycy Pawłowski-Wieroński <maurycy@maurycy.com>
2 weeks agogh-138775: fix handle `python -m base64` stdin correct with EOF signal (GH-138776)
yihong [Tue, 11 Nov 2025 23:47:57 +0000 (07:47 +0800)] 
gh-138775: fix handle `python -m base64` stdin correct with EOF signal (GH-138776)

* fix: handle  stdin correct with EOF single.
* fix: flollow the comments when pipe stdin use buffer
* Apply suggestions from code review
* fix: apply review comments in Lib/base64.py
* fix: address comments
* Reword comment and NEWS entry.

---------

Signed-off-by: yihong0618 <zouzou0208@gmail.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
Co-authored-by: Gregory P. Smith <greg@krypto.org>
2 weeks agogh-120950: Fix overflow in math.log() with large int-like argument (GH-121011)
Serhiy Storchaka [Tue, 11 Nov 2025 22:27:13 +0000 (00:27 +0200)] 
gh-120950: Fix overflow in math.log() with large int-like argument (GH-121011)

Handling of arbitrary large int-like argument is now consistent with
handling arbitrary large int arguments.

2 weeks agogh-139462: Make the ProcessPoolExecutor BrokenProcessPool exception report which...
J Berg [Tue, 11 Nov 2025 22:09:58 +0000 (22:09 +0000)] 
gh-139462: Make the ProcessPoolExecutor BrokenProcessPool exception report which child process terminated (GH-139486)

Report which process terminated as cause of BPE

2 weeks agogh-132686: Add parameters inherit_class_doc and fallback_to_class_doc for inspect...
Serhiy Storchaka [Tue, 11 Nov 2025 22:01:25 +0000 (00:01 +0200)] 
gh-132686: Add parameters inherit_class_doc and fallback_to_class_doc for inspect.getdoc() (GH-132691)

2 weeks agoGH-139596: Cease caching config.cache & ccache in GH Actions (GH-139623)
Adam Turner [Tue, 11 Nov 2025 21:51:22 +0000 (21:51 +0000)] 
GH-139596: Cease caching config.cache & ccache in GH Actions (GH-139623)

* Cease caching config.cache in GH Actions\
* Remove ccache action

2 weeks agogh-141314: Fix TextIOWrapper.tell() assertion failure with standalone carriage return...
Mohsin Mehmood [Tue, 11 Nov 2025 21:49:54 +0000 (02:49 +0500)] 
gh-141314: Fix TextIOWrapper.tell() assertion failure with standalone carriage return (GH-141331)

The assertion was checking wrong variable (skip_back vs skip_bytes).

2 weeks agogh-141004: Document `PyBytes_Repr` and `PyBytes_DecodeEscape` (GH-141407)
Peter Bierma [Tue, 11 Nov 2025 20:32:54 +0000 (15:32 -0500)] 
gh-141004: Document `PyBytes_Repr` and `PyBytes_DecodeEscape` (GH-141407)

Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
2 weeks agogh-116738: use `PyMutex` in `lzma` module (#140711)
Alper [Tue, 11 Nov 2025 20:31:55 +0000 (12:31 -0800)] 
gh-116738: use `PyMutex` in `lzma` module (#140711)

Co-authored-by: Kumar Aditya <kumaraditya@python.org>
2 weeks agogh-141004: Document `PyFile_OpenCode` and `PyFile_OpenCodeObject` (GH-141413)
Peter Bierma [Tue, 11 Nov 2025 20:31:29 +0000 (15:31 -0500)] 
gh-141004: Document `PyFile_OpenCode` and `PyFile_OpenCodeObject` (GH-141413)

Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
2 weeks agogh-140476: optimize `PySet_Add` for `frozenset` in free-threading (#140440)
Alper [Tue, 11 Nov 2025 20:27:21 +0000 (12:27 -0800)] 
gh-140476: optimize `PySet_Add` for `frozenset` in free-threading (#140440)

Avoids critical section in `PySet_Add` when adding items to newly created frozensets.

Co-authored-by: Kumar Aditya <kumaraditya@python.org>
2 weeks agogh-137339: Clarify host and port parameter behavior in smtplib.SMTP{_SSL} initializat...
Aniket [Tue, 11 Nov 2025 20:25:26 +0000 (01:55 +0530)] 
gh-137339: Clarify host and port parameter behavior in smtplib.SMTP{_SSL} initialization (#137340)

This also documents the previously undocumented default_port parameter.

Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
2 weeks agogh-141367: Use actual SPECIALIZATION_THRESHOLD value in specialization related test...
Mikhail Efimov [Tue, 11 Nov 2025 20:16:46 +0000 (23:16 +0300)] 
gh-141367: Use actual SPECIALIZATION_THRESHOLD value in specialization related test (GH-141417)

2 weeks agoAdd documentation for Python install manager's install_dir, global_dir and download_d...
Steve Dower [Tue, 11 Nov 2025 20:02:49 +0000 (20:02 +0000)] 
Add documentation for Python install manager's install_dir, global_dir and download_dir (GH-140223)