https://github.com/python/cpython/commit/978e37bb5f979cccce36613637ac2d94b43c71b2
commit: 978e37bb5f979cccce36613637ac2d94b43c71b2
branch: main
author: Victor Stinner <[email protected]>
committer: vstinner <[email protected]>
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 -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]