cpython/Include/internal
Miss Islington (bot) 49da170709
[3.12] gh-116510: Fix a Crash Due to Shared Immortal Interned Strings (gh-125205)
Fix a crash caused by immortal interned strings being shared between
sub-interpreters that use basic single-phase init. In that case, the string
can be used by an interpreter that outlives the interpreter that created and
interned it. For interpreters that share obmalloc state, also share the
interned dict with the main interpreter.

This is an un-revert of gh-124646 that then addresses the Py_TRACE_REFS
failures identified by gh-124785 (i.e. backporting gh-125709 too).

(cherry picked from commit f2cb399470, AKA gh-124865)

Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>
2024-12-03 10:26:25 -07:00
..
pycore_abstract.h
pycore_asdl.h
pycore_ast.h [3.12] gh-104799: Move location of type_params AST fields (GH-104828) (#104974) 2023-05-30 14:33:01 +00:00
pycore_ast_state.h [3.12] gh-106905: Use separate structs to track recursion depth in each PyAST_mod2obj call. (GH-113035) (GH-113472) 2023-12-25 19:20:07 +00:00
pycore_atexit.h [3.12] gh-100227: Lock Around Use of the Global "atexit" State (gh-105514) (gh-105517) 2023-06-08 19:27:44 +00:00
pycore_atomic.h
pycore_atomic_funcs.h
pycore_bitutils.h
pycore_blocks_output_buffer.h
pycore_bytes_methods.h
pycore_bytesobject.h gh-94673: Ensure Builtin Static Types are Readied Properly (gh-103940) 2023-04-27 16:19:43 -06:00
pycore_call.h gh-98003: Inline call frames for CALL_FUNCTION_EX (GH-98004) 2023-04-30 21:08:26 +08:00
pycore_ceval.h [3.12] gh-112367: Only free perf trampoline arenas at shutdown (GH-112368) (#112590) 2023-12-01 16:05:31 +00:00
pycore_ceval_state.h [3.12] gh-104812: Run Pending Calls in any Thread (gh-104813) (gh-105752) 2023-06-14 00:50:08 +00:00
pycore_code.h [3.12] gh-106550: Fix sign conversion in pycore_code.h (GH-112613) (#112696) 2023-12-04 11:14:13 +00:00
pycore_compile.h gh-104615: don't make unsafe swaps in apply_static_swaps (#104620) 2023-05-18 21:22:03 +00:00
pycore_condvar.h
pycore_context.h
pycore_descrobject.h
pycore_dict.h gh-100227: Move dict_state.global_version to PyInterpreterState (gh-102338) 2023-03-09 08:16:30 -07:00
pycore_dict_state.h gh-104252: Immortalize Py_EMPTY_KEYS (gh-104253) 2023-05-10 07:28:40 -06:00
pycore_dtoa.h [3.12] gh-119447: Fix build with _PY_SHORT_FLOAT_REPR == 0 (#121178) (#121180) 2024-06-30 10:02:08 +00:00
pycore_emscripten_signal.h
pycore_exceptions.h
pycore_faulthandler.h
pycore_fileutils.h [3.12] gh-106242: Fix path truncation in os.path.normpath (GH-106816) (#107981) 2023-08-17 01:19:48 +02:00
pycore_fileutils_windows.h gh-102765: Update ntpath.isdir/isfile/islink/exists to use GetFileInformationByName when available (GH-103485) 2023-04-27 14:23:26 +00:00
pycore_floatobject.h
pycore_flowgraph.h [3.12] gh-113297: Fix segfault in compiler for with statement with 19 context managers (#113327) (#113404) 2023-12-23 13:29:11 +00:00
pycore_format.h gh-104018: remove unused format "z" handling in string formatfloat() (#104107) 2023-05-07 10:11:42 +05:30
pycore_frame.h [3.12] Fix typos in comments (GH-120481) (#120775) 2024-06-20 03:59:31 +00:00
pycore_function.h gh-103763: Implement PEP 695 (#103764) 2023-05-15 20:36:23 -07:00
pycore_gc.h
pycore_genobject.h GH-99005: More intrinsics (GH-100774) 2023-01-06 14:47:57 +00:00
pycore_getopt.h
pycore_gil.h
pycore_global_objects.h [3.12] gh-106931: Intern Statically Allocated Strings Globally (gh-107272) (gh-110713) 2023-11-27 23:51:12 +00:00
pycore_global_objects_fini_generated.h [3.12] gh-113993: Make interned strings mortal (GH-120520, GH-121364, GH-121903, GH-122303) (#123065) 2024-09-27 13:28:48 -07:00
pycore_global_strings.h [3.12] gh-113993: Make interned strings mortal (GH-120520, GH-121364, GH-121903, GH-122303) (#123065) 2024-09-27 13:28:48 -07:00
pycore_hamt.h
pycore_hashtable.h [3.12] gh-106931: Intern Statically Allocated Strings Globally (gh-107272) (gh-110713) 2023-11-27 23:51:12 +00:00
pycore_import.h [3.12] gh-105699: Use a _Py_hashtable_t for the PyModuleDef Cache (gh-106974) (gh-107412) 2023-07-28 23:16:12 +00:00
pycore_initconfig.h gh-98608: Stop Treating All Errors from _Py_NewInterpreterFromConfig() as Fatal (gh-102657) 2023-03-21 10:49:12 -06:00
pycore_instruments.h [3.12] chore: fix typos (#116345) (#116370) 2024-03-05 18:51:17 +00:00
pycore_interp.h [3.12] gh-110310: Add a Per-Interpreter XID Registry for Heap Types (gh-110311) (gh-110714) 2023-11-28 02:36:29 +00:00
pycore_intrinsics.h gh-103763: Implement PEP 695 (#103764) 2023-05-15 20:36:23 -07:00
pycore_list.h gh-100146: Steal references from stack when building a list (#100147) 2023-01-03 10:49:49 -08:00
pycore_long.h GH-101291: Add low level, unstable API for pylong (GH-101685) 2023-05-21 14:45:48 +01:00
pycore_memoryobject.h gh-104223: Fix issues with inheriting from buffer classes (#104227) 2023-05-08 09:52:41 -07:00
pycore_moduleobject.h gh-104066: Improve performance of hasattr for module objects (#104063) 2023-05-04 08:50:26 -06:00
pycore_namespace.h
pycore_object.h [3.12] gh-113993: Make interned strings mortal (GH-120520, GH-121364, GH-121903, GH-122303) (#123065) 2024-09-27 13:28:48 -07:00
pycore_object_state.h [3.12] gh-116510: Fix a Crash Due to Shared Immortal Interned Strings (gh-125205) 2024-12-03 10:26:25 -07:00
pycore_obmalloc.h [3.12] gh-112867: fix for WITH_PYMALLOC_RADIX_TREE=0 (GH-112885) (#113068) 2023-12-13 13:06:43 -08:00
pycore_obmalloc_init.h gh-101659: Isolate "obmalloc" State to Each Interpreter (gh-101660) 2023-04-24 17:23:57 -06:00
pycore_opcode.h gh-103865: add monitoring support to LOAD_SUPER_ATTR (#103866) 2023-05-16 10:29:00 -06:00
pycore_opcode_utils.h gh-91276: remove unused _PyOpcode_RelativeJump (#103156) 2023-04-11 11:20:39 +01:00
pycore_parser.h
pycore_pathconfig.h
pycore_pyarena.h
pycore_pyerrors.h gh-77757: replace exception wrapping by PEP-678 notes in typeobject's __set_name__ (#103402) 2023-04-11 11:53:06 +01:00
pycore_pyhash.h
pycore_pylifecycle.h GH-101520: Move tracemalloc functionality into core, leaving interface in Modules. (#104508) 2023-05-17 14:17:16 +01:00
pycore_pymath.h Remove unused internal macros (#102415) 2023-03-04 12:20:14 +00:00
pycore_pymem.h [3.12] gh-101524: Only Use Public C-API in the _xxsubinterpreters Module (gh-105258) (gh-107303) 2023-07-27 13:15:47 -06:00
pycore_pymem_init.h
pycore_pystate.h [3.12] gh-105716: Support Background Threads in Subinterpreters Consistently (gh-109921) (gh-110707) 2023-11-27 19:01:05 -07:00
pycore_pythread.h
pycore_range.h
pycore_runtime.h [3.12] gh-110310: Add a Per-Interpreter XID Registry for Heap Types (gh-110311) (gh-110714) 2023-11-28 02:36:29 +00:00
pycore_runtime_init.h [3.12] gh-116510: Fix a Crash Due to Shared Immortal Interned Strings (gh-125205) 2024-12-03 10:26:25 -07:00
pycore_runtime_init_generated.h [3.12] gh-113993: Make interned strings mortal (GH-120520, GH-121364, GH-121903, GH-122303) (#123065) 2024-09-27 13:28:48 -07:00
pycore_signal.h
pycore_sliceobject.h
pycore_strhex.h
pycore_structseq.h gh-94673: Properly Initialize and Finalize Static Builtin Types for Each Interpreter (gh-104072) 2023-05-01 19:36:00 -06:00
pycore_symtable.h [3.12] gh-119311: Fix name mangling with PEP 695 generic classes (#119464) (#119644) 2024-06-04 19:55:45 +00:00
pycore_sysmodule.h gh-101758: Clean Up Uses of Import State (gh-101919) 2023-02-15 15:32:31 -07:00
pycore_time.h
pycore_token.h gh-102856: Python tokenizer implementation for PEP 701 (#104323) 2023-05-21 01:03:02 +01:00
pycore_traceback.h
pycore_tracemalloc.h gh-77532: Minor tweaks to allow compiling with PlatformToolset=ClangCL on Windows (GH-101352) 2023-01-27 14:45:08 +00:00
pycore_tuple.h gh-94673: Ensure Builtin Static Types are Readied Properly (gh-103940) 2023-04-27 16:19:43 -06:00
pycore_typeobject.h [3.12] gh-126303: Fix pickling and copying of os.sched_param objects (GH-126336) (GH-126424) 2024-11-05 06:52:51 +00:00
pycore_typevarobject.h gh-104549: Set __module__ on TypeAliasType (#104550) 2023-05-18 15:56:15 -07:00
pycore_ucnhash.h
pycore_unicodeobject.h [3.12] gh-127208: Reject null character in _imp.create_dynamic() (#127400) (#127419) 2024-11-29 17:03:24 +01:00
pycore_unicodeobject_generated.h [3.12] gh-113993: Make interned strings mortal (GH-120520, GH-121364, GH-121903, GH-122303) (#123065) 2024-09-27 13:28:48 -07:00
pycore_unionobject.h
pycore_warnings.h