cpython/Python
Eddie Elizondo ea2c001650
gh-84436: Implement Immortal Objects (gh-19474)
This is the implementation of PEP683

Motivation:

The PR introduces the ability to immortalize instances in CPython which bypasses reference counting. Tagging objects as immortal allows up to skip certain operations when we know that the object will be around for the entire execution of the runtime.

Note that this by itself will bring a performance regression to the runtime due to the extra reference count checks. However, this brings the ability of having truly immutable objects that are useful in other contexts such as immutable data sharing between sub-interpreters.
2023-04-22 13:39:37 -06:00
..
clinic gh-84436: Implement Immortal Objects (gh-19474) 2023-04-22 13:39:37 -06:00
deepfreeze
frozen_modules
Python-ast.c gh-100227: Move _str_replace_inf to PyInterpreterState (gh-102333) 2023-02-28 14:16:39 -07:00
Python-tokenize.c gh-102856: Initial implementation of PEP 701 (#102855) 2023-04-19 11:18:16 -05:00
README
_warnings.c gh-101758: Clean Up Uses of Import State (gh-101919) 2023-02-15 15:32:31 -07:00
adaptive.md
asdl.c
asm_trampoline.S
assemble.c gh-87092: move assembler related code from compile.c to assemble.c (#103277) 2023-04-11 11:15:09 +01:00
ast.c
ast_opt.c GH-101291: Rearrange the size bits in PyLongObject (GH-102464) 2023-03-22 14:49:51 +00: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-102939: Fix "conversion from Py_ssize_t to long" warning in builtins (GH-102940) 2023-03-23 10:37:04 +00:00
bootstrap_hash.c
bytecodes.c GH-103488: Use return-offset, not yield-offset. (GH-103502) 2023-04-13 16:19:07 +01:00
ceval.c gh-84436: Implement Immortal Objects (gh-19474) 2023-04-22 13:39:37 -06:00
ceval_gil.c gh-103167: Fix `-Wstrict-prototypes` warnings by using `(void)` for functions with no args (GH-103168) 2023-04-05 09:22:33 +02:00
ceval_macros.h GH-103082: Implementation of PEP 669: Low Impact Monitoring for CPython (GH-103083) 2023-04-12 12:04:55 +01:00
codecs.c gh-77757: replace exception wrapping by PEP-678 notes in typeobject's __set_name__ (#103402) 2023-04-11 11:53:06 +01:00
compile.c GH-103082: Implementation of PEP 669: Low Impact Monitoring for CPython (GH-103083) 2023-04-12 12:04:55 +01:00
condvar.h
context.c
dtoa.c gh-100227: Move the dtoa State to PyInterpreterState (gh-102331) 2023-02-28 13:14:40 -07:00
dup2.c
dynamic_annotations.c
dynload_hpux.c
dynload_shlib.c gh-101758: Clean Up Uses of Import State (gh-101919) 2023-02-15 15:32:31 -07:00
dynload_stub.c
dynload_win.c gh-102255: Improve build support for Windows API partitions (GH-102256) 2023-03-09 21:09:12 +00:00
emscripten_signal.c
errors.c gh-77757: replace exception wrapping by PEP-678 notes in typeobject's __set_name__ (#103402) 2023-04-11 11:53:06 +01:00
fileutils.c gh-99726: Improves correctness of stat results for Windows, and uses faster API when available (GH-102149) 2023-03-16 17:27:21 +00:00
flowgraph.c gh-91276: remove unused _PyOpcode_RelativeJump (#103156) 2023-04-11 11:20:39 +01:00
formatter_unicode.c
frame.c gh-102192: Replace PyErr_Fetch/Restore etc by more efficient alternatives (in Python/) (#102193) 2023-02-28 11:50:52 +00:00
frozen.c
frozenmain.c
future.c
generated_cases.c.h GH-103488: Use return-offset, not yield-offset. (GH-103502) 2023-04-13 16:19:07 +01:00
getargs.c
getcompiler.c
getcopyright.c
getopt.c
getplatform.c
getversion.c
hamt.c
hashtable.c
import.c gh-102660: Fix is_core_module() (gh-103257) 2023-04-04 17:03:40 -06:00
importdl.c gh-98627: Add an Optional Check for Extension Module Subinterpreter Compatibility (gh-99040) 2023-02-15 18:16:00 -07:00
importdl.h
initconfig.c gh-103167: Fix `-Wstrict-prototypes` warnings by using `(void)` for functions with no args (GH-103168) 2023-04-05 09:22:33 +02:00
instrumentation.c gh-84436: Implement Immortal Objects (gh-19474) 2023-04-22 13:39:37 -06:00
intrinsics.c gh-90110: Fix the c-analyzer Tool (#102483) 2023-03-06 19:40:09 -07:00
legacy_tracing.c gh-84436: Implement Immortal Objects (gh-19474) 2023-04-22 13:39:37 -06:00
makeopcodetargets.py GH-103082: Implementation of PEP 669: Low Impact Monitoring for CPython (GH-103083) 2023-04-12 12:04:55 +01:00
marshal.c GH-101291: Rearrange the size bits in PyLongObject (GH-102464) 2023-03-22 14:49:51 +00:00
modsupport.c gh-102192: Replace PyErr_Fetch/Restore etc by more efficient alternatives (in Python/) (#102193) 2023-02-28 11:50:52 +00:00
mysnprintf.c
mystrtoul.c
opcode_metadata.h GH-103082: Implementation of PEP 669: Low Impact Monitoring for CPython (GH-103083) 2023-04-12 12:04:55 +01:00
opcode_targets.h GH-103082: Implementation of PEP 669: Low Impact Monitoring for CPython (GH-103083) 2023-04-12 12:04:55 +01:00
pathconfig.c
perf_trampoline.c
preconfig.c
pyarena.c
pyctype.c
pyfpe.c
pyhash.c
pylifecycle.c gh-84436: Implement Immortal Objects (gh-19474) 2023-04-22 13:39:37 -06:00
pymath.c
pystate.c GH-103082: Implementation of PEP 669: Low Impact Monitoring for CPython (GH-103083) 2023-04-12 12:04:55 +01:00
pystrcmp.c
pystrhex.c
pystrtod.c
pythonrun.c gh-102192: Replace PyErr_Fetch/Restore etc by more efficient alternatives (#102816) 2023-03-19 15:17:59 +00:00
pytime.c gh-97786: Fix compiler warnings in pytime.c (#101826) 2023-02-19 17:16:11 -08:00
specialize.c GH-103082: Implementation of PEP 669: Low Impact Monitoring for CPython (GH-103083) 2023-04-12 12:04:55 +01:00
stdlib_module_names.h gh-99108: Refactor _sha256 & _sha512 into _sha2. (#101924) 2023-02-15 22:08:20 -08:00
structmember.c
suggestions.c
symtable.c gh-102371: move _Py_Mangle from compile.c to symtable.c (#102372) 2023-03-02 18:38:22 +00:00
sysmodule.c gh-84436: Implement Immortal Objects (gh-19474) 2023-04-22 13:39:37 -06:00
thread.c
thread_nt.h
thread_pthread.h
thread_pthread_stubs.h
traceback.c gh-102192: Replace PyErr_Fetch/Restore etc by more efficient alternatives (#102760) 2023-03-16 19:03:52 +00:00

README

Miscellaneous source files for the main Python shared library