cpython/Python
Sam Gross 0b7476080b
gh-112532: Tag mimalloc heaps and pages (#113742)
* gh-112532: Tag mimalloc heaps and pages

Mimalloc pages are data structures that contain contiguous allocations
of the same block size. Note that they are distinct from operating
system pages. Mimalloc pages are contained in segments.

When a thread exits, it abandons any segments and contained pages that
have live allocations. These segments and pages may be later reclaimed
by another thread. To support GC and certain thread-safety guarantees in
free-threaded builds, we want pages to only be reclaimed by the
corresponding heap in the claimant thread. For example, we want pages
containing GC objects to only be claimed by GC heaps.

This allows heaps and pages to be tagged with an integer tag that is
used to ensure that abandoned pages are only claimed by heaps with the
same tag. Heaps can be initialized with a tag (0-15); any page allocated
by that heap copies the corresponding tag.

* Fix conversion warning
2024-01-05 12:08:50 -08:00
..
clinic bpo-34392: Add sys. _is_interned() (GH-8755) 2023-12-04 11:09:06 +02:00
deepfreeze
frozen_modules
Python-ast.c gh-106905: Use separate structs to track recursion depth in each PyAST_mod2obj call. (GH-113035) 2023-12-25 19:36:59 +02:00
Python-tokenize.c gh-112943: Correctly compute end offsets for multiline tokens in the tokenize module (#112949) 2023-12-11 11:44:22 +00:00
README
_warnings.c gh-111789: Use PyDict_GetItemRef() in Python/_warnings.c (gh-112080) 2023-11-27 18:58:43 +01:00
adaptive.md
asdl.c
asm_trampoline.S
assemble.c GH-111485: Generate instruction and uop metadata (GH-113287) 2023-12-20 14:27:25 +00:00
ast.c gh-109341: Fix crash on compiling invalid AST including TypeAlias (#109349) 2023-09-13 09:00:39 -07:00
ast_opt.c gh-111133: Remove unnecessary PyFrozenSet_Check() calls in const folding (GH-111137) 2023-10-20 23:37:38 +03:00
ast_unparse.c gh-100227: Move _str_replace_inf to PyInterpreterState (gh-102333) 2023-02-28 14:16:39 -07:00
bltinmodule.c gh-90350: Optimize builtin functions min() and max() (GH-30286) 2023-12-11 21:27:06 +02:00
bootstrap_hash.c gh-110014: Fix bootstrap_hash.c: remove debug code (#110161) 2023-09-30 22:21:20 +00:00
bytecodes.c GH-113689: Fix broken handling of invalid executors (GH-113694) 2024-01-04 11:14:15 +00:00
ceval.c GH-113486: Do not emit spurious PY_UNWIND events for optimized calls to classes. (GH-113680) 2024-01-05 09:45:22 +00:00
ceval_gil.c gh-112723: Call `PyThreadState_Clear()` from the correct interpreter (#112776) 2023-12-12 17:20:21 -07:00
ceval_macros.h GH-112354: Treat _EXIT_TRACE like an unconditional side exit (GH-113104) 2023-12-14 14:26:44 +00:00
codecs.c gh-111972: Make Unicode name C APIcapsule initialization thread-safe (#112249) 2023-11-30 11:12:49 +01:00
compile.c GH-111485: Generate instruction and uop metadata (GH-113287) 2023-12-20 14:27:25 +00:00
condvar.h gh-110014: Fix _POSIX_THREADS and _POSIX_SEMAPHORES usage (#110139) 2023-09-30 19:25:54 +02:00
context.c GH-84436: Skip refcounting for known immortals (GH-107605) 2023-08-04 16:24:50 -07:00
critical_section.c gh-111569: Implement Python critical section API (gh-111571) 2023-11-08 15:39:29 -07:00
crossinterp.c gh-76785: Avoid Pickled TracebackException for Propagated Subinterpreter Exceptions (gh-113036) 2023-12-13 00:31:30 +00:00
dtoa.c gh-111962: Make dtoa thread-safe in `--disable-gil` builds. (#112049) 2023-12-07 13:47:55 +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
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-106213: Make Emscripten trampolines work with JSPI (GH-106219) 2023-09-15 15:04:21 -07:00
errors.c gh-111375: Use `NULL` rather than `None` in the exception stack to indicate that an exception was handled (#113302) 2023-12-21 01:46:41 +00:00
executor_cases.c.h GH-111485: Delete the old generator code. (GH-113321) 2023-12-21 12:46:28 +00:00
fileutils.c gh-112970: Detect and use closefrom() when available (#112969) 2023-12-12 11:25:27 +01:00
flowgraph.c gh-113603: Compiler no longer tries to maintain the no-empty-block invariant (#113636) 2024-01-03 16:57:48 +00:00
formatter_unicode.c gh-92536: Remove PyUnicode_READY() calls (#105210) 2023-06-02 01:33:17 +02:00
frame.c gh-109094: replace frame->prev_instr by frame->instr_ptr (#109095) 2023-10-26 13:43:10 +00:00
frozen.c gh-106560: Fix redundant declarations in Python/frozen.c (#112612) 2023-12-03 12:18:24 +01:00
frozenmain.c gh-110014: Include explicitly <unistd.h> header (#110155) 2023-09-30 20:06:45 +00:00
future.c gh-106320: Remove more private _PyUnicode C API functions (#106382) 2023-07-03 22:35:46 +00:00
generated_cases.c.h GH-113689: Fix broken handling of invalid executors (GH-113694) 2024-01-04 11:14:15 +00:00
getargs.c gh-65210: Add const qualifiers in PyArg_VaParseTupleAndKeywords() (GH-105958) 2023-12-04 13:14:56 +02:00
getcompiler.c
getcopyright.c Update copyright years to 2023. (gh-100848) 2023-01-08 09:13:25 -06:00
getopt.c gh-110079: Remove extern "C" { ...} in C code (#110080) 2023-09-29 10:56:49 +02:00
getplatform.c
getversion.c
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-111924: Use PyMutex for Runtime-global Locks. (gh-112207) 2023-12-07 12:33:40 -07:00
importdl.c gh-88402: Add new sysconfig variables on Windows (GH-110049) 2023-10-04 22:50:29 +00:00
initconfig.c gh-112730: Use color to highlight error locations (gh-112732) 2023-12-06 23:29:54 +01:00
instrumentation.c GH-113486: Do not emit spurious PY_UNWIND events for optimized calls to classes. (GH-113680) 2024-01-05 09:45:22 +00:00
intrinsics.c gh-107149: make new opcode util functions private rather than public and unstable (#112042) 2023-11-14 00:31:02 +00:00
legacy_tracing.c gh-103615: Use local events for opcode tracing (GH-109472) 2023-11-03 16:39:50 +00:00
lock.c gh-111964: Add _PyRWMutex a "readers-writer" lock (gh-112859) 2023-12-15 18:56:55 -07:00
marshal.c gh-106320: Move private _PySet API to the internal API (#107041) 2023-07-22 17:04:34 +02:00
modsupport.c gh-84489: Properly handle trailing spaces in Py_BuildValue() format strings (GH-21158) 2023-10-11 14:44:06 +03:00
mysnprintf.c
mystrtoul.c gh-108765: Python.h no longer includes <ctype.h> (#108831) 2023-09-03 18:54:27 +02:00
opcode_targets.h GH-111485: Generate `TARGET` table for computed goto dispatch. (GH-113319) 2023-12-20 15:09:12 +00:00
optimizer.c GH-111485: Fix handling of FOR_ITER in Tier 2 (GH-113394) 2023-12-24 10:07:34 -08:00
optimizer_analysis.c GH-113657: Add back missing _SET_IP uops in tier two (GH-113662) 2024-01-02 14:09:57 -08:00
parking_lot.c gh-112606: Use sem_clockwait with monotonic time when supported in parking_lot.c (gh-112733) 2023-12-06 15:54:57 +09:00
pathconfig.c gh-110079: Remove extern "C" { ...} in C code (#110080) 2023-09-29 10:56:49 +02:00
perf_trampoline.c gh-113343: Fix error check on mmap(2) (#113342) 2023-12-21 19:28:55 +00:00
preconfig.c gh-106320: Remove private pylifecycle.h functions (#106400) 2023-07-04 09:41:43 +00:00
pyarena.c
pyctype.c
pyfpe.c
pyhash.c gh-111545: Add Py_HashPointer() function (#112096) 2023-12-06 15:09:22 +01:00
pylifecycle.c gh-112532: Use separate mimalloc heaps for GC objects (gh-113263) 2023-12-27 01:53:20 +09:00
pymath.c
pystate.c gh-112532: Tag mimalloc heaps and pages (#113742) 2024-01-05 12:08:50 -08: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-108765: pystrhex: Replace stdlib.h abs() with Py_ABS() (#108830) 2023-09-02 23:15:54 +02:00
pystrtod.c gh-108765: Cleanup #include in Python/*.c files (#108977) 2023-09-06 15:56:08 +02:00
pythonrun.c gh-108082: Use PyErr_FormatUnraisable() (GH-111580) 2023-11-02 09:16:34 +00:00
pytime.c gh-112567: Add _PyTimeFraction C API (#112568) 2023-12-01 19:50:10 +01:00
specialize.c GH-113486: Do not emit spurious PY_UNWIND events for optimized calls to classes. (GH-113680) 2024-01-05 09:45:22 +00:00
stdlib_module_names.h gh-88402: Add new sysconfig variables on Windows (GH-110049) 2023-10-04 22:50:29 +00:00
structmember.c gh-106869: Use new PyMemberDef constant names (#106871) 2023-07-25 15:28:30 +02:00
suggestions.c gh-108511: Add C API functions which do not silently ignore errors (GH-109025) 2023-09-17 14:23:31 +03:00
symtable.c gh-111789: Use PyDict_GetItemRef() in Python/symtable.c (gh-112084) 2023-11-27 18:55:30 +01:00
sysmodule.c gh-73427: deprecate `_enablelegacywindowsfsencoding` (#107729) 2023-12-28 17:31:19 +09:00
thread.c gh-84570: Add Timeouts to SendChannel.send() and RecvChannel.recv() (gh-110567) 2023-10-17 23:05:49 +00:00
thread_nt.h GH-110829: Ensure Thread.join() joins the OS thread (#110848) 2023-11-04 13:59:24 +00:00
thread_pthread.h gh-81925: Implement native thread ids for kFreeBSD (#111761) 2023-11-09 21:02:30 +01:00
thread_pthread_stubs.h GH-110829: Ensure Thread.join() joins the OS thread (#110848) 2023-11-04 13:59:24 +00:00
traceback.c Remove dead code left after gh-110721 (#111905) 2023-11-10 22:30:01 +00:00
tracemalloc.c gh-108765: Cleanup #include in Python/*.c files (#108977) 2023-09-06 15:56:08 +02:00
vm-state.md High level docs for the VM state (#111621) 2023-11-01 22:55:10 +00:00

README

Miscellaneous source files for the main Python shared library