mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	gh-106320: Remove private _PyEval function (#108433)
Move private _PyEval functions to the internal C API (pycore_ceval.h): * _PyEval_GetBuiltin() * _PyEval_GetBuiltinId() * _PyEval_GetSwitchInterval() * _PyEval_MakePendingCalls() * _PyEval_SetProfile() * _PyEval_SetSwitchInterval() * _PyEval_SetTrace() No longer export most of these functions.
This commit is contained in:
		
							parent
							
								
									995f4c48e1
								
							
						
					
					
						commit
						c494fb333b
					
				
					 19 changed files with 37 additions and 12 deletions
				
			
		| 
						 | 
					@ -4,14 +4,9 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PyAPI_FUNC(void) PyEval_SetProfile(Py_tracefunc, PyObject *);
 | 
					PyAPI_FUNC(void) PyEval_SetProfile(Py_tracefunc, PyObject *);
 | 
				
			||||||
PyAPI_FUNC(void) PyEval_SetProfileAllThreads(Py_tracefunc, PyObject *);
 | 
					PyAPI_FUNC(void) PyEval_SetProfileAllThreads(Py_tracefunc, PyObject *);
 | 
				
			||||||
PyAPI_FUNC(int) _PyEval_SetProfile(PyThreadState *tstate, Py_tracefunc func, PyObject *arg);
 | 
					 | 
				
			||||||
PyAPI_FUNC(void) PyEval_SetTrace(Py_tracefunc, PyObject *);
 | 
					PyAPI_FUNC(void) PyEval_SetTrace(Py_tracefunc, PyObject *);
 | 
				
			||||||
PyAPI_FUNC(void) PyEval_SetTraceAllThreads(Py_tracefunc, PyObject *);
 | 
					PyAPI_FUNC(void) PyEval_SetTraceAllThreads(Py_tracefunc, PyObject *);
 | 
				
			||||||
PyAPI_FUNC(int) _PyEval_SetTrace(PyThreadState *tstate, Py_tracefunc func, PyObject *arg);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Helper to look up a builtin object */
 | 
					 | 
				
			||||||
PyAPI_FUNC(PyObject *) _PyEval_GetBuiltin(PyObject *);
 | 
					 | 
				
			||||||
PyAPI_FUNC(PyObject *) _PyEval_GetBuiltinId(_Py_Identifier *);
 | 
					 | 
				
			||||||
/* Look at the current frame's (if any) code's co_flags, and turn on
 | 
					/* Look at the current frame's (if any) code's co_flags, and turn on
 | 
				
			||||||
   the corresponding compiler flags in cf->cf_flags.  Return 1 if any
 | 
					   the corresponding compiler flags in cf->cf_flags.  Return 1 if any
 | 
				
			||||||
   flag was set, else return 0. */
 | 
					   flag was set, else return 0. */
 | 
				
			||||||
| 
						 | 
					@ -19,11 +14,6 @@ PyAPI_FUNC(int) PyEval_MergeCompilerFlags(PyCompilerFlags *cf);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PyAPI_FUNC(PyObject *) _PyEval_EvalFrameDefault(PyThreadState *tstate, struct _PyInterpreterFrame *f, int exc);
 | 
					PyAPI_FUNC(PyObject *) _PyEval_EvalFrameDefault(PyThreadState *tstate, struct _PyInterpreterFrame *f, int exc);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PyAPI_FUNC(void) _PyEval_SetSwitchInterval(unsigned long microseconds);
 | 
					 | 
				
			||||||
PyAPI_FUNC(unsigned long) _PyEval_GetSwitchInterval(void);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
PyAPI_FUNC(int) _PyEval_MakePendingCalls(PyThreadState *);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
PyAPI_FUNC(Py_ssize_t) PyUnstable_Eval_RequestCodeExtraIndex(freefunc);
 | 
					PyAPI_FUNC(Py_ssize_t) PyUnstable_Eval_RequestCodeExtraIndex(freefunc);
 | 
				
			||||||
// Old name -- remove when this API changes:
 | 
					// Old name -- remove when this API changes:
 | 
				
			||||||
_Py_DEPRECATED_EXTERNALLY(3.12) static inline Py_ssize_t
 | 
					_Py_DEPRECATED_EXTERNALLY(3.12) static inline Py_ssize_t
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,6 +15,23 @@ extern "C" {
 | 
				
			||||||
struct pyruntimestate;
 | 
					struct pyruntimestate;
 | 
				
			||||||
struct _ceval_runtime_state;
 | 
					struct _ceval_runtime_state;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Export for '_lsprof' shared extension
 | 
				
			||||||
 | 
					PyAPI_FUNC(int) _PyEval_SetProfile(PyThreadState *tstate, Py_tracefunc func, PyObject *arg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern int _PyEval_SetTrace(PyThreadState *tstate, Py_tracefunc func, PyObject *arg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Helper to look up a builtin object
 | 
				
			||||||
 | 
					// Export for 'array' shared extension
 | 
				
			||||||
 | 
					PyAPI_FUNC(PyObject*) _PyEval_GetBuiltin(PyObject *);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern PyObject* _PyEval_GetBuiltinId(_Py_Identifier *);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern void _PyEval_SetSwitchInterval(unsigned long microseconds);
 | 
				
			||||||
 | 
					extern unsigned long _PyEval_GetSwitchInterval(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Export for '_queue' shared extension
 | 
				
			||||||
 | 
					PyAPI_FUNC(int) _PyEval_MakePendingCalls(PyThreadState *);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef Py_DEFAULT_RECURSION_LIMIT
 | 
					#ifndef Py_DEFAULT_RECURSION_LIMIT
 | 
				
			||||||
#  define Py_DEFAULT_RECURSION_LIMIT 1000
 | 
					#  define Py_DEFAULT_RECURSION_LIMIT 1000
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,6 +4,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "Python.h"
 | 
					#include "Python.h"
 | 
				
			||||||
#include "pycore_call.h"          // _PyObject_CallNoArgs()
 | 
					#include "pycore_call.h"          // _PyObject_CallNoArgs()
 | 
				
			||||||
 | 
					#include "pycore_ceval.h"         // _PyEval_SetProfile()
 | 
				
			||||||
#include "pycore_pystate.h"       // _PyThreadState_GET()
 | 
					#include "pycore_pystate.h"       // _PyThreadState_GET()
 | 
				
			||||||
#include "rotatingtree.h"
 | 
					#include "rotatingtree.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,6 +3,7 @@
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "Python.h"
 | 
					#include "Python.h"
 | 
				
			||||||
 | 
					#include "pycore_ceval.h"         // _PyEval_MakePendingCalls()
 | 
				
			||||||
#include "pycore_moduleobject.h"  // _PyModule_GetState()
 | 
					#include "pycore_moduleobject.h"  // _PyModule_GetState()
 | 
				
			||||||
#include "pycore_time.h"          // _PyTime_t
 | 
					#include "pycore_time.h"          // _PyTime_t
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,6 +3,7 @@
 | 
				
			||||||
/* Interface to Sjoerd's portable C thread library */
 | 
					/* Interface to Sjoerd's portable C thread library */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "Python.h"
 | 
					#include "Python.h"
 | 
				
			||||||
 | 
					#include "pycore_ceval.h"         // _PyEval_MakePendingCalls()
 | 
				
			||||||
#include "pycore_interp.h"        // _PyInterpreterState.threads.count
 | 
					#include "pycore_interp.h"        // _PyInterpreterState.threads.count
 | 
				
			||||||
#include "pycore_moduleobject.h"  // _PyModule_GetState()
 | 
					#include "pycore_moduleobject.h"  // _PyModule_GetState()
 | 
				
			||||||
#include "pycore_pylifecycle.h"
 | 
					#include "pycore_pylifecycle.h"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,6 +10,7 @@
 | 
				
			||||||
#include "Python.h"
 | 
					#include "Python.h"
 | 
				
			||||||
#include "pycore_bytesobject.h"   // _PyBytes_Repeat
 | 
					#include "pycore_bytesobject.h"   // _PyBytes_Repeat
 | 
				
			||||||
#include "pycore_call.h"          // _PyObject_CallMethod()
 | 
					#include "pycore_call.h"          // _PyObject_CallMethod()
 | 
				
			||||||
 | 
					#include "pycore_ceval.h"         // _PyEval_GetBuiltin()
 | 
				
			||||||
#include "pycore_long.h"          // _PyLong_FromByteArray()
 | 
					#include "pycore_long.h"          // _PyLong_FromByteArray()
 | 
				
			||||||
#include "pycore_moduleobject.h"  // _PyModule_GetState()
 | 
					#include "pycore_moduleobject.h"  // _PyModule_GetState()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
#include "Python.h"
 | 
					#include "Python.h"
 | 
				
			||||||
#include "pycore_call.h"          // _PyObject_CallNoArgs()
 | 
					#include "pycore_call.h"          // _PyObject_CallNoArgs()
 | 
				
			||||||
 | 
					#include "pycore_ceval.h"         // _PyEval_GetBuiltin()
 | 
				
			||||||
#include "pycore_long.h"          // _PyLong_GetZero()
 | 
					#include "pycore_long.h"          // _PyLong_GetZero()
 | 
				
			||||||
#include "pycore_moduleobject.h"  // _PyModule_GetState()
 | 
					#include "pycore_moduleobject.h"  // _PyModule_GetState()
 | 
				
			||||||
#include "pycore_typeobject.h"    // _PyType_GetModuleState()
 | 
					#include "pycore_typeobject.h"    // _PyType_GetModuleState()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,6 +4,7 @@
 | 
				
			||||||
#include "pycore_abstract.h"      // _PyIndex_Check()
 | 
					#include "pycore_abstract.h"      // _PyIndex_Check()
 | 
				
			||||||
#include "pycore_bytes_methods.h"
 | 
					#include "pycore_bytes_methods.h"
 | 
				
			||||||
#include "pycore_bytesobject.h"
 | 
					#include "pycore_bytesobject.h"
 | 
				
			||||||
 | 
					#include "pycore_ceval.h"         // _PyEval_GetBuiltin()
 | 
				
			||||||
#include "pycore_object.h"        // _PyObject_GC_UNTRACK()
 | 
					#include "pycore_object.h"        // _PyObject_GC_UNTRACK()
 | 
				
			||||||
#include "pycore_strhex.h"        // _Py_strhex_with_sep()
 | 
					#include "pycore_strhex.h"        // _Py_strhex_with_sep()
 | 
				
			||||||
#include "pycore_long.h"          // _PyLong_FromUnsignedChar()
 | 
					#include "pycore_long.h"          // _PyLong_FromUnsignedChar()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,9 +2,10 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "Python.h"
 | 
					#include "Python.h"
 | 
				
			||||||
#include "pycore_abstract.h"      // _PyIndex_Check()
 | 
					#include "pycore_abstract.h"      // _PyIndex_Check()
 | 
				
			||||||
#include "pycore_bytesobject.h"   // _PyBytes_Find(), _PyBytes_Repeat()
 | 
					 | 
				
			||||||
#include "pycore_bytes_methods.h" // _Py_bytes_startswith()
 | 
					#include "pycore_bytes_methods.h" // _Py_bytes_startswith()
 | 
				
			||||||
 | 
					#include "pycore_bytesobject.h"   // _PyBytes_Find(), _PyBytes_Repeat()
 | 
				
			||||||
#include "pycore_call.h"          // _PyObject_CallNoArgs()
 | 
					#include "pycore_call.h"          // _PyObject_CallNoArgs()
 | 
				
			||||||
 | 
					#include "pycore_ceval.h"         // _PyEval_GetBuiltin()
 | 
				
			||||||
#include "pycore_format.h"        // F_LJUST
 | 
					#include "pycore_format.h"        // F_LJUST
 | 
				
			||||||
#include "pycore_global_objects.h"// _Py_GET_GLOBAL_OBJECT()
 | 
					#include "pycore_global_objects.h"// _Py_GET_GLOBAL_OBJECT()
 | 
				
			||||||
#include "pycore_initconfig.h"    // _PyStatus_OK()
 | 
					#include "pycore_initconfig.h"    // _PyStatus_OK()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,6 +2,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "Python.h"
 | 
					#include "Python.h"
 | 
				
			||||||
#include "pycore_call.h"          // _PyObject_VectorcallTstate()
 | 
					#include "pycore_call.h"          // _PyObject_VectorcallTstate()
 | 
				
			||||||
 | 
					#include "pycore_ceval.h"         // _PyEval_GetBuiltin()
 | 
				
			||||||
#include "pycore_object.h"
 | 
					#include "pycore_object.h"
 | 
				
			||||||
#include "pycore_pyerrors.h"
 | 
					#include "pycore_pyerrors.h"
 | 
				
			||||||
#include "pycore_pystate.h"       // _PyThreadState_GET()
 | 
					#include "pycore_pystate.h"       // _PyThreadState_GET()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -115,6 +115,7 @@ As a consequence of this, split keys have a maximum size of 16.
 | 
				
			||||||
#include "Python.h"
 | 
					#include "Python.h"
 | 
				
			||||||
#include "pycore_bitutils.h"      // _Py_bit_length
 | 
					#include "pycore_bitutils.h"      // _Py_bit_length
 | 
				
			||||||
#include "pycore_call.h"          // _PyObject_CallNoArgs()
 | 
					#include "pycore_call.h"          // _PyObject_CallNoArgs()
 | 
				
			||||||
 | 
					#include "pycore_ceval.h"         // _PyEval_GetBuiltin()
 | 
				
			||||||
#include "pycore_code.h"          // stats
 | 
					#include "pycore_code.h"          // stats
 | 
				
			||||||
#include "pycore_dict.h"          // PyDictKeysObject
 | 
					#include "pycore_dict.h"          // PyDictKeysObject
 | 
				
			||||||
#include "pycore_gc.h"            // _PyObject_GC_IS_TRACKED()
 | 
					#include "pycore_gc.h"            // _PyObject_GC_IS_TRACKED()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,7 @@
 | 
				
			||||||
// types.GenericAlias -- used to represent e.g. list[int].
 | 
					// types.GenericAlias -- used to represent e.g. list[int].
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "Python.h"
 | 
					#include "Python.h"
 | 
				
			||||||
 | 
					#include "pycore_ceval.h"         // _PyEval_GetBuiltin()
 | 
				
			||||||
#include "pycore_object.h"
 | 
					#include "pycore_object.h"
 | 
				
			||||||
#include "pycore_unionobject.h"   // _Py_union_type_or, _PyGenericAlias_Check
 | 
					#include "pycore_unionobject.h"   // _Py_union_type_or, _PyGenericAlias_Check
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,6 +3,7 @@
 | 
				
			||||||
#include "Python.h"
 | 
					#include "Python.h"
 | 
				
			||||||
#include "pycore_abstract.h"      // _PyObject_HasLen()
 | 
					#include "pycore_abstract.h"      // _PyObject_HasLen()
 | 
				
			||||||
#include "pycore_call.h"          // _PyObject_CallNoArgs()
 | 
					#include "pycore_call.h"          // _PyObject_CallNoArgs()
 | 
				
			||||||
 | 
					#include "pycore_ceval.h"         // _PyEval_GetBuiltin()
 | 
				
			||||||
#include "pycore_object.h"        // _PyObject_GC_TRACK()
 | 
					#include "pycore_object.h"        // _PyObject_GC_TRACK()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct {
 | 
					typedef struct {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,6 +2,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "Python.h"
 | 
					#include "Python.h"
 | 
				
			||||||
#include "pycore_abstract.h"      // _PyIndex_Check()
 | 
					#include "pycore_abstract.h"      // _PyIndex_Check()
 | 
				
			||||||
 | 
					#include "pycore_ceval.h"         // _PyEval_GetBuiltin()
 | 
				
			||||||
#include "pycore_interp.h"        // PyInterpreterState.list
 | 
					#include "pycore_interp.h"        // PyInterpreterState.list
 | 
				
			||||||
#include "pycore_list.h"          // struct _Py_list_state, _PyListIterObject
 | 
					#include "pycore_list.h"          // struct _Py_list_state, _PyListIterObject
 | 
				
			||||||
#include "pycore_long.h"          // _PyLong_DigitCount
 | 
					#include "pycore_long.h"          // _PyLong_DigitCount
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -465,6 +465,7 @@ Potential Optimizations
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "Python.h"
 | 
					#include "Python.h"
 | 
				
			||||||
 | 
					#include "pycore_ceval.h"         // _PyEval_GetBuiltin()
 | 
				
			||||||
#include "pycore_call.h"          // _PyObject_CallNoArgs()
 | 
					#include "pycore_call.h"          // _PyObject_CallNoArgs()
 | 
				
			||||||
#include "pycore_object.h"        // _PyObject_GC_UNTRACK()
 | 
					#include "pycore_object.h"        // _PyObject_GC_UNTRACK()
 | 
				
			||||||
#include "pycore_dict.h"          // _Py_dict_lookup()
 | 
					#include "pycore_dict.h"          // _Py_dict_lookup()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,6 +2,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "Python.h"
 | 
					#include "Python.h"
 | 
				
			||||||
#include "pycore_abstract.h"      // _PyIndex_Check()
 | 
					#include "pycore_abstract.h"      // _PyIndex_Check()
 | 
				
			||||||
 | 
					#include "pycore_ceval.h"         // _PyEval_GetBuiltin()
 | 
				
			||||||
#include "pycore_long.h"          // _PyLong_GetZero()
 | 
					#include "pycore_long.h"          // _PyLong_GetZero()
 | 
				
			||||||
#include "pycore_modsupport.h"    // _PyArg_NoKwnames()
 | 
					#include "pycore_modsupport.h"    // _PyArg_NoKwnames()
 | 
				
			||||||
#include "pycore_range.h"
 | 
					#include "pycore_range.h"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -32,6 +32,7 @@
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "Python.h"
 | 
					#include "Python.h"
 | 
				
			||||||
 | 
					#include "pycore_ceval.h"         // _PyEval_GetBuiltin()
 | 
				
			||||||
#include "pycore_dict.h"          // _PyDict_Contains_KnownHash()
 | 
					#include "pycore_dict.h"          // _PyDict_Contains_KnownHash()
 | 
				
			||||||
#include "pycore_modsupport.h"    // _PyArg_NoKwnames()
 | 
					#include "pycore_modsupport.h"    // _PyArg_NoKwnames()
 | 
				
			||||||
#include "pycore_object.h"        // _PyObject_GC_UNTRACK()
 | 
					#include "pycore_object.h"        // _PyObject_GC_UNTRACK()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,6 +3,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "Python.h"
 | 
					#include "Python.h"
 | 
				
			||||||
#include "pycore_abstract.h"      // _PyIndex_Check()
 | 
					#include "pycore_abstract.h"      // _PyIndex_Check()
 | 
				
			||||||
 | 
					#include "pycore_ceval.h"         // _PyEval_GetBuiltin()
 | 
				
			||||||
#include "pycore_gc.h"            // _PyObject_GC_IS_TRACKED()
 | 
					#include "pycore_gc.h"            // _PyObject_GC_IS_TRACKED()
 | 
				
			||||||
#include "pycore_initconfig.h"    // _PyStatus_OK()
 | 
					#include "pycore_initconfig.h"    // _PyStatus_OK()
 | 
				
			||||||
#include "pycore_modsupport.h"    // _PyArg_NoKwnames()
 | 
					#include "pycore_modsupport.h"    // _PyArg_NoKwnames()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -43,6 +43,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
#include "pycore_atomic_funcs.h"  // _Py_atomic_size_get()
 | 
					#include "pycore_atomic_funcs.h"  // _Py_atomic_size_get()
 | 
				
			||||||
#include "pycore_bytes_methods.h" // _Py_bytes_lower()
 | 
					#include "pycore_bytes_methods.h" // _Py_bytes_lower()
 | 
				
			||||||
#include "pycore_bytesobject.h"   // _PyBytes_Repeat()
 | 
					#include "pycore_bytesobject.h"   // _PyBytes_Repeat()
 | 
				
			||||||
 | 
					#include "pycore_ceval.h"         // _PyEval_GetBuiltin()
 | 
				
			||||||
#include "pycore_codecs.h"        // _PyCodec_Lookup()
 | 
					#include "pycore_codecs.h"        // _PyCodec_Lookup()
 | 
				
			||||||
#include "pycore_format.h"        // F_LJUST
 | 
					#include "pycore_format.h"        // F_LJUST
 | 
				
			||||||
#include "pycore_initconfig.h"    // _PyStatus_OK()
 | 
					#include "pycore_initconfig.h"    // _PyStatus_OK()
 | 
				
			||||||
| 
						 | 
					@ -56,6 +57,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
#include "pycore_ucnhash.h"       // _PyUnicode_Name_CAPI
 | 
					#include "pycore_ucnhash.h"       // _PyUnicode_Name_CAPI
 | 
				
			||||||
#include "pycore_unicodeobject.h" // struct _Py_unicode_state
 | 
					#include "pycore_unicodeobject.h" // struct _Py_unicode_state
 | 
				
			||||||
#include "pycore_unicodeobject_generated.h"  // _PyUnicode_InitStaticStrings()
 | 
					#include "pycore_unicodeobject_generated.h"  // _PyUnicode_InitStaticStrings()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "stringlib/eq.h"         // unicode_eq()
 | 
					#include "stringlib/eq.h"         // unicode_eq()
 | 
				
			||||||
#include <stddef.h>               // ptrdiff_t
 | 
					#include <stddef.h>               // ptrdiff_t
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue