Hai Zhu
198b04b75f
gh-146073: Add fitness/exit quality mechanism for JIT trace frontend (GH-147966)
2026-04-03 23:54:30 +08:00
Pieter Eendebak
48317feec8
gh-146640: Optimize int operations by mutating uniquely-referenced operands in place (JIT only) (GH-146641)
2026-04-03 23:23:04 +08:00
Petr Viktorin
9b08f8c56f
GH-126910: Revert "Make _Py_get_machine_stack_pointer return the stack pointer ( #147945 )" (GH-147994)
...
Revert "GH-126910: Make `_Py_get_machine_stack_pointer` return the stack pointer (#147945 )"
This reverts commit 255026d9ee ,
which broke a tier-1 buildbot.
2026-04-02 16:53:09 +02:00
Petr Viktorin
a86963b3e2
gh-146636: Py_mod_abi mandatory for modules created from slots array (GH-146855)
2026-04-02 13:54:21 +02:00
Yongtao Huang
4810beddbf
gh-147960: Fix memory leak in crossinterp _tuple_shared() on alloc failure ( #147961 )
2026-04-01 18:34:55 +02:00
Mark Shannon
255026d9ee
GH-126910: Make _Py_get_machine_stack_pointer return the stack pointer ( #147945 )
...
* Make _Py_get_machine_stack_pointer return the stack pointer (or close to it), not the frame pointer
* Make ``_Py_ReachedRecursionLimit`` inline again
* Remove ``_Py_MakeRecCheck`` relacing its use with ``_Py_ReachedRecursionLimit``
* Move stack swtiching check into ``_Py_CheckRecursiveCall``
2026-04-01 17:15:13 +01:00
Petr Viktorin
2452324001
gh-146636: PEP 803: add Py_TARGET_ABI3T and .abi3t.so extension (GH-146637)
...
- Add Py_TARGET_ABI3T macro.
- Add ".abi3t.so" to importlib EXTENSION_SUFFIXES.
- Remove ".abi3.so" from importlib EXTENSION_SUFFIXES on Free Threading.
- Adjust tests
This is part of the implementation for PEP-803.
Detailed documentation to come later.
Co-authored-by: Nathan Goldbaum <nathan.goldbaum@gmail.com>
2026-04-01 16:14:59 +02:00
Serhiy Storchaka
473d2a35ce
gh-147944: Increase range of bytes_per_sep (GH-147946)
...
Accepted range for the bytes_per_sep argument of bytes.hex(),
bytearray.hex(), memoryview.hex(), and binascii.b2a_hex()
is now increased, so passing sys.maxsize and -sys.maxsize is now
valid.
2026-04-01 08:33:30 +00:00
sunmy2019
dcb260eff2
gh-146615: Fix format specifiers in Python/ directory (GH-146619)
2026-03-31 10:59:17 +03:00
Brandon
ca95e979d6
gh-146442: Fix various bugs in compiler pipeline ( #146443 )
...
Fix null derefs, missing decrefs, and unchecked returns from bug report.
2026-03-30 22:04:04 +02:00
Kumar Aditya
8e9d21c64b
gh-146558: JIT optimize dict access for objects with known hash ( #146559 )
2026-03-30 14:23:29 +00:00
Victor Stinner
adf2c47911
gh-126835: Fix _PY_IS_SMALL_INT() macro ( #146631 )
2026-03-30 12:48:18 +00:00
Serhiy Storchaka
6932c3ee6a
gh-145876: Do not mask KeyErrors raised during dictionary unpacking in call (GH-146472)
...
KeyErrors raised in keys() or __getitem__() during dictionary unpacking
in call (func(**mymapping)) are no longer masked by TypeError.
2026-03-29 11:58:52 +03:00
Sergey Miryanov
5bf3a31bc2
GH-146527: Add more data to GC statistics and add it to PyDebugOffsets ( #146532 )
2026-03-28 18:52:10 +00:00
Donghee Na
5992238986
gh-146381: Constant-fold frozendict subscript lookups via REPLACE_OPCODE_IF_EVALUATES_PURE (gh-146490)
2026-03-28 09:48:53 +09:00
Bartosz Sławecki
a5b9d60a69
gh-145059: Record lazy modules without submodules in sys.lazy_modules ( #146081 )
...
Record simple lazy modules as well
2026-03-27 14:37:11 -07:00
Ken Jin
1384f025f5
gh-126910: Verify that JIT stencils preserve frame pointer (GH-146524)
2026-03-28 03:38:54 +08:00
Diego Russo
b60b9261b5
GH-126910: avoid reading the FP for getting the SP (GH-146521)
2026-03-28 01:52:48 +08:00
Neko Asakura
a492d9ff74
gh-145866: Convert LIST_EXTEND to leave its inputs on the stack to be cleaned up by _POP_TOP be cleaned up by _POP_TOP (GH-146383)
2026-03-28 01:04:17 +08:00
Brandon
c8ee196030
gh-146388: Add null check for sym_new(ctx) in make_bottom (GH-146389)
2026-03-27 22:50:29 +08:00
Victor Stinner
d4153a9f76
gh-146480: Override the exception in _PyErr_SetKeyError() ( #146486 )
...
If _PyErr_SetKeyError() is called with an exception set, it now
replaces the current exception with KeyError (as expected), instead
of setting a SystemError or failing with a fatal error (in debug
mode).
2026-03-27 11:20:19 +00:00
Kumar Aditya
bfdaa3c565
gh-131798: JIT: split call method and call builtin opcodes into smaller uops ( #146463 )
2026-03-26 14:20:57 +00:00
Serhiy Storchaka
0e543055b0
gh-145876: Do not mask AttributeErrors raised during dictionary unpacking (GH-145906)
...
AttributeErrors raised in keys() or __getitem__() during
dictionary unpacking ({**mymapping} or func(**mymapping)) are
no longer masked by TypeError.
2026-03-26 13:48:57 +00:00
Sacul
1516c26399
gh-145866: Convert DICT_UPDATE to leave its inputs on the stack to be cleaned up by _POP_TOP (GH-146190)
2026-03-26 19:38:44 +08:00
Kumar Aditya
fc1f6b176e
gh-GH-131798: optimize jit attribute loads on immutable types ( #146449 )
2026-03-26 10:12:10 +00:00
Kevin Huai
f5364ae750
gh-145866: Convert _CALL_INTRINSIC_2 to leave its inputs on the stack to be cleaned up by _POP_TOP (GH-146262)
2026-03-26 17:41:07 +08:00
Wulian233
9343518c6f
gh-146244: Fix initconfig.c SET_ITEM macro leaks dict on expression failure (GH-146246)
2026-03-25 19:09:56 +00:00
Brandon
04bd54305a
gh-146386: fix missing va_end in _abiinfo_raise in modsupport.c ( #146387 )
2026-03-25 18:24:08 +05:30
Hugo van Kemenade
d0e66ef1c0
gh-146369: Ensure PYTHON_LAZY_IMPORTS=none overrides __lazy_modules__ ( #146371 )
2026-03-25 11:08:45 +00:00
Brandon
08f6b33bf3
gh-146355: Fix main_module ref leak in _PyRun_SimpleStringFlagsWithName ( #146356 )
2026-03-25 07:36:59 +01:00
Karolina Surma
1887a95f51
gh-128341: Use _Py_ABI_SLOT in stdlib modules ( #145770 )
...
Rename from _Py_INTERNAL_ABI_SLOT to _Py_ABI_SLOT
and define the macro using _PyABIInfo_DEFAULT.
Use the ABI slot in stdlib extension modules to enable running
a check of ABI version compatibility.
_tkinter, _tracemalloc and readline don't use the slots, hence they need
explicit handling.
Co-authored-by: Victor Stinner <vstinner@python.org>
2026-03-24 17:47:55 +00:00
Pieter Eendebak
951675c18a
gh-146306: JIT: Optimize float operations by mutating uniquely-referenced operands in place (GH-146307)
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 21:16:02 +08:00
Neko Asakura
6d73bc2267
gh-145866: Convert DICT_MERGE to leave its inputs on the stack to be cleaned up by _POP_TOP (GH-146329)
2026-03-24 18:31:41 +08:00
Chris Eibl
306c556fdb
gh-144319: obtain SeLockMemoryPrivilege on Windows ( #144928 )
2026-03-23 23:00:26 +00:00
Hood Chatham
7dc2f52a6f
gh-146197: Include a bit more information in sys._emscripten_info.runtime ( #146346 )
2026-03-23 21:57:23 +00:00
Daniele Parmeggiani
daa159f98b
gh-135871: Reload lock internal state while spinning in PyMutex_LockTimed (gh-146064)
...
Add atomic loads in the slow path of PyMutex to increase the number
of lock acquisitions per second that threads can make on a shared mutex.
2026-03-23 16:55:06 -04:00
reiden
e36f8db7e5
gh-143414: Implement unique reference tracking for JIT, optimize unpacking of such tuples (GH-144300)
...
Co-authored-by: Ken Jin <kenjin4096@gmail.com>
2026-03-23 00:57:23 +08:00
Sacul
1ceb1fb284
gh-146261: Fix bug in _Py_uop_sym_set_func_version (GH-146291)
2026-03-23 00:11:37 +08:00
Mark Shannon
879c85f6e4
GH-145667: Merge GET_ITER and GET_YIELD_FROM_ITER (GH-146120)
...
* Merge GET_ITER and GET_YIELD_FROM_ITER. Modify SEND to make it a bit more like FOR_ITER
2026-03-21 10:48:13 +00:00
Ken Jin
acfb4528de
gh-146099: Optimize _GUARD_CODE_VERSION+IP via function version symbols (GH-146101)
2026-03-20 12:26:41 +00:00
Mingzhu Yan
98977ca433
gh-131798: JIT: optimize _LOAD_COMMON_CONSTANT (GH-146104)
2026-03-20 05:55:22 +08:00
Sacul
0d37e423d5
gh-145866: Convert SET_UPDATE to leave its inputs on the stack to be cleaned up by _POP_TOP (GH-145979)
2026-03-19 19:17:58 +08:00
Victor Stinner
e1e4852133
gh-146092: Handle _PyFrame_GetFrameObject() failures properly ( #146124 )
...
* Fix _PyFrame_GetLocals() and _PyFrame_GetLocals() error handling.
* _PyEval_ExceptionGroupMatch() now fails on _PyFrame_GetLocals()
error.
2026-03-18 18:27:52 +01:00
Hai Zhu
6fe91a9e80
gh-144888: JIT executor bloom filter wide-type optimization and function Inlining (GH-146114)
2026-03-19 00:58:14 +08:00
Victor Stinner
1e4ed93210
gh-146092: Fix error handling in _BINARY_OP_ADD_UNICODE opcode ( #146117 )
...
Fix also error handling in _BINARY_OP_ADD_FLOAT,
_BINARY_OP_SUBTRACT_FLOAT and _BINARY_OP_MULTIPLY_FLOAT opcodes.
PyStackRef_FromPyObjectSteal() must not be called with a NULL
pointer.
2026-03-18 17:23:05 +01:00
Sam Gross
e0f7c1097e
gh-145779: Improve classmethod/staticmethod scaling in free-threaded build ( #145826 )
...
Add special cases for classmethod and staticmethod descriptors in
_PyObject_GetMethodStackRef() to avoid calling tp_descr_get, which
avoids reference count contention on the bound method and underlying
callable. This improves scaling when calling classmethods and
staticmethods from multiple threads.
Also refactor method_vectorcall in classobject.c into a new _PyObject_VectorcallPrepend() helper so that it can be used by
PyObject_VectorcallMethod as well.
2026-03-17 14:24:44 -04:00
Ken Jin
966fc81531
gh-146058: Fix _GUARD_CODE_VERSION_* (GH-146060)
2026-03-18 01:19:44 +08:00
Sacul
1efd9939c8
gh-131798: Optimize _ITER_CHECK_RANGE and _ITER_CHECK_LIST in the JIT (GH-144583)
2026-03-17 22:07:17 +08:00
Ken Jin
3d0824aef2
gh-127958: Trace from RESUME in the JIT (GH-145905)
2026-03-17 00:18:59 +08:00
Hai Zhu
81ef1b7317
gh-144888: Replace bloom filter linked lists with continuous arrays to optimize executor invalidating performance (GH-145873)
2026-03-16 15:58:18 +00:00