summaryrefslogtreecommitdiffstats
path: root/Tools/c-globals/README
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/c-globals/README')
-rw-r--r--Tools/c-globals/README41
1 files changed, 0 insertions, 41 deletions
diff --git a/Tools/c-globals/README b/Tools/c-globals/README
deleted file mode 100644
index d0e6e8e..0000000
--- a/Tools/c-globals/README
+++ /dev/null
@@ -1,41 +0,0 @@
-#######################################
-# C Globals and CPython Runtime State.
-
-CPython's C code makes extensive use of global variables. Each global
-falls into one of several categories:
-
-* (effectively) constants (incl. static types)
-* globals used exclusively in main or in the REPL
-* freelists, caches, and counters
-* process-global state
-* module state
-* Python runtime state
-
-The ignored-globals.txt file is organized similarly. Of the different
-categories, the last two are problematic and generally should not exist
-in the codebase.
-
-Globals that hold module state (i.e. in Modules/*.c) cause problems
-when multiple interpreters are in use. For more info, see PEP 3121,
-which addresses the situation for extension modules in general.
-
-Globals in the last category should be avoided as well. The problem
-isn't with the Python runtime having state. Rather, the problem is with
-that state being spread thoughout the codebase in dozens of individual
-globals. Unlike the other globals, the runtime state represents a set
-of values that are constantly shifting in a complex way. When they are
-spread out it's harder to get a clear picture of what the runtime
-involves. Furthermore, when they are spread out it complicates efforts
-that change the runtime.
-
-Consequently, the globals for Python's runtime state have been
-consolidated under a single top-level _PyRuntime global. No new globals
-should be added for runtime state. Instead, they should be added to
-_PyRuntimeState or one of its sub-structs. The check-c-globals script
-should be run to ensure that no new globals have been added:
-
- python3 Tools/c-globals/check-c-globals.py
-
-If it reports any globals then they should be resolved. If the globals
-are runtime state then they should be folded into _PyRuntimeState.
-Otherwise they should be added to ignored-globals.txt.