cpython/Python
Pablo Galindo Salgado 8cda6ae2f1
gh-151613: Fix remote debugging frame cache ABA (#151614)
The remote debugging frame cache previously used only the last_profiled_frame address as its cache anchor. If a frame returned and a later frame reused the same _PyInterpreterFrame address, the profiler could accept a stale cache entry and splice parent frames from a different call chain into the current stack.

This adds a last_profiled_frame_seq counter next to last_profiled_frame, increments it when the anchor advances, stores it in frame cache entries, and validates cache hits against both the frame address and the sequence. Cache miss walks now copy stack chunks before storing new cache entries so stored continuations come from a stable snapshot. The new regression test exercises alternating call chains and checks that cached stacks never contain frames from both branches.
2026-06-27 16:56:31 +00:00
..
clinic gh-150285: Fix too long docstrings in Argument Clinic code (GH-150338) 2026-05-24 16:16:12 +03:00
frozen_modules gh-97669: Create Tools/build/ directory (#97963) 2022-10-17 12:01:00 +02:00
_contextvars.c gh-128341: Use _Py_ABI_SLOT in stdlib modules (#145770) 2026-03-24 17:47:55 +00:00
_warnings.c gh-143231: Add the module attribute to warnings.WarningMessage (GH-149298) 2026-05-03 09:35:47 +00:00
asdl.c
asm_trampoline_aarch64.S gh-149800: Split perf trampoline assembly into per-architecture files (#149894) 2026-05-23 08:03:52 -04:00
asm_trampoline_riscv64.S gh-149800: Split perf trampoline assembly into per-architecture files (#149894) 2026-05-23 08:03:52 -04:00
asm_trampoline_x86_64.S gh-149800: Split perf trampoline assembly into per-architecture files (#149894) 2026-05-23 08:03:52 -04:00
assemble.c gh-151112: Fix double free in assemble_init when out of memory (#151142) 2026-06-09 20:45:54 +01:00
ast.c gh-143055: Implementation of PEP 798 (#143056) 2026-01-30 20:37:52 -08:00
ast_preprocess.c gh-143055: Implementation of PEP 798 (#143056) 2026-01-30 20:37:52 -08:00
ast_unparse.c gh-143055: Fix crash in AST unparser when unparsing dict comprehension unpacking (#145556) 2026-03-09 10:37:23 -07:00
bltinmodule.c gh-151510: Fix __lazy_import__ without frame (#151511) 2026-06-17 14:09:51 -04:00
bootstrap_hash.c GH-131238: Core header refactor (GH-131250) 2025-03-17 09:19:04 +00:00
brc.c Fix typos in documentation and comments (#119763) 2024-06-04 10:22:22 +00:00
bytecodes.c gh-152238: Revert gh-150490 and gh-152200. (gh-152232) 2026-06-26 11:20:41 -07:00
ceval.c GH-150516: Reduce the work done to spill and reload the stack around calls (GH-151587) 2026-06-18 15:14:30 +01:00
ceval.h gh-142186: Allow all PEP-669 events to be per-code object and disableable (GH-146182) 2026-04-22 09:08:23 +01:00
ceval_gil.c gh-144748: Make PyErr_CheckSignals raise the exception scheduled by PyThreadState_SetAsyncExc (GH-145178) 2026-03-02 11:47:32 +01:00
ceval_macros.h GH-150516: Reduce the work done to spill and reload the stack around calls (GH-151587) 2026-06-18 15:14:30 +01:00
codecs.c gh-151253: Dump the Python path configuration on _PyCodec_InitRegistry() failure (#151250) 2026-06-10 18:43:38 +02:00
codegen.c gh-151665: Fix inspect.signature() on type alias and type parameter evaluators (#151837) 2026-06-21 15:08:01 -07:00
compile.c gh-151112: Fix crash in compiler_mod() when entering the current compilation unit fails (#151234) 2026-06-11 15:52:11 +01:00
condvar.h gh-104530: Enable native Win32 condition variables by default (GH-104531) 2024-02-02 13:50:51 +00:00
config_common.h gh-76785: Add PyInterpreterConfig Helpers (gh-117170) 2024-04-02 20:35:52 +00:00
context.c gh-151773: Fix NULL dereference in PyContextVar_Set (#151836) 2026-06-23 17:15:15 +03:00
critical_section.c gh-150902: Optimize PyCriticalSection2 to skip locking the same locks held by the current CS2 2026-06-16 16:56:37 +00:00
crossinterp.c gh-151842: Fix crash upon OOM in _interpreters.capture_exception (GH-151843) 2026-06-23 16:31:47 -04:00
crossinterp_data_lookup.h gh-147960: Fix memory leak in crossinterp _tuple_shared() on alloc failure (#147961) 2026-04-01 18:34:55 +02:00
crossinterp_exceptions.h gh-132775: Clean Up Cross-Interpreter Error Handling (gh-135369) 2025-06-13 16:45:21 -06:00
dtoa.c gh-145633: Remove support for ancient ARM platforms with mixed-endian doubles (#145634) 2026-03-11 12:39:24 +01:00
dup2.c gh-108765: Python.h no longer includes <unistd.h> (#108783) 2023-09-02 16:50:18 +02:00
dynamic_annotations.c
dynload_hpux.c gh-88402: Add new sysconfig variables on Windows (GH-110049) 2023-10-04 22:50:29 +00:00
dynload_shlib.c gh-148758: Fix dynamic loading file extensions for Cygwin (#148759) 2026-05-13 21:50:24 +00:00
dynload_stub.c gh-88402: Add new sysconfig variables on Windows (GH-110049) 2023-10-04 22:50:29 +00:00
dynload_win.c gh-148690: Build Windows freethreaded binaries into separate directory and include python3t.dll on GIL-enabled (GH-149218) 2026-05-04 17:45:08 +01:00
emscripten_signal.c GH-108614: Unbreak emscripten build (GH-109132) 2023-09-08 17:54:45 +01:00
emscripten_syscalls.c gh-145177: Bump Emscripten to 6.0.0 (#151611) 2026-06-19 07:29:33 +08:00
emscripten_trampoline.c gh-145037: Fix Emscripten trampoline with emcc >= 4.0.19 (#145038) 2026-02-26 06:21:05 +08:00
emscripten_trampoline_inner.c gh-128627: Use __builtin_wasm_test_function_pointer_signature for Emscripten trampoline (#137470) 2025-09-17 15:33:55 +01:00
errors.c gh-146480: Override the exception in _PyErr_SetKeyError() (#146486) 2026-03-27 11:20:19 +00:00
executor_cases.c.h gh-152238: Revert gh-150490 and gh-152200. (gh-152232) 2026-06-26 11:20:41 -07:00
fileutils.c gh-42400: Fix buffer overflow in _Py_wrealpath() for very long paths (#141529) 2025-11-18 17:34:58 +01:00
flowgraph.c gh-151112: Move an assert that may fail in cfg_builder_check (#151153) 2026-06-11 10:16:27 +01:00
frame.c gh-144446: Fix some frame object thread-safety issues (gh-144479) 2026-02-06 09:43:36 -05:00
frozen.c GH-145278: freeze encodings (partially) and linecache (#148347) 2026-04-14 21:01:23 +01:00
frozenmain.c Use PyConfig_Get() in frozenmain.c (#137421) 2025-08-06 14:33:28 +02:00
future.c gh-126139: Improve error message location for future statement with unknown feature (#126140) 2024-10-29 23:57:59 +00:00
gc.c gh-146527: Fix memory leak in _PyGC_Fini() (#150969) 2026-06-05 13:43:05 +00:00
gc_free_threading.c gh-148937: revert process RSS based GC deferral (#149475) 2026-05-07 14:32:14 +03:00
gc_gil.c gh-100240: Use a consistent implementation for freelists (#121934) 2024-07-22 12:08:27 -04:00
generated_cases.c.h gh-152238: Revert gh-150490 and gh-152200. (gh-152232) 2026-06-26 11:20:41 -07:00
getargs.c gh-146615: Fix format specifiers in Python/ directory (GH-146619) 2026-03-31 10:59:17 +03:00
getcompiler.c gh-141341: Rename COMPILER macro to _Py_COMPILER on Windows (#141342) 2025-11-10 15:50:51 +01:00
getcopyright.c gh-126133: Only use start year in PSF copyright, remove end years (#126236) 2024-11-12 15:59:19 +02:00
getopt.c GH-133336: Remove reserved `-J` flag for Jython (#133444) 2025-05-05 15:09:19 +00:00
getplatform.c
getversion.c gh-119132: Remove "experimental" tag from the CPython free-threading. (gh-135550) 2025-06-16 23:32:52 +09:00
hamt.c gh-150178: Fix refcount leaks in hamt allocation failure paths (#150179) 2026-05-23 14:03:40 +05:30
hashtable.c gh-111545: Add Py_HashPointer() function (#112096) 2023-12-06 15:09:22 +01:00
import.c gh-139227: Remove unused _PyRuntime.imports.pkgcontext (#151490) 2026-06-15 10:23:04 +00:00
importdl.c gh-140011: Delete importdl assertion that prevents importing embedded modules from packages (GH-141605) 2025-11-26 14:12:49 +01:00
index_pool.c gh-91048: Refactor and optimize remote debugging module (#134652) 2025-05-25 20:19:29 +00:00
initconfig.c gh-151218: Replace sys.flags in PyConfig_Set() (#151402) 2026-06-16 16:17:33 +00:00
instruction_sequence.c GH-143493: Conform to spec for generator expressions while supporting virtual iterators (GH-143569) 2026-01-16 09:11:58 +00:00
instrumentation.c gh-150379: fix ref leak in C API monitoring events (#150381) 2026-05-25 16:12:33 +05:30
interpconfig.c gh-146615: Fix format specifiers in Python/ directory (GH-146619) 2026-03-31 10:59:17 +03:00
intrinsics.c gh-150027: Avoid copying during construction of frozenset objects (GH-150028) 2026-05-19 13:57:37 -04:00
jit.c GH-148960: Reduce the size of the debug stencils to less than half. (GH-150551) 2026-06-01 17:56:16 +01:00
jit_publish.c GH-126910: Add GNU backtrace support for unwinding JIT frames (#149104) 2026-05-05 09:29:07 +01:00
jit_unwind.c gh-139808: Add branch protections for aarch64 in asm_trampoline.S (#130864) 2026-05-12 15:42:44 +00:00
legacy_tracing.c gh-148037: remove critical section from PyCode_Addr2Line (#148103) 2026-04-10 17:58:17 +05:30
lock.c gh-148820: Fix _PyRawMutex use-after-free on spurious semaphore wakeup (gh-148852) 2026-04-22 14:31:19 -04:00
marshal.c gh-150285: Fix too long docstrings in Argument Clinic code (GH-150338) 2026-05-24 16:16:12 +03:00
modsupport.c gh-146636: Py_mod_abi mandatory for modules created from slots array (GH-146855) 2026-04-02 13:54:21 +02:00
mysnprintf.c Add a warning message about PyOS_snprintf (#95993) 2022-10-07 11:49:53 -07:00
mystrtoul.c gh-108765: Python.h no longer includes <ctype.h> (#108831) 2023-09-03 18:54:27 +02:00
object_stack.c gh-100240: Use a consistent implementation for freelists (#121934) 2024-07-22 12:08:27 -04:00
opcode_targets.h GH-143732: SEND specialization (GH-148963) 2026-05-05 15:19:16 +01:00
optimizer.c gh-149358: Generating JIT recorder transformers and stabilizing family layouts (GH-149359) 2026-05-21 17:06:52 +01:00
optimizer_analysis.c gh-145235: Make dict watcher API thread-safe for free-threaded builds (gh-145233) 2026-05-11 11:39:55 -04:00
optimizer_bytecodes.c gh-148871: make LOAD_COMMON_CONSTANT use immortal stackref borrows (GH-149625) 2026-05-28 12:27:37 +01:00
optimizer_cases.c.h gh-152238: Revert gh-150490 and gh-152200. (gh-152232) 2026-06-26 11:20:41 -07:00
optimizer_symbols.c gh-146261: JIT: protect against function version changes (#146300) 2026-04-13 02:23:47 +08:00
parking_lot.c gh-148820: Fix _PyRawMutex use-after-free on spurious semaphore wakeup (gh-148852) 2026-04-22 14:31:19 -04:00
pathconfig.c gh-133644: Remove deprecated Python initialization getter functions (#133661) 2025-05-09 11:39:23 +00:00
perf_jit_trampoline.c gh-150723: Fix perf jitdump files on macOS (#150728) 2026-06-03 01:15:34 +01:00
perf_trampoline.c gh-149156: Fix perf trampoline crash after fork (#150347) 2026-05-25 13:45:58 +01:00
preconfig.c gh-146302: make Py_IsInitialized() thread-safe and reflect true init completion (GH-146303) 2026-04-11 21:54:23 +00:00
pyarena.c Chore: Fix typo in pyarena.c (#126527) 2024-11-07 16:37:41 +01:00
pyctype.c
pyfpe.c
pyhash.c gh-141226: Deprecate PEP-456 support for embedders (#141287) 2026-02-21 12:42:13 +01:00
pylifecycle.c gh-151218: Replace sys.flags in PyConfig_Set() (#151402) 2026-06-16 16:17:33 +00:00
pymath.c
pystate.c gh-151613: Fix remote debugging frame cache ABA (#151614) 2026-06-27 16:56:31 +00:00
pystats.c gh-146073: Add fitness/exit quality mechanism for JIT trace frontend (GH-148089) 2026-04-24 10:37:01 +01:00
pystrcmp.c gh-108767: Replace ctype.h functions with pyctype.h functions (#108772) 2023-09-01 18:36:53 +02:00
pystrhex.c gh-149685: Use the _Py prefix for private C macros (GH-149686) 2026-05-13 19:14:05 +02:00
pystrtod.c gh-141004: soft-deprecate Py_INFINITY macro (#141033) 2025-11-12 13:44:49 +01:00
Python-ast.c bpo-38131: Improve messages when generating AST nodes from objects with wrong field values (GH-17715) 2026-06-04 10:58:51 +00:00
Python-tokenize.c gh-128341: Use _Py_ABI_SLOT in stdlib modules (#145770) 2026-03-24 17:47:55 +00:00
pythonrun.c gh-146615: Fix format specifiers in Python/ directory (GH-146619) 2026-03-31 10:59:17 +03:00
pytime.c gh-145731: Fix negative timestamp during DST on Windows (GH-145728) 2026-03-10 09:45:07 +01:00
qsbr.c gh-144438: Fix false sharing between QSBR and tlbc_index (gh-144554) 2026-02-17 11:12:25 -05:00
README
record_functions.c.h gh-149358: Generating JIT recorder transformers and stabilizing family layouts (GH-149359) 2026-05-21 17:06:52 +01:00
remote_debug.h gh-151029: Fix sys.remote_exec() unable to find writable memory when libpython replaced on disk (#151032) 2026-06-27 16:21:15 +00:00
remote_debugging.c gh-138122: Implement frame caching in RemoteUnwinder to reduce memory reads (#142137) 2025-12-06 22:37:34 +00:00
slots.c gh-149044: Implement PEP 820 – PySlot: Unified slot system for the C API (GH-149055) 2026-05-05 09:18:04 +02:00
slots.toml gh-149044: Implement PEP 820 – PySlot: Unified slot system for the C API (GH-149055) 2026-05-05 09:18:04 +02:00
slots_generated.c gh-149044: Implement PEP 820 – PySlot: Unified slot system for the C API (GH-149055) 2026-05-05 09:18:04 +02:00
specialize.c gh-152238: Revert gh-150490 and gh-152200. (gh-152232) 2026-06-26 11:20:41 -07:00
stackrefs.c gh-131527: Stackref debug borrow checker (#140599) 2025-11-05 11:12:56 -08:00
stdlib_module_names.h gh-81313: Add the math.integer module (PEP-791) (GH-133909) 2025-10-31 16:13:43 +02:00
structmember.c gh-146270: Fix PyMember_SetOne(..., NULL) not being atomic (gh-148800) 2026-05-06 09:50:24 -04:00
suggestions.c GH-131238: Core header refactor (GH-131250) 2025-03-17 09:19:04 +00:00
symtable.c gh-150700: Fix class-scope inline comprehensions when nested scopes reference __class__ and friends (#150735) 2026-06-09 15:22:13 -07:00
sysmodule.c gh-151218: Replace sys.flags in PyConfig_Set() (#151402) 2026-06-16 16:17:33 +00:00
thread.c gh-134745: Use "pymutex" for sys.thread_info on Windows (#141140) 2025-11-06 16:10:39 +01:00
thread_nt.h gh-134745: Change PyThread_allocate_lock() implementation to PyMutex (#134747) 2025-05-30 10:15:47 +00:00
thread_pthread.h gh-137884: Added threading.get_native_id() on Illumos/Solaris (GH-137927) 2025-08-20 17:10:44 +00:00
thread_pthread_stubs.h gh-125161: return non zero value in pthread_self on wasi (#125303) 2024-10-13 20:59:41 +05:30
tier2_engine.md Docs: fix spelling of the word 'transferring' (#116641) 2024-03-13 23:53:32 +01:00
traceback.c gh-145559: Add PyUnstable_DumpTraceback() and PyUnstable_DumpTracebackThreads() (#148145) 2026-05-06 15:01:12 +00:00
tracemalloc.c gh-144763: Don't detach the GIL in tracemalloc (#144779) 2026-02-18 15:57:48 +00:00
uniqueid.c gh-128923: Use zero to indicate unassigned unique id (#128925) 2025-01-17 16:42:27 +01:00
vm-state.md gh-133079: Remove Py_C_RECURSION_LIMIT & PyThreadState.c_recursion_remaining (GH-133080) 2025-04-29 12:56:20 +02:00

Miscellaneous source files for the main Python shared library