GH-131238: Core header refactor (GH-131250)

* Moves most structs in pycore_ header files into pycore_structs.h and pycore_runtime_structs.h

* Removes many cross-header dependencies
This commit is contained in:
Mark Shannon 2025-03-17 09:19:04 +00:00 committed by GitHub
parent 3ae67ba97e
commit a1aeec61c4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
57 changed files with 1481 additions and 1356 deletions

View file

@ -16,33 +16,11 @@ extern PyObject* _PyFunction_Vectorcall(
size_t nargsf,
PyObject *kwnames);
#define FUNC_MAX_WATCHERS 8
#define FUNC_VERSION_UNSET 0
#define FUNC_VERSION_CLEARED 1
#define FUNC_VERSION_FIRST_VALID 2
#define FUNC_VERSION_CACHE_SIZE (1<<12) /* Must be a power of 2 */
struct _func_version_cache_item {
PyFunctionObject *func;
PyObject *code;
};
struct _py_func_state {
#ifdef Py_GIL_DISABLED
// Protects next_version
PyMutex mutex;
#endif
uint32_t next_version;
// Borrowed references to function and code objects whose
// func_version % FUNC_VERSION_CACHE_SIZE
// once was equal to the index in the table.
// They are cleared when the function or code object is deallocated.
struct _func_version_cache_item func_version_cache[FUNC_VERSION_CACHE_SIZE];
};
extern PyFunctionObject* _PyFunction_FromConstructor(PyFrameConstructor *constr);
static inline int