https://github.com/python/cpython/commit/978e37bb5f979cccce36613637ac2d94b43c71b2
commit: 978e37bb5f979cccce36613637ac2d94b43c71b2
branch: main
author: Victor Stinner <vstin...@python.org>
committer: vstinner <vstin...@python.org>
date: 2025-03-17T12:32:43+01:00
summary:

gh-131238: Add explicit includes to pycore headers (#131257)

files:
M Modules/_io/_iomodule.c
M Modules/_operator.c
M Modules/_posixsubprocess.c
M Modules/_zoneinfo.c
M Modules/faulthandler.c
M Objects/fileobject.c
M Parser/action_helpers.c
M Parser/asdl_c.py
M Parser/tokenizer/file_tokenizer.c
M Python/Python-ast.c
M Python/ast.c
M Python/ast_opt.c
M Python/codecs.c
M Python/compile.c
M Python/dtoa.c
M Python/errors.c
M Python/importdl.c
M Python/marshal.c
M Python/perf_jit_trampoline.c
M Python/perf_trampoline.c
M Python/qsbr.c
M Python/symtable.c
M Python/thread.c

diff --git a/Modules/_io/_iomodule.c b/Modules/_io/_iomodule.c
index 015e9e36cada43..bd4d994454dfcd 100644
--- a/Modules/_io/_iomodule.c
+++ b/Modules/_io/_iomodule.c
@@ -9,7 +9,7 @@
 
 #include "Python.h"
 #include "pycore_abstract.h"      // _PyNumber_Index()
-#include "pycore_initconfig.h"    // _PyStatus_OK()
+#include "pycore_interp.h"        // _PyInterpreterState_GetConfig()
 #include "pycore_long.h"          // _PyLong_IsNegative()
 #include "pycore_pyerrors.h"      // _PyErr_ChainExceptions1()
 #include "pycore_pystate.h"       // _PyInterpreterState_GET()
diff --git a/Modules/_operator.c b/Modules/_operator.c
index c287ea2780c528..1cc05c39f5dbad 100644
--- a/Modules/_operator.c
+++ b/Modules/_operator.c
@@ -1,8 +1,10 @@
 #include "Python.h"
 #include "pycore_modsupport.h"    // _PyArg_NoKwnames()
 #include "pycore_moduleobject.h"  // _PyModule_GetState()
-#include "pycore_runtime.h"       // _Py_ID()
 #include "pycore_pystate.h"       // _PyInterpreterState_GET()
+#include "pycore_tuple.h"         // _PyTuple_ITEMS()
+#include "pycore_typeobject.h"    // _PyType_GetModuleState()
+#include "pycore_unicodeobject.h" // _PyUnicode_InternMortal()
 
 
 #include "clinic/_operator.c.h"
diff --git a/Modules/_posixsubprocess.c b/Modules/_posixsubprocess.c
index ad6d7ceda84e37..8f4b57017635f8 100644
--- a/Modules/_posixsubprocess.c
+++ b/Modules/_posixsubprocess.c
@@ -4,9 +4,10 @@
 #endif
 
 #include "Python.h"
-#include "pycore_fileutils.h"
-#include "pycore_pystate.h"
+#include "pycore_interp.h"        // _PyInterpreterState_GetFinalizing()
+#include "pycore_pystate.h"       // _PyInterpreterState_GET()
 #include "pycore_signal.h"        // _Py_RestoreSignals()
+
 #if defined(HAVE_PIPE2) && !defined(_GNU_SOURCE)
 #  define _GNU_SOURCE
 #endif
diff --git a/Modules/_zoneinfo.c b/Modules/_zoneinfo.c
index 8c882bef24867e..7e761b287792e1 100644
--- a/Modules/_zoneinfo.c
+++ b/Modules/_zoneinfo.c
@@ -6,11 +6,13 @@
 #include "pycore_critical_section.h"  // 
_Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED()
 #include "pycore_long.h"          // _PyLong_GetOne()
 #include "pycore_pyerrors.h"      // _PyErr_ChainExceptions1()
+#include "pycore_typeobject.h"    // _PyType_GetModuleState()
 
 #include "datetime.h"             // PyDateTime_TZInfo
 
 #include <stddef.h>               // offsetof()
-#include <stdint.h>
+#include <stdint.h>               // int64_t
+
 
 #include "clinic/_zoneinfo.c.h"
 /*[clinic input]
diff --git a/Modules/faulthandler.c b/Modules/faulthandler.c
index fac10190d314da..910de4d34454f8 100644
--- a/Modules/faulthandler.c
+++ b/Modules/faulthandler.c
@@ -1,8 +1,9 @@
 #include "Python.h"
-#include "pycore_ceval.h"         // _PyEval_IsGILEnabled
-#include "pycore_initconfig.h"    // _PyStatus_ERR
-#include "pycore_pyerrors.h"      // _Py_DumpExtensionModules
+#include "pycore_ceval.h"         // _PyEval_IsGILEnabled()
+#include "pycore_initconfig.h"    // _PyStatus_ERR()
+#include "pycore_pyerrors.h"      // _Py_DumpExtensionModules()
 #include "pycore_pystate.h"       // _PyThreadState_GET()
+#include "pycore_runtime.h"       // _Py_ID()
 #include "pycore_signal.h"        // Py_NSIG
 #include "pycore_sysmodule.h"     // _PySys_GetRequiredAttr()
 #include "pycore_time.h"          // _PyTime_FromSecondsObject()
@@ -28,6 +29,7 @@
 #  include <sys/auxv.h>           // getauxval()
 #endif
 
+
 /* Sentinel to ignore all_threads on free-threading */
 #define FT_IGNORE_ALL_THREADS 2
 
diff --git a/Objects/fileobject.c b/Objects/fileobject.c
index c9a20ccd75324a..4898e046ff79a6 100644
--- a/Objects/fileobject.c
+++ b/Objects/fileobject.c
@@ -3,11 +3,13 @@
 #include "Python.h"
 #include "pycore_call.h"          // _PyObject_CallNoArgs()
 #include "pycore_runtime.h"       // _PyRuntime
+#include "pycore_unicodeobject.h" // _PyUnicode_AsUTF8String()
 
 #ifdef HAVE_UNISTD_H
 #  include <unistd.h>             // isatty()
 #endif
 
+
 #if defined(HAVE_GETC_UNLOCKED) && !defined(_Py_MEMORY_SANITIZER)
    /* clang MemorySanitizer doesn't yet understand getc_unlocked. */
 #  define GETC(f) getc_unlocked(f)
diff --git a/Parser/action_helpers.c b/Parser/action_helpers.c
index 52d63401a6e6b5..88f478af8b2d2d 100644
--- a/Parser/action_helpers.c
+++ b/Parser/action_helpers.c
@@ -1,9 +1,12 @@
 #include <Python.h>
 
 #include "pegen.h"
-#include "string_parser.h"
-#include "pycore_runtime.h"         // _PyRuntime
+#include "string_parser.h"          // _PyPegen_decode_string()
+
 #include "pycore_pystate.h"         // _PyInterpreterState_GET()
+#include "pycore_runtime.h"         // _PyRuntime
+#include "pycore_unicodeobject.h"   // _PyUnicode_InternImmortal()
+
 
 void *
 _PyPegen_dummy_name(Parser *p, ...)
diff --git a/Parser/asdl_c.py b/Parser/asdl_c.py
index 5c8014a47d5177..82d84ac5bde381 100755
--- a/Parser/asdl_c.py
+++ b/Parser/asdl_c.py
@@ -2273,15 +2273,16 @@ def generate_module_def(mod, metadata, f, internal_h):
         #include "Python.h"
         #include "pycore_ast.h"
         #include "pycore_ast_state.h"     // struct ast_state
-        #include "pycore_ceval.h"         // _Py_EnterRecursiveCall
+        #include "pycore_ceval.h"         // _Py_EnterRecursiveCall()
         #include "pycore_lock.h"          // _PyOnceFlag
-        #include "pycore_interp.h"        // _PyInterpreterState.ast
         #include "pycore_modsupport.h"    // _PyArg_NoPositional()
         #include "pycore_pystate.h"       // _PyInterpreterState_GET()
-        #include "pycore_setobject.h"     // _PySet_NextEntry(), 
_PySet_Update()
+        #include "pycore_runtime.h"       // _Py_ID()
+        #include "pycore_setobject.h"     // _PySet_NextEntry()
         #include "pycore_unionobject.h"   // _Py_union_type_or
-        #include "structmember.h"
-        #include <stddef.h>
+
+        #include <stddef.h>               // offsetof()
+
 
         // Forward declaration
         static int init_types(void *arg);
diff --git a/Parser/tokenizer/file_tokenizer.c 
b/Parser/tokenizer/file_tokenizer.c
index efe9fb9b56abaf..15fc9348f8ae56 100644
--- a/Parser/tokenizer/file_tokenizer.c
+++ b/Parser/tokenizer/file_tokenizer.c
@@ -1,8 +1,9 @@
 #include "Python.h"
-#include "pycore_call.h"
-#include "pycore_import.h"
-#include "pycore_fileutils.h"
-#include "errcode.h"
+#include "pycore_call.h"          // _PyObject_CallNoArgs()
+#include "pycore_fileutils.h"     // _Py_UniversalNewlineFgetsWithSize()
+#include "pycore_runtime.h"       // _Py_ID()
+
+#include "errcode.h"              // E_NOMEM
 
 #ifdef HAVE_UNISTD_H
 #  include <unistd.h>             // lseek(), read()
@@ -13,6 +14,7 @@
 #include "../lexer/lexer.h"
 #include "../lexer/buffer.h"
 
+
 static int
 tok_concatenate_interactive_new_line(struct tok_state *tok, const char *line) {
     assert(tok->fp_interactive);
diff --git a/Python/Python-ast.c b/Python/Python-ast.c
index 638e3f67e1cfdd..98dcdc4ed0be70 100644
--- a/Python/Python-ast.c
+++ b/Python/Python-ast.c
@@ -3,15 +3,16 @@
 #include "Python.h"
 #include "pycore_ast.h"
 #include "pycore_ast_state.h"     // struct ast_state
-#include "pycore_ceval.h"         // _Py_EnterRecursiveCall
+#include "pycore_ceval.h"         // _Py_EnterRecursiveCall()
 #include "pycore_lock.h"          // _PyOnceFlag
-#include "pycore_interp.h"        // _PyInterpreterState.ast
 #include "pycore_modsupport.h"    // _PyArg_NoPositional()
 #include "pycore_pystate.h"       // _PyInterpreterState_GET()
-#include "pycore_setobject.h"     // _PySet_NextEntry(), _PySet_Update()
+#include "pycore_runtime.h"       // _Py_ID()
+#include "pycore_setobject.h"     // _PySet_NextEntry()
 #include "pycore_unionobject.h"   // _Py_union_type_or
-#include "structmember.h"
-#include <stddef.h>
+
+#include <stddef.h>               // offsetof()
+
 
 // Forward declaration
 static int init_types(void *arg);
diff --git a/Python/ast.c b/Python/ast.c
index 597df5b63b5f39..7ee884357b41e8 100644
--- a/Python/ast.c
+++ b/Python/ast.c
@@ -5,9 +5,10 @@
 #include "Python.h"
 #include "pycore_ast.h"           // asdl_stmt_seq
 #include "pycore_pystate.h"       // _PyThreadState_GET()
+#include "pycore_unicodeobject.h" // _PyUnicode_EqualToASCIIString()
+
+#include <stdbool.h>              // bool
 
-#include <assert.h>
-#include <stdbool.h>
 
 #define ENTER_RECURSIVE() \
 if (Py_EnterRecursiveCall(" during compilation")) { \
diff --git a/Python/ast_opt.c b/Python/ast_opt.c
index 2c6e16817f2aad..12414453c481d7 100644
--- a/Python/ast_opt.c
+++ b/Python/ast_opt.c
@@ -2,9 +2,8 @@
 #include "Python.h"
 #include "pycore_ast.h"           // _PyAST_GetDocString()
 #include "pycore_format.h"        // F_LJUST
-#include "pycore_long.h"          // _PyLong
-#include "pycore_pystate.h"       // _PyThreadState_GET()
-#include "pycore_setobject.h"     // _PySet_NextEntry()
+#include "pycore_runtime.h"       // _Py_STR()
+#include "pycore_unicodeobject.h" // _PyUnicode_EqualToASCIIString()
 
 
 typedef struct {
diff --git a/Python/codecs.c b/Python/codecs.c
index 2453929c8c789a..51f4beb84669c8 100644
--- a/Python/codecs.c
+++ b/Python/codecs.c
@@ -11,11 +11,12 @@ Copyright (c) Corporation for National Research Initiatives.
 #include "Python.h"
 #include "pycore_call.h"          // _PyObject_CallNoArgs()
 #include "pycore_interp.h"        // PyInterpreterState.codec_search_path
-#include "pycore_lock.h"          // PyMutex
 #include "pycore_pyerrors.h"      // _PyErr_FormatNote()
 #include "pycore_pystate.h"       // _PyInterpreterState_GET()
+#include "pycore_runtime.h"       // _Py_ID()
 #include "pycore_ucnhash.h"       // _PyUnicode_Name_CAPI
 
+
 static const char *codecs_builtin_error_handlers[] = {
     "strict", "ignore", "replace",
     "xmlcharrefreplace", "backslashreplace", "namereplace",
diff --git a/Python/compile.c b/Python/compile.c
index cd68b897cf6188..a52183ef5156e4 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -15,16 +15,20 @@
  */
 
 #include "Python.h"
-#include "pycore_ast.h"           // PyAST_Check, _PyAST_GetDocString()
+#include "pycore_ast.h"           // PyAST_Check()
+#include "pycore_code.h"          // _PyCode_GetFreevars()
 #include "pycore_compile.h"
-#include "pycore_flowgraph.h"
+#include "pycore_flowgraph.h"     // _PyCfg_FromInstructionSequence()
 #include "pycore_pystate.h"       // _Py_GetConfig()
+#include "pycore_runtime.h"       // _Py_ID()
 #include "pycore_setobject.h"     // _PySet_NextEntry()
+#include "pycore_unicodeobject.h" // _PyUnicode_EqualToASCIIString()
 
 #include "cpython/code.h"
 
 #include <stdbool.h>
 
+
 #undef SUCCESS
 #undef ERROR
 #define SUCCESS 0
diff --git a/Python/dtoa.c b/Python/dtoa.c
index 61d776d9a20687..3de150351a4ef8 100644
--- a/Python/dtoa.c
+++ b/Python/dtoa.c
@@ -119,6 +119,7 @@
 
 #include "Python.h"
 #include "pycore_dtoa.h"          // _PY_SHORT_FLOAT_REPR
+#include "pycore_interp_structs.h"// struct Bigint
 #include "pycore_pystate.h"       // _PyInterpreterState_GET()
 #include <stdlib.h>               // exit()
 
diff --git a/Python/errors.c b/Python/errors.c
index bf48c107e253a3..d2f331269ed0bc 100644
--- a/Python/errors.c
+++ b/Python/errors.c
@@ -7,9 +7,11 @@
 #include "pycore_initconfig.h"    // _PyStatus_ERR()
 #include "pycore_pyerrors.h"      // _PyErr_Format()
 #include "pycore_pystate.h"       // _PyThreadState_GET()
+#include "pycore_runtime.h"       // _Py_ID()
 #include "pycore_structseq.h"     // _PyStructSequence_FiniBuiltin()
 #include "pycore_sysmodule.h"     // _PySys_GetOptionalAttr()
 #include "pycore_traceback.h"     // _PyTraceBack_FromFrame()
+#include "pycore_unicodeobject.h" // _PyUnicode_Equal()
 
 #ifdef MS_WINDOWS
 #  include <windows.h>
@@ -17,6 +19,7 @@
 #  include <stdlib.h>             // _sys_nerr
 #endif
 
+
 /* Forward declarations */
 static PyObject *
 _PyErr_FormatV(PyThreadState *tstate, PyObject *exception,
diff --git a/Python/importdl.c b/Python/importdl.c
index 996ca7ed2a3108..87c44891407db5 100644
--- a/Python/importdl.c
+++ b/Python/importdl.c
@@ -2,13 +2,13 @@
 /* Support for dynamic loading of extension modules */
 
 #include "Python.h"
-#include "pycore_call.h"
-#include "pycore_import.h"
+#include "pycore_call.h"          // _PyObject_CallMethod()
+#include "pycore_import.h"        // _PyImport_SwapPackageContext()
+#include "pycore_importdl.h"      // struct _Py_ext_module_loader_info
+#include "pycore_moduleobject.h"  // _PyModule_GetDef()
 #include "pycore_pyerrors.h"      // _PyErr_FormatFromCause()
-#include "pycore_pystate.h"
-#include "pycore_runtime.h"
+#include "pycore_runtime.h"       // _Py_ID()
 
-#include "pycore_importdl.h"
 
 /* ./configure sets HAVE_DYNAMIC_LOADING if dynamic loading of modules is
    supported on this platform. configure will then compile and link in one
diff --git a/Python/marshal.c b/Python/marshal.c
index cf7011652513ae..b39c1a5b1ade50 100644
--- a/Python/marshal.c
+++ b/Python/marshal.c
@@ -9,17 +9,19 @@
 #include "Python.h"
 #include "pycore_call.h"             // _PyObject_CallNoArgs()
 #include "pycore_code.h"             // _PyCode_New()
-#include "pycore_critical_section.h" // Py_BEGIN_CRITICAL_SECTION()
 #include "pycore_hashtable.h"        // _Py_hashtable_t
-#include "pycore_long.h"             // _PyLong_DigitCount
-#include "pycore_setobject.h"        // _PySet_NextEntry()
-#include "marshal.h"                 // Py_MARSHAL_VERSION
+#include "pycore_long.h"             // _PyLong_IsZero()
 #include "pycore_pystate.h"          // _PyInterpreterState_GET()
+#include "pycore_setobject.h"        // _PySet_NextEntryRef()
+#include "pycore_unicodeobject.h"    // _PyUnicode_InternImmortal()
+
+#include "marshal.h"                 // Py_MARSHAL_VERSION
 
 #ifdef __APPLE__
 #  include "TargetConditionals.h"
 #endif /* __APPLE__ */
 
+
 /*[clinic input]
 module marshal
 [clinic start generated code]*/
diff --git a/Python/perf_jit_trampoline.c b/Python/perf_jit_trampoline.c
index 0a8945958b4b3c..1211e0e9f112b7 100644
--- a/Python/perf_jit_trampoline.c
+++ b/Python/perf_jit_trampoline.c
@@ -2,6 +2,7 @@
 #include "pycore_ceval.h"         // _PyPerf_Callbacks
 #include "pycore_frame.h"
 #include "pycore_interp.h"
+#include "pycore_runtime.h"       // _PyRuntime
 
 
 #ifdef PY_HAVE_PERF_TRAMPOLINE
diff --git a/Python/perf_trampoline.c b/Python/perf_trampoline.c
index ad077dc861b0a7..a6a32b98fa9ef5 100644
--- a/Python/perf_trampoline.c
+++ b/Python/perf_trampoline.c
@@ -133,6 +133,7 @@ any DWARF information available for them).
 #include "pycore_ceval.h"         // _PyPerf_Callbacks
 #include "pycore_frame.h"
 #include "pycore_interp.h"
+#include "pycore_runtime.h"       // _PyRuntime
 
 
 #ifdef PY_HAVE_PERF_TRAMPOLINE
diff --git a/Python/qsbr.c b/Python/qsbr.c
index 862b2e59eb77d5..bf34fb2523dfc8 100644
--- a/Python/qsbr.c
+++ b/Python/qsbr.c
@@ -32,10 +32,10 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "Python.h"
-#include "pycore_initconfig.h"      // _PyStatus_NO_MEMORY()
-#include "pycore_lock.h"            // PyMutex_Lock()
-#include "pycore_qsbr.h"
+#include "pycore_interp.h"          // PyInterpreterState
 #include "pycore_pystate.h"         // _PyThreadState_GET()
+#include "pycore_qsbr.h"
+#include "pycore_tstate.h"          // _PyThreadStateImpl
 
 
 // Starting size of the array of qsbr thread states
diff --git a/Python/symtable.c b/Python/symtable.c
index 4d6384f597f1f0..9e2c0fb7294226 100644
--- a/Python/symtable.c
+++ b/Python/symtable.c
@@ -2,7 +2,12 @@
 #include "pycore_ast.h"           // stmt_ty
 #include "pycore_parser.h"        // _PyParser_ASTFromString()
 #include "pycore_pystate.h"       // _PyThreadState_GET()
+#include "pycore_runtime.h"       // _Py_ID()
 #include "pycore_symtable.h"      // PySTEntryObject
+#include "pycore_unicodeobject.h" // _PyUnicode_EqualToASCIIString()
+
+#include <stddef.h>               // offsetof()
+
 
 // Set this to 1 to dump all symtables to stdout for debugging
 #define _PY_DUMP_SYMTABLE 0
diff --git a/Python/thread.c b/Python/thread.c
index b31d1dc5e770ef..4ff5f11a34852b 100644
--- a/Python/thread.c
+++ b/Python/thread.c
@@ -8,8 +8,9 @@
 #include "Python.h"
 #include "pycore_ceval.h"         // _PyEval_MakePendingCalls()
 #include "pycore_pystate.h"       // _PyInterpreterState_GET()
-#include "pycore_structseq.h"     // _PyStructSequence_FiniBuiltin()
 #include "pycore_pythread.h"      // _POSIX_THREADS
+#include "pycore_runtime.h"       // _PyRuntime
+#include "pycore_structseq.h"     // _PyStructSequence_FiniBuiltin()
 
 #ifndef DONT_HAVE_STDIO_H
 #  include <stdio.h>

_______________________________________________
Python-checkins mailing list -- python-checkins@python.org
To unsubscribe send an email to python-checkins-le...@python.org
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: arch...@mail-archive.com

Reply via email to