cpython/Python
Richard Hansen 843d28f59d
gh-124872: Replace enter/exit events with "switched" (#124776)
Users want to know when the current context switches to a different
context object.  Right now this happens when and only when a context
is entered or exited, so the enter and exit events are synonymous with
"switched".  However, if the changes proposed for gh-99633 are
implemented, the current context will also switch for reasons other
than context enter or exit.  Since users actually care about context
switches and not enter or exit, replace the enter and exit events with
a single switched event.

The former exit event was emitted just before exiting the context.
The new switched event is emitted after the context is exited to match
the semantics users expect of an event with a past-tense name.  If
users need the ability to clean up before the switch takes effect,
another event type can be added in the future.  It is not added here
because YAGNI.

I skipped 0 in the enum as a matter of practice.  Skipping 0 makes it
easier to troubleshoot when code forgets to set zeroed memory, and it
aligns with best practices for other tools (e.g.,
https://protobuf.dev/programming-guides/dos-donts/#unspecified-enum).
2024-10-14 12:28:41 -07:00
..
clinic gh-116750: Add clear_tool_id function to unregister events and callbacks (#124568) 2024-10-01 13:32:55 -04:00
frozen_modules gh-97669: Create Tools/build/ directory (#97963) 2022-10-17 12:01:00 +02:00
_warnings.c gh-121163: Add "all" as an valid alias for "always" in warnings.simplefilter() (#121164) 2024-06-30 19:48:00 +02:00
asdl.c bpo-43244: Remove ast.h, asdl.h, Python-ast.h headers (GH-24933) 2021-03-23 20:47:40 +01:00
asm_trampoline.S gh-120400 :Support Linux perf profile to see Python calls on RISC-V architecture (#120089) 2024-06-12 14:24:46 +01:00
assemble.c gh-121040: Use __attribute__((fallthrough)) (#121044) 2024-06-27 09:58:44 +00:00
ast.c gh-122313: Clean up deep recursion guarding code in the compiler (GH-122640) 2024-08-03 12:45:45 +03:00
ast_opt.c gh-123497: New limit for Python integers on 64-bit platforms (GH-123724) 2024-09-29 10:40:20 +03:00
ast_unparse.c gh-125268: Use static string for "1e309" in AST (#125272) 2024-10-10 16:21:29 -04:00
bltinmodule.c gh-123271: Make builtin zip method safe under free-threading (#123272) 2024-08-27 15:22:43 -04:00
bootstrap_hash.c gh-121199: Use _Py__has_attribute() in timemodule.c (#121203) 2024-07-01 08:49:33 +00:00
brc.c Fix typos in documentation and comments (#119763) 2024-06-04 10:22:22 +00:00
bytecodes.c GH-125323: Convert DECREF_INPUTS_AND_REUSE_FLOAT into a function that takes PyStackRefs. (GH-125439) 2024-10-14 14:18:57 +01:00
ceval.c gh-115754: Use Py_GetConstant(Py_CONSTANT_EMPTY_STR) (#125194) 2024-10-09 17:15:23 +02:00
ceval_gil.c gh-87135: Hang non-main threads that attempt to acquire the GIL during finalization (GH-105805) 2024-10-02 09:17:49 -07:00
ceval_macros.h GH-125323: Convert DECREF_INPUTS_AND_REUSE_FLOAT into a function that takes PyStackRefs. (GH-125439) 2024-10-14 14:18:57 +01:00
codecs.c gh-115754: Use Py_GetConstant(Py_CONSTANT_EMPTY_STR) (#125194) 2024-10-09 17:15:23 +02:00
codegen.c gh-125063: Emit slices as constants in the bytecode compiler (#125064) 2024-10-08 13:18:39 -04:00
compile.c gh-121404: typo fix in compile.c: MATADATA -> METADATA (#125101) 2024-10-08 12:18:28 +00: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-124872: Replace enter/exit events with "switched" (#124776) 2024-10-14 12:28:41 -07:00
critical_section.c gh-119344: Make critical section API public (#119353) 2024-06-21 15:50:18 -04:00
crossinterp.c Fix typos in docs, error messages and comments (#122502) 2024-08-01 00:26:09 +00:00
crossinterp_data_lookup.h gh-76785: Improved Subinterpreters Compatibility with 3.12 (gh-115424) 2024-02-13 14:56:49 -07:00
crossinterp_exceptions.h gh-117398: Use Per-Interpreter State for the _datetime Static Types (gh-119929) 2024-06-03 17:09:18 -06:00
dtoa.c gh-121040: Use __attribute__((fallthrough)) (#121044) 2024-06-27 09:58:44 +00:00
dup2.c gh-108765: Python.h no longer includes <unistd.h> (#108783) 2023-09-02 16:50:18 +02:00
dynamic_annotations.c bpo-32241: Add the const qualifire to declarations of umodifiable strings. (#4748) 2017-12-12 13:55:04 +02:00
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-88402: Add new sysconfig variables on Windows (GH-110049) 2023-10-04 22:50:29 +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-88402: Add new sysconfig variables on Windows (GH-110049) 2023-10-04 22:50:29 +00:00
emscripten_signal.c GH-108614: Unbreak emscripten build (GH-109132) 2023-09-08 17:54:45 +01:00
emscripten_trampoline.c gh-121698 Emscripten: Use updated WebAssembly type reflection proposal (GH-121699) 2024-07-14 11:25:09 +02:00
errors.c gh-124188: Fix PyErr_ProgramTextObject() (GH-124189) 2024-09-24 11:01:37 +03:00
executor_cases.c.h GH-125323: Convert DECREF_INPUTS_AND_REUSE_FLOAT into a function that takes PyStackRefs. (GH-125439) 2024-10-14 14:18:57 +01:00
fileutils.c gh-117657: Fix TSan reported data race on ioctl_works (#120175) 2024-06-17 13:23:40 -04:00
flowgraph.c gh-124871: fix 'visited' tracking in compiler's reachability analysis (#124952) 2024-10-04 17:37:38 +01:00
formatter_unicode.c gh-115754: Use Py_GetConstant(Py_CONSTANT_EMPTY_STR) (#125194) 2024-10-09 17:15:23 +02:00
frame.c gh-123923: Defer refcounting for f_funcobj in _PyInterpreterFrame (#124026) 2024-09-24 20:08:18 +00:00
frozen.c gh-108716: Cleanup remaining deepfreeze infrastructure (#116919) 2024-03-18 11:13:11 -07:00
frozenmain.c gh-105716: Fix _PyInterpreterState_IsRunningMain() For Embedders (gh-117140) 2024-03-21 18:20:20 -06:00
future.c Fixes loop variables to be the same types as their limit (GH-120958) 2024-06-24 17:11:47 +01:00
gc.c gh-116510: Fix crash during sub-interpreter shutdown (gh-124645) 2024-09-26 19:33:07 -07:00
gc_free_threading.c gh-124218: Refactor per-thread reference counting (#124844) 2024-10-01 17:05:42 +00: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-125323: Convert DECREF_INPUTS_AND_REUSE_FLOAT into a function that takes PyStackRefs. (GH-125439) 2024-10-14 14:18:57 +01:00
getargs.c gh-124502: Remove _PyUnicode_EQ() function (#125114) 2024-10-09 10:15:17 +02:00
getcompiler.c closes bpo-43278: remove unnecessary leading '\n' from COMPILER when build with GCC/Clang (GH-24606) 2021-02-25 20:24:21 -08:00
getcopyright.c Update copyright years to 2024. (GH-113608) 2024-01-16 21:54:05 +01:00
getopt.c gh-110079: Remove extern "C" { ...} in C code (#110080) 2023-09-29 10:56:49 +02:00
getplatform.c
getversion.c gh-119132: Update sys.version to identify free-threaded or not. (gh-119134) 2024-05-18 19:44:40 +00:00
hamt.c gh-106320: Remove private PyLong C API functions (#108429) 2023-08-24 18:53:50 +02:00
hashtable.c gh-111545: Add Py_HashPointer() function (#112096) 2023-12-06 15:09:22 +01:00
import.c GH-125174: Make immortal objects more robust, following design from PEP 683 (GH-125251) 2024-10-10 18:19:08 +01:00
importdl.c gh-122907: Fix Builds Without HAVE_DYNAMIC_LOADING Set (gh-122952) 2024-08-13 14:44:57 -06:00
initconfig.c gh-107954: Fix configuration type for the perf profiler (#124636) 2024-09-28 01:50:16 +02:00
instruction_sequence.c gh-117680: Fix msvc warning in instruction_sequence.c (#118326) 2024-04-26 17:20:30 +01:00
instrumentation.c GH-116968: Remove branch from advance_backoff_counter (GH-124469) 2024-10-07 11:46:33 +01:00
interpconfig.c gh-76785: Fix a Refleak in _interpreters.new_config() (gh-117491) 2024-04-03 01:10:26 +00:00
intrinsics.c gh-74929: Implement PEP 667 (GH-115153) 2024-05-04 12:12:10 +01:00
jit.c GH-119726: Deduplicate AArch64 trampolines within a trace (GH-123872) 2024-10-02 12:07:20 -07:00
legacy_tracing.c gh-123923: Defer refcounting for f_executable in _PyInterpreterFrame (#123924) 2024-09-12 12:37:06 -04:00
lock.c gh-125139: use _PyRecursiveMutex in _thread.RLock (#125144) 2024-10-14 14:06:31 +05:30
marshal.c gh-115754: Use Py_GetConstant(Py_CONSTANT_EMPTY_STR) (#125194) 2024-10-09 17:15:23 +02:00
modsupport.c gh-121040: Use __attribute__((fallthrough)) (#121044) 2024-06-27 09:58:44 +00: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-119866: Spill the stack around escaping calls. (GH-124392) 2024-10-07 14:56:39 +01:00
optimizer.c GH-118093: Don't lose confidence when tracing through 100% biased branches (GH-124813) 2024-10-02 19:24:37 +00:00
optimizer_analysis.c gh-115999: Refactor LOAD_GLOBAL specializations to avoid reloading {globals, builtins} keys (gh-124953) 2024-10-09 15:18:25 +00:00
optimizer_bytecodes.c gh-115999: Refactor LOAD_GLOBAL specializations to avoid reloading {globals, builtins} keys (gh-124953) 2024-10-09 15:18:25 +00:00
optimizer_cases.c.h gh-115999: Refactor LOAD_GLOBAL specializations to avoid reloading {globals, builtins} keys (gh-124953) 2024-10-09 15:18:25 +00:00
optimizer_symbols.c gh-120642: Move private PyCode APIs to the internal C API (#120643) 2024-06-26 13:54:03 +02:00
parking_lot.c gh-112804: Clamping timeout value for _PySemaphore_PlatformWait (gh-124914) 2024-10-05 11:27:32 +09:00
pathconfig.c gh-117987: Restore several functions removed in Python 3.13 alpha 1 (GH-117993) 2024-04-18 15:20:38 +02:00
perf_jit_trampoline.c GH-118844: Fix build failures when combining --disable-gil with --enable-experimental-jit (GH-118935) 2024-05-11 16:19:31 -07:00
perf_trampoline.c gh-118518: Allow perf to work without frame pointers (#112254) 2024-05-05 03:07:29 +02:00
preconfig.c gh-106320: Remove private pylifecycle.h functions (#106400) 2023-07-04 09:41:43 +00:00
pyarena.c gh-119219: Remove two obsolete TODOs. (#119223) 2024-05-20 16:54:16 +00:00
pyctype.c
pyfpe.c bpo-46315: Add ifdef HAVE_ feature checks for WASI compatibility (GH-30507) 2022-01-13 09:46:04 +01:00
pyhash.c gh-122854: Add Py_HashBuffer() function (#122855) 2024-08-30 15:42:27 +00:00
pylifecycle.c gh-87135: Hang non-main threads that attempt to acquire the GIL during finalization (GH-105805) 2024-10-02 09:17:49 -07:00
pymath.c bpo-45440: Remove pymath.c fallbacks (GH-28977) 2021-10-15 19:45:34 +02:00
pystate.c gh-111924: use atomics for interp id refcounting (#125321) 2024-10-12 12:40:34 +05:30
pystrcmp.c gh-108767: Replace ctype.h functions with pyctype.h functions (#108772) 2023-09-01 18:36:53 +02:00
pystrhex.c gh-108765: pystrhex: Replace stdlib.h abs() with Py_ABS() (#108830) 2023-09-02 23:15:54 +02:00
pystrtod.c gh-121040: Use __attribute__((fallthrough)) (#121044) 2024-06-27 09:58:44 +00:00
Python-ast.c gh-125268: Use static string for "1e309" in AST (#125272) 2024-10-10 16:21:29 -04:00
Python-tokenize.c gh-115754: Use Py_GetConstant(Py_CONSTANT_EMPTY_STR) (#125194) 2024-10-09 17:15:23 +02:00
pythonrun.c gh-121804: always show error location for SyntaxError's in basic repl (#123202) 2024-09-03 12:37:29 +00:00
pytime.c gh-111513: Improve datetime.fromtimestamp's error message (#124249) 2024-09-20 14:42:43 +02:00
qsbr.c Fix typos in comments (#120481) 2024-06-19 23:16:14 -04:00
README
specialize.c gh-115999: Stop the world when invalidating function versions (#124997) 2024-10-08 10:04:35 -04:00
stdlib_module_names.h gh-123892: Add "_wmi" to sys.stdlib_module_names (#123893) 2024-09-10 09:54:17 +00:00
structmember.c gh-117657: Fix __slots__ thread safety in free-threaded build (#119368) 2024-06-17 18:44:54 +00:00
suggestions.c Fixes loop variables to be the same types as their limit (GH-120958) 2024-06-24 17:11:47 +01:00
symtable.c gh-125196: Use PyUnicodeWriter in symtable.c (#125199) 2024-10-09 17:54:54 +02:00
sysmodule.c gh-123923: Defer refcounting for f_funcobj in _PyInterpreterFrame (#124026) 2024-09-24 20:08:18 +00:00
thread.c gh-110850: Cleanup PyTime API: PyTime_t are nanoseconds (#115753) 2024-02-21 11:46:00 +01:00
thread_nt.h gh-87135: Hang non-main threads that attempt to acquire the GIL during finalization (GH-105805) 2024-10-02 09:17:49 -07:00
thread_pthread.h gh-87135: Hang non-main threads that attempt to acquire the GIL during finalization (GH-105805) 2024-10-02 09:17:49 -07: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-117764: Fix and add signatures for many builtins (GH-117769) 2024-04-12 13:56:41 +03:00
tracemalloc.c gh-123923: Defer refcounting for f_executable in _PyInterpreterFrame (#123924) 2024-09-12 12:37:06 -04:00
uniqueid.c gh-124218: Refactor per-thread reference counting (#124844) 2024-10-01 17:05:42 +00:00
vm-state.md Fix typos in documentation and comments (#119763) 2024-06-04 10:22:22 +00:00

Miscellaneous source files for the main Python shared library