diff options
author | Nikita Nemkin <nikita@nemkin.ru> | 2020-06-23 19:33:23 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-23 19:33:23 (GMT) |
commit | 2c6e4e91c5a4d3f25908108f4ed32aba936df70c (patch) | |
tree | ef119b8cbd9e36f71fe2fc8e0a26d29bf731f895 | |
parent | 4efc3360c9a83d5891f27ed67b4f0ab7275d2ab4 (diff) | |
download | cpython-2c6e4e91c5a4d3f25908108f4ed32aba936df70c.zip cpython-2c6e4e91c5a4d3f25908108f4ed32aba936df70c.tar.gz cpython-2c6e4e91c5a4d3f25908108f4ed32aba936df70c.tar.bz2 |
bpo-41039: Simplify python3.dll build (GH-20989)
Use linker comment #pragma and preprocessor for re-exporting stable
API functions and variables.
Module definition file, custom build targets and entry point code
become unnecessary and can be removed.
This change also fixes missing _PyErr_BadInternalCall export on x86.
-rw-r--r-- | Misc/NEWS.d/next/Windows/2020-06-23-03-12-57.bpo-41039.0hgd0s.rst | 2 | ||||
-rw-r--r-- | PC/python3.def | 804 | ||||
-rw-r--r-- | PC/python3dll.c | 823 | ||||
-rw-r--r-- | PCbuild/python3dll.vcxproj | 77 | ||||
-rw-r--r-- | PCbuild/python3dll.vcxproj.filters | 5 |
5 files changed, 818 insertions, 893 deletions
diff --git a/Misc/NEWS.d/next/Windows/2020-06-23-03-12-57.bpo-41039.0hgd0s.rst b/Misc/NEWS.d/next/Windows/2020-06-23-03-12-57.bpo-41039.0hgd0s.rst new file mode 100644 index 0000000..acc3f74 --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2020-06-23-03-12-57.bpo-41039.0hgd0s.rst @@ -0,0 +1,2 @@ +Stable ABI redirection DLL (python3.dll) now uses ``#pragma +comment(linker)`` for re-exporting. diff --git a/PC/python3.def b/PC/python3.def deleted file mode 100644 index 2a6aaf4..0000000 --- a/PC/python3.def +++ /dev/null @@ -1,804 +0,0 @@ -; This file specifies the import forwarding for python3.dll -; It is used when building python3dll.vcxproj -LIBRARY "python3" -EXPORTS - PyArg_Parse=python310.PyArg_Parse - PyArg_ParseTuple=python310.PyArg_ParseTuple - PyArg_ParseTupleAndKeywords=python310.PyArg_ParseTupleAndKeywords - PyArg_UnpackTuple=python310.PyArg_UnpackTuple - PyArg_VaParse=python310.PyArg_VaParse - PyArg_VaParseTupleAndKeywords=python310.PyArg_VaParseTupleAndKeywords - PyArg_ValidateKeywordArguments=python310.PyArg_ValidateKeywordArguments - PyBaseObject_Type=python310.PyBaseObject_Type DATA - PyBool_FromLong=python310.PyBool_FromLong - PyBool_Type=python310.PyBool_Type DATA - PyByteArrayIter_Type=python310.PyByteArrayIter_Type DATA - PyByteArray_AsString=python310.PyByteArray_AsString - PyByteArray_Concat=python310.PyByteArray_Concat - PyByteArray_FromObject=python310.PyByteArray_FromObject - PyByteArray_FromStringAndSize=python310.PyByteArray_FromStringAndSize - PyByteArray_Resize=python310.PyByteArray_Resize - PyByteArray_Size=python310.PyByteArray_Size - PyByteArray_Type=python310.PyByteArray_Type DATA - PyBytesIter_Type=python310.PyBytesIter_Type DATA - PyBytes_AsString=python310.PyBytes_AsString - PyBytes_AsStringAndSize=python310.PyBytes_AsStringAndSize - PyBytes_Concat=python310.PyBytes_Concat - PyBytes_ConcatAndDel=python310.PyBytes_ConcatAndDel - PyBytes_DecodeEscape=python310.PyBytes_DecodeEscape - PyBytes_FromFormat=python310.PyBytes_FromFormat - PyBytes_FromFormatV=python310.PyBytes_FromFormatV - PyBytes_FromObject=python310.PyBytes_FromObject - PyBytes_FromString=python310.PyBytes_FromString - PyBytes_FromStringAndSize=python310.PyBytes_FromStringAndSize - PyBytes_Repr=python310.PyBytes_Repr - PyBytes_Size=python310.PyBytes_Size - PyBytes_Type=python310.PyBytes_Type DATA - PyCFunction_Call=python310.PyCFunction_Call - PyCFunction_GetFlags=python310.PyCFunction_GetFlags - PyCFunction_GetFunction=python310.PyCFunction_GetFunction - PyCFunction_GetSelf=python310.PyCFunction_GetSelf - PyCFunction_New=python310.PyCFunction_New - PyCFunction_NewEx=python310.PyCFunction_NewEx - PyCFunction_Type=python310.PyCFunction_Type DATA - PyCallIter_New=python310.PyCallIter_New - PyCallIter_Type=python310.PyCallIter_Type DATA - PyCallable_Check=python310.PyCallable_Check - PyCapsule_GetContext=python310.PyCapsule_GetContext - PyCapsule_GetDestructor=python310.PyCapsule_GetDestructor - PyCapsule_GetName=python310.PyCapsule_GetName - PyCapsule_GetPointer=python310.PyCapsule_GetPointer - PyCapsule_Import=python310.PyCapsule_Import - PyCapsule_IsValid=python310.PyCapsule_IsValid - PyCapsule_New=python310.PyCapsule_New - PyCapsule_SetContext=python310.PyCapsule_SetContext - PyCapsule_SetDestructor=python310.PyCapsule_SetDestructor - PyCapsule_SetName=python310.PyCapsule_SetName - PyCapsule_SetPointer=python310.PyCapsule_SetPointer - PyCapsule_Type=python310.PyCapsule_Type DATA - PyClassMethodDescr_Type=python310.PyClassMethodDescr_Type DATA - PyCodec_BackslashReplaceErrors=python310.PyCodec_BackslashReplaceErrors - PyCodec_Decode=python310.PyCodec_Decode - PyCodec_Decoder=python310.PyCodec_Decoder - PyCodec_Encode=python310.PyCodec_Encode - PyCodec_Encoder=python310.PyCodec_Encoder - PyCodec_IgnoreErrors=python310.PyCodec_IgnoreErrors - PyCodec_IncrementalDecoder=python310.PyCodec_IncrementalDecoder - PyCodec_IncrementalEncoder=python310.PyCodec_IncrementalEncoder - PyCodec_KnownEncoding=python310.PyCodec_KnownEncoding - PyCodec_LookupError=python310.PyCodec_LookupError - PyCodec_NameReplaceErrors=python310.PyCodec_NameReplaceErrors - PyCodec_Register=python310.PyCodec_Register - PyCodec_RegisterError=python310.PyCodec_RegisterError - PyCodec_ReplaceErrors=python310.PyCodec_ReplaceErrors - PyCodec_StreamReader=python310.PyCodec_StreamReader - PyCodec_StreamWriter=python310.PyCodec_StreamWriter - PyCodec_StrictErrors=python310.PyCodec_StrictErrors - PyCodec_XMLCharRefReplaceErrors=python310.PyCodec_XMLCharRefReplaceErrors - PyComplex_FromDoubles=python310.PyComplex_FromDoubles - PyComplex_ImagAsDouble=python310.PyComplex_ImagAsDouble - PyComplex_RealAsDouble=python310.PyComplex_RealAsDouble - PyComplex_Type=python310.PyComplex_Type DATA - PyDescr_NewClassMethod=python310.PyDescr_NewClassMethod - PyDescr_NewGetSet=python310.PyDescr_NewGetSet - PyDescr_NewMember=python310.PyDescr_NewMember - PyDescr_NewMethod=python310.PyDescr_NewMethod - PyDictItems_Type=python310.PyDictItems_Type DATA - PyDictIterItem_Type=python310.PyDictIterItem_Type DATA - PyDictIterKey_Type=python310.PyDictIterKey_Type DATA - PyDictIterValue_Type=python310.PyDictIterValue_Type DATA - PyDictKeys_Type=python310.PyDictKeys_Type DATA - PyDictProxy_New=python310.PyDictProxy_New - PyDictProxy_Type=python310.PyDictProxy_Type DATA - PyDictValues_Type=python310.PyDictValues_Type DATA - PyDict_Clear=python310.PyDict_Clear - PyDict_Contains=python310.PyDict_Contains - PyDict_Copy=python310.PyDict_Copy - PyDict_DelItem=python310.PyDict_DelItem - PyDict_DelItemString=python310.PyDict_DelItemString - PyDict_GetItem=python310.PyDict_GetItem - PyDict_GetItemString=python310.PyDict_GetItemString - PyDict_GetItemWithError=python310.PyDict_GetItemWithError - PyDict_Items=python310.PyDict_Items - PyDict_Keys=python310.PyDict_Keys - PyDict_Merge=python310.PyDict_Merge - PyDict_MergeFromSeq2=python310.PyDict_MergeFromSeq2 - PyDict_New=python310.PyDict_New - PyDict_Next=python310.PyDict_Next - PyDict_SetItem=python310.PyDict_SetItem - PyDict_SetItemString=python310.PyDict_SetItemString - PyDict_Size=python310.PyDict_Size - PyDict_Type=python310.PyDict_Type DATA - PyDict_Update=python310.PyDict_Update - PyDict_Values=python310.PyDict_Values - PyEllipsis_Type=python310.PyEllipsis_Type DATA - PyEnum_Type=python310.PyEnum_Type DATA - PyErr_BadArgument=python310.PyErr_BadArgument - PyErr_BadInternalCall=python310.PyErr_BadInternalCall - PyErr_CheckSignals=python310.PyErr_CheckSignals - PyErr_Clear=python310.PyErr_Clear - PyErr_Display=python310.PyErr_Display - PyErr_ExceptionMatches=python310.PyErr_ExceptionMatches - PyErr_Fetch=python310.PyErr_Fetch - PyErr_Format=python310.PyErr_Format - PyErr_FormatV=python310.PyErr_FormatV - PyErr_GetExcInfo=python310.PyErr_GetExcInfo - PyErr_GivenExceptionMatches=python310.PyErr_GivenExceptionMatches - PyErr_NewException=python310.PyErr_NewException - PyErr_NewExceptionWithDoc=python310.PyErr_NewExceptionWithDoc - PyErr_NoMemory=python310.PyErr_NoMemory - PyErr_NormalizeException=python310.PyErr_NormalizeException - PyErr_Occurred=python310.PyErr_Occurred - PyErr_Print=python310.PyErr_Print - PyErr_PrintEx=python310.PyErr_PrintEx - PyErr_ProgramText=python310.PyErr_ProgramText - PyErr_ResourceWarning=python310.PyErr_ResourceWarning - PyErr_Restore=python310.PyErr_Restore - PyErr_SetExcFromWindowsErr=python310.PyErr_SetExcFromWindowsErr - PyErr_SetExcFromWindowsErrWithFilename=python310.PyErr_SetExcFromWindowsErrWithFilename - PyErr_SetExcFromWindowsErrWithFilenameObject=python310.PyErr_SetExcFromWindowsErrWithFilenameObject - PyErr_SetExcFromWindowsErrWithFilenameObjects=python310.PyErr_SetExcFromWindowsErrWithFilenameObjects - PyErr_SetExcInfo=python310.PyErr_SetExcInfo - PyErr_SetFromErrno=python310.PyErr_SetFromErrno - PyErr_SetFromErrnoWithFilename=python310.PyErr_SetFromErrnoWithFilename - PyErr_SetFromErrnoWithFilenameObject=python310.PyErr_SetFromErrnoWithFilenameObject - PyErr_SetFromErrnoWithFilenameObjects=python310.PyErr_SetFromErrnoWithFilenameObjects - PyErr_SetFromWindowsErr=python310.PyErr_SetFromWindowsErr - PyErr_SetFromWindowsErrWithFilename=python310.PyErr_SetFromWindowsErrWithFilename - PyErr_SetImportError=python310.PyErr_SetImportError - PyErr_SetImportErrorSubclass=python310.PyErr_SetImportErrorSubclass - PyErr_SetInterrupt=python310.PyErr_SetInterrupt - PyErr_SetNone=python310.PyErr_SetNone - PyErr_SetObject=python310.PyErr_SetObject - PyErr_SetString=python310.PyErr_SetString - PyErr_SyntaxLocation=python310.PyErr_SyntaxLocation - PyErr_SyntaxLocationEx=python310.PyErr_SyntaxLocationEx - PyErr_WarnEx=python310.PyErr_WarnEx - PyErr_WarnExplicit=python310.PyErr_WarnExplicit - PyErr_WarnFormat=python310.PyErr_WarnFormat - PyErr_WriteUnraisable=python310.PyErr_WriteUnraisable - PyEval_AcquireLock=python310.PyEval_AcquireLock - PyEval_AcquireThread=python310.PyEval_AcquireThread - PyEval_CallFunction=python310.PyEval_CallFunction - PyEval_CallMethod=python310.PyEval_CallMethod - PyEval_CallObjectWithKeywords=python310.PyEval_CallObjectWithKeywords - PyEval_EvalCode=python310.PyEval_EvalCode - PyEval_EvalCodeEx=python310.PyEval_EvalCodeEx - PyEval_EvalFrame=python310.PyEval_EvalFrame - PyEval_EvalFrameEx=python310.PyEval_EvalFrameEx - PyEval_GetBuiltins=python310.PyEval_GetBuiltins - PyEval_GetCallStats=python310.PyEval_GetCallStats - PyEval_GetFrame=python310.PyEval_GetFrame - PyEval_GetFuncDesc=python310.PyEval_GetFuncDesc - PyEval_GetFuncName=python310.PyEval_GetFuncName - PyEval_GetGlobals=python310.PyEval_GetGlobals - PyEval_GetLocals=python310.PyEval_GetLocals - PyEval_InitThreads=python310.PyEval_InitThreads - PyEval_ReInitThreads=python310.PyEval_ReInitThreads - PyEval_ReleaseLock=python310.PyEval_ReleaseLock - PyEval_ReleaseThread=python310.PyEval_ReleaseThread - PyEval_RestoreThread=python310.PyEval_RestoreThread - PyEval_SaveThread=python310.PyEval_SaveThread - PyEval_ThreadsInitialized=python310.PyEval_ThreadsInitialized - PyExc_ArithmeticError=python310.PyExc_ArithmeticError DATA - PyExc_AssertionError=python310.PyExc_AssertionError DATA - PyExc_AttributeError=python310.PyExc_AttributeError DATA - PyExc_BaseException=python310.PyExc_BaseException DATA - PyExc_BlockingIOError=python310.PyExc_BlockingIOError DATA - PyExc_BrokenPipeError=python310.PyExc_BrokenPipeError DATA - PyExc_BufferError=python310.PyExc_BufferError DATA - PyExc_BytesWarning=python310.PyExc_BytesWarning DATA - PyExc_ChildProcessError=python310.PyExc_ChildProcessError DATA - PyExc_ConnectionAbortedError=python310.PyExc_ConnectionAbortedError DATA - PyExc_ConnectionError=python310.PyExc_ConnectionError DATA - PyExc_ConnectionRefusedError=python310.PyExc_ConnectionRefusedError DATA - PyExc_ConnectionResetError=python310.PyExc_ConnectionResetError DATA - PyExc_DeprecationWarning=python310.PyExc_DeprecationWarning DATA - PyExc_EOFError=python310.PyExc_EOFError DATA - PyExc_EnvironmentError=python310.PyExc_EnvironmentError DATA - PyExc_Exception=python310.PyExc_Exception DATA - PyExc_FileExistsError=python310.PyExc_FileExistsError DATA - PyExc_FileNotFoundError=python310.PyExc_FileNotFoundError DATA - PyExc_FloatingPointError=python310.PyExc_FloatingPointError DATA - PyExc_FutureWarning=python310.PyExc_FutureWarning DATA - PyExc_GeneratorExit=python310.PyExc_GeneratorExit DATA - PyExc_IOError=python310.PyExc_IOError DATA - PyExc_ImportError=python310.PyExc_ImportError DATA - PyExc_ImportWarning=python310.PyExc_ImportWarning DATA - PyExc_IndentationError=python310.PyExc_IndentationError DATA - PyExc_IndexError=python310.PyExc_IndexError DATA - PyExc_InterruptedError=python310.PyExc_InterruptedError DATA - PyExc_IsADirectoryError=python310.PyExc_IsADirectoryError DATA - PyExc_KeyError=python310.PyExc_KeyError DATA - PyExc_KeyboardInterrupt=python310.PyExc_KeyboardInterrupt DATA - PyExc_LookupError=python310.PyExc_LookupError DATA - PyExc_MemoryError=python310.PyExc_MemoryError DATA - PyExc_ModuleNotFoundError=python310.PyExc_ModuleNotFoundError DATA - PyExc_NameError=python310.PyExc_NameError DATA - PyExc_NotADirectoryError=python310.PyExc_NotADirectoryError DATA - PyExc_NotImplementedError=python310.PyExc_NotImplementedError DATA - PyExc_OSError=python310.PyExc_OSError DATA - PyExc_OverflowError=python310.PyExc_OverflowError DATA - PyExc_PendingDeprecationWarning=python310.PyExc_PendingDeprecationWarning DATA - PyExc_PermissionError=python310.PyExc_PermissionError DATA - PyExc_ProcessLookupError=python310.PyExc_ProcessLookupError DATA - PyExc_RecursionError=python310.PyExc_RecursionError DATA - PyExc_ReferenceError=python310.PyExc_ReferenceError DATA - PyExc_ResourceWarning=python310.PyExc_ResourceWarning DATA - PyExc_RuntimeError=python310.PyExc_RuntimeError DATA - PyExc_RuntimeWarning=python310.PyExc_RuntimeWarning DATA - PyExc_StopAsyncIteration=python310.PyExc_StopAsyncIteration DATA - PyExc_StopIteration=python310.PyExc_StopIteration DATA - PyExc_SyntaxError=python310.PyExc_SyntaxError DATA - PyExc_SyntaxWarning=python310.PyExc_SyntaxWarning DATA - PyExc_SystemError=python310.PyExc_SystemError DATA - PyExc_SystemExit=python310.PyExc_SystemExit DATA - PyExc_TabError=python310.PyExc_TabError DATA - PyExc_TimeoutError=python310.PyExc_TimeoutError DATA - PyExc_TypeError=python310.PyExc_TypeError DATA - PyExc_UnboundLocalError=python310.PyExc_UnboundLocalError DATA - PyExc_UnicodeDecodeError=python310.PyExc_UnicodeDecodeError DATA - PyExc_UnicodeEncodeError=python310.PyExc_UnicodeEncodeError DATA - PyExc_UnicodeError=python310.PyExc_UnicodeError DATA - PyExc_UnicodeTranslateError=python310.PyExc_UnicodeTranslateError DATA - PyExc_UnicodeWarning=python310.PyExc_UnicodeWarning DATA - PyExc_UserWarning=python310.PyExc_UserWarning DATA - PyExc_ValueError=python310.PyExc_ValueError DATA - PyExc_Warning=python310.PyExc_Warning DATA - PyExc_WindowsError=python310.PyExc_WindowsError DATA - PyExc_ZeroDivisionError=python310.PyExc_ZeroDivisionError DATA - PyExceptionClass_Name=python310.PyExceptionClass_Name - PyException_GetCause=python310.PyException_GetCause - PyException_GetContext=python310.PyException_GetContext - PyException_GetTraceback=python310.PyException_GetTraceback - PyException_SetCause=python310.PyException_SetCause - PyException_SetContext=python310.PyException_SetContext - PyException_SetTraceback=python310.PyException_SetTraceback - PyFile_FromFd=python310.PyFile_FromFd - PyFile_GetLine=python310.PyFile_GetLine - PyFile_WriteObject=python310.PyFile_WriteObject - PyFile_WriteString=python310.PyFile_WriteString - PyFilter_Type=python310.PyFilter_Type DATA - PyFloat_AsDouble=python310.PyFloat_AsDouble - PyFloat_FromDouble=python310.PyFloat_FromDouble - PyFloat_FromString=python310.PyFloat_FromString - PyFloat_GetInfo=python310.PyFloat_GetInfo - PyFloat_GetMax=python310.PyFloat_GetMax - PyFloat_GetMin=python310.PyFloat_GetMin - PyFloat_Type=python310.PyFloat_Type DATA - PyFrozenSet_New=python310.PyFrozenSet_New - PyFrozenSet_Type=python310.PyFrozenSet_Type DATA - PyGC_Collect=python310.PyGC_Collect - PyGILState_Ensure=python310.PyGILState_Ensure - PyGILState_GetThisThreadState=python310.PyGILState_GetThisThreadState - PyGILState_Release=python310.PyGILState_Release - PyGetSetDescr_Type=python310.PyGetSetDescr_Type DATA - PyImport_AddModule=python310.PyImport_AddModule - PyImport_AddModuleObject=python310.PyImport_AddModuleObject - PyImport_AppendInittab=python310.PyImport_AppendInittab - PyImport_Cleanup=python310.PyImport_Cleanup - PyImport_ExecCodeModule=python310.PyImport_ExecCodeModule - PyImport_ExecCodeModuleEx=python310.PyImport_ExecCodeModuleEx - PyImport_ExecCodeModuleObject=python310.PyImport_ExecCodeModuleObject - PyImport_ExecCodeModuleWithPathnames=python310.PyImport_ExecCodeModuleWithPathnames - PyImport_GetImporter=python310.PyImport_GetImporter - PyImport_GetMagicNumber=python310.PyImport_GetMagicNumber - PyImport_GetMagicTag=python310.PyImport_GetMagicTag - PyImport_GetModule=python310.PyImport_GetModule - PyImport_GetModuleDict=python310.PyImport_GetModuleDict - PyImport_Import=python310.PyImport_Import - PyImport_ImportFrozenModule=python310.PyImport_ImportFrozenModule - PyImport_ImportFrozenModuleObject=python310.PyImport_ImportFrozenModuleObject - PyImport_ImportModule=python310.PyImport_ImportModule - PyImport_ImportModuleLevel=python310.PyImport_ImportModuleLevel - PyImport_ImportModuleLevelObject=python310.PyImport_ImportModuleLevelObject - PyImport_ImportModuleNoBlock=python310.PyImport_ImportModuleNoBlock - PyImport_ReloadModule=python310.PyImport_ReloadModule - PyIndex_Check=python310.PyIndex_Check - PyInterpreterState_Clear=python310.PyInterpreterState_Clear - PyInterpreterState_Delete=python310.PyInterpreterState_Delete - PyInterpreterState_New=python310.PyInterpreterState_New - PyIter_Check=python310.PyIter_Check - PyIter_Next=python310.PyIter_Next - PyListIter_Type=python310.PyListIter_Type DATA - PyListRevIter_Type=python310.PyListRevIter_Type DATA - PyList_Append=python310.PyList_Append - PyList_AsTuple=python310.PyList_AsTuple - PyList_GetItem=python310.PyList_GetItem - PyList_GetSlice=python310.PyList_GetSlice - PyList_Insert=python310.PyList_Insert - PyList_New=python310.PyList_New - PyList_Reverse=python310.PyList_Reverse - PyList_SetItem=python310.PyList_SetItem - PyList_SetSlice=python310.PyList_SetSlice - PyList_Size=python310.PyList_Size - PyList_Sort=python310.PyList_Sort - PyList_Type=python310.PyList_Type DATA - PyLongRangeIter_Type=python310.PyLongRangeIter_Type DATA - PyLong_AsDouble=python310.PyLong_AsDouble - PyLong_AsLong=python310.PyLong_AsLong - PyLong_AsLongAndOverflow=python310.PyLong_AsLongAndOverflow - PyLong_AsLongLong=python310.PyLong_AsLongLong - PyLong_AsLongLongAndOverflow=python310.PyLong_AsLongLongAndOverflow - PyLong_AsSize_t=python310.PyLong_AsSize_t - PyLong_AsSsize_t=python310.PyLong_AsSsize_t - PyLong_AsUnsignedLong=python310.PyLong_AsUnsignedLong - PyLong_AsUnsignedLongLong=python310.PyLong_AsUnsignedLongLong - PyLong_AsUnsignedLongLongMask=python310.PyLong_AsUnsignedLongLongMask - PyLong_AsUnsignedLongMask=python310.PyLong_AsUnsignedLongMask - PyLong_AsVoidPtr=python310.PyLong_AsVoidPtr - PyLong_FromDouble=python310.PyLong_FromDouble - PyLong_FromLong=python310.PyLong_FromLong - PyLong_FromLongLong=python310.PyLong_FromLongLong - PyLong_FromSize_t=python310.PyLong_FromSize_t - PyLong_FromSsize_t=python310.PyLong_FromSsize_t - PyLong_FromString=python310.PyLong_FromString - PyLong_FromUnsignedLong=python310.PyLong_FromUnsignedLong - PyLong_FromUnsignedLongLong=python310.PyLong_FromUnsignedLongLong - PyLong_FromVoidPtr=python310.PyLong_FromVoidPtr - PyLong_GetInfo=python310.PyLong_GetInfo - PyLong_Type=python310.PyLong_Type DATA - PyMap_Type=python310.PyMap_Type DATA - PyMapping_Check=python310.PyMapping_Check - PyMapping_GetItemString=python310.PyMapping_GetItemString - PyMapping_HasKey=python310.PyMapping_HasKey - PyMapping_HasKeyString=python310.PyMapping_HasKeyString - PyMapping_Items=python310.PyMapping_Items - PyMapping_Keys=python310.PyMapping_Keys - PyMapping_Length=python310.PyMapping_Length - PyMapping_SetItemString=python310.PyMapping_SetItemString - PyMapping_Size=python310.PyMapping_Size - PyMapping_Values=python310.PyMapping_Values - PyMem_Calloc=python310.PyMem_Calloc - PyMem_Free=python310.PyMem_Free - PyMem_Malloc=python310.PyMem_Malloc - PyMem_Realloc=python310.PyMem_Realloc - PyMemberDescr_Type=python310.PyMemberDescr_Type DATA - PyMemoryView_FromMemory=python310.PyMemoryView_FromMemory - PyMemoryView_FromObject=python310.PyMemoryView_FromObject - PyMemoryView_GetContiguous=python310.PyMemoryView_GetContiguous - PyMemoryView_Type=python310.PyMemoryView_Type DATA - PyMethodDescr_Type=python310.PyMethodDescr_Type DATA - PyModuleDef_Init=python310.PyModuleDef_Init - PyModuleDef_Type=python310.PyModuleDef_Type DATA - PyModule_AddFunctions=python310.PyModule_AddFunctions - PyModule_AddIntConstant=python310.PyModule_AddIntConstant - PyModule_AddObject=python310.PyModule_AddObject - PyModule_AddStringConstant=python310.PyModule_AddStringConstant - PyModule_Create2=python310.PyModule_Create2 - PyModule_ExecDef=python310.PyModule_ExecDef - PyModule_FromDefAndSpec2=python310.PyModule_FromDefAndSpec2 - PyModule_GetDef=python310.PyModule_GetDef - PyModule_GetDict=python310.PyModule_GetDict - PyModule_GetFilename=python310.PyModule_GetFilename - PyModule_GetFilenameObject=python310.PyModule_GetFilenameObject - PyModule_GetName=python310.PyModule_GetName - PyModule_GetNameObject=python310.PyModule_GetNameObject - PyModule_GetState=python310.PyModule_GetState - PyModule_New=python310.PyModule_New - PyModule_NewObject=python310.PyModule_NewObject - PyModule_SetDocString=python310.PyModule_SetDocString - PyModule_Type=python310.PyModule_Type DATA - PyNullImporter_Type=python310.PyNullImporter_Type DATA - PyNumber_Absolute=python310.PyNumber_Absolute - PyNumber_Add=python310.PyNumber_Add - PyNumber_And=python310.PyNumber_And - PyNumber_AsSsize_t=python310.PyNumber_AsSsize_t - PyNumber_Check=python310.PyNumber_Check - PyNumber_Divmod=python310.PyNumber_Divmod - PyNumber_Float=python310.PyNumber_Float - PyNumber_FloorDivide=python310.PyNumber_FloorDivide - PyNumber_InPlaceAdd=python310.PyNumber_InPlaceAdd - PyNumber_InPlaceAnd=python310.PyNumber_InPlaceAnd - PyNumber_InPlaceFloorDivide=python310.PyNumber_InPlaceFloorDivide - PyNumber_InPlaceLshift=python310.PyNumber_InPlaceLshift - PyNumber_InPlaceMatrixMultiply=python310.PyNumber_InPlaceMatrixMultiply - PyNumber_InPlaceMultiply=python310.PyNumber_InPlaceMultiply - PyNumber_InPlaceOr=python310.PyNumber_InPlaceOr - PyNumber_InPlacePower=python310.PyNumber_InPlacePower - PyNumber_InPlaceRemainder=python310.PyNumber_InPlaceRemainder - PyNumber_InPlaceRshift=python310.PyNumber_InPlaceRshift - PyNumber_InPlaceSubtract=python310.PyNumber_InPlaceSubtract - PyNumber_InPlaceTrueDivide=python310.PyNumber_InPlaceTrueDivide - PyNumber_InPlaceXor=python310.PyNumber_InPlaceXor - PyNumber_Index=python310.PyNumber_Index - PyNumber_Invert=python310.PyNumber_Invert - PyNumber_Long=python310.PyNumber_Long - PyNumber_Lshift=python310.PyNumber_Lshift - PyNumber_MatrixMultiply=python310.PyNumber_MatrixMultiply - PyNumber_Multiply=python310.PyNumber_Multiply - PyNumber_Negative=python310.PyNumber_Negative - PyNumber_Or=python310.PyNumber_Or - PyNumber_Positive=python310.PyNumber_Positive - PyNumber_Power=python310.PyNumber_Power - PyNumber_Remainder=python310.PyNumber_Remainder - PyNumber_Rshift=python310.PyNumber_Rshift - PyNumber_Subtract=python310.PyNumber_Subtract - PyNumber_ToBase=python310.PyNumber_ToBase - PyNumber_TrueDivide=python310.PyNumber_TrueDivide - PyNumber_Xor=python310.PyNumber_Xor - PyODictItems_Type=python310.PyODictItems_Type DATA - PyODictIter_Type=python310.PyODictIter_Type DATA - PyODictKeys_Type=python310.PyODictKeys_Type DATA - PyODictValues_Type=python310.PyODictValues_Type DATA - PyODict_DelItem=python310.PyODict_DelItem - PyODict_New=python310.PyODict_New - PyODict_SetItem=python310.PyODict_SetItem - PyODict_Type=python310.PyODict_Type DATA - PyOS_AfterFork=python310.PyOS_AfterFork - PyOS_CheckStack=python310.PyOS_CheckStack - PyOS_FSPath=python310.PyOS_FSPath - PyOS_InitInterrupts=python310.PyOS_InitInterrupts - PyOS_InputHook=python310.PyOS_InputHook DATA - PyOS_InterruptOccurred=python310.PyOS_InterruptOccurred - PyOS_ReadlineFunctionPointer=python310.PyOS_ReadlineFunctionPointer DATA - PyOS_double_to_string=python310.PyOS_double_to_string - PyOS_getsig=python310.PyOS_getsig - PyOS_mystricmp=python310.PyOS_mystricmp - PyOS_mystrnicmp=python310.PyOS_mystrnicmp - PyOS_setsig=python310.PyOS_setsig - PyOS_snprintf=python310.PyOS_snprintf - PyOS_string_to_double=python310.PyOS_string_to_double - PyOS_strtol=python310.PyOS_strtol - PyOS_strtoul=python310.PyOS_strtoul - PyOS_vsnprintf=python310.PyOS_vsnprintf - PyObject_ASCII=python310.PyObject_ASCII - PyObject_AsCharBuffer=python310.PyObject_AsCharBuffer - PyObject_AsFileDescriptor=python310.PyObject_AsFileDescriptor - PyObject_AsReadBuffer=python310.PyObject_AsReadBuffer - PyObject_AsWriteBuffer=python310.PyObject_AsWriteBuffer - PyObject_Bytes=python310.PyObject_Bytes - PyObject_Call=python310.PyObject_Call - PyObject_CallFunction=python310.PyObject_CallFunction - PyObject_CallFunctionObjArgs=python310.PyObject_CallFunctionObjArgs - PyObject_CallMethod=python310.PyObject_CallMethod - PyObject_CallMethodObjArgs=python310.PyObject_CallMethodObjArgs - PyObject_CallObject=python310.PyObject_CallObject - PyObject_Calloc=python310.PyObject_Calloc - PyObject_CheckReadBuffer=python310.PyObject_CheckReadBuffer - PyObject_ClearWeakRefs=python310.PyObject_ClearWeakRefs - PyObject_DelItem=python310.PyObject_DelItem - PyObject_DelItemString=python310.PyObject_DelItemString - PyObject_Dir=python310.PyObject_Dir - PyObject_Format=python310.PyObject_Format - PyObject_Free=python310.PyObject_Free - PyObject_GC_Del=python310.PyObject_GC_Del - PyObject_GC_Track=python310.PyObject_GC_Track - PyObject_GC_UnTrack=python310.PyObject_GC_UnTrack - PyObject_GenericGetAttr=python310.PyObject_GenericGetAttr - PyObject_GenericSetAttr=python310.PyObject_GenericSetAttr - PyObject_GenericSetDict=python310.PyObject_GenericSetDict - PyObject_GetAttr=python310.PyObject_GetAttr - PyObject_GetAttrString=python310.PyObject_GetAttrString - PyObject_GetItem=python310.PyObject_GetItem - PyObject_GetIter=python310.PyObject_GetIter - PyObject_HasAttr=python310.PyObject_HasAttr - PyObject_HasAttrString=python310.PyObject_HasAttrString - PyObject_Hash=python310.PyObject_Hash - PyObject_HashNotImplemented=python310.PyObject_HashNotImplemented - PyObject_Init=python310.PyObject_Init - PyObject_InitVar=python310.PyObject_InitVar - PyObject_IsInstance=python310.PyObject_IsInstance - PyObject_IsSubclass=python310.PyObject_IsSubclass - PyObject_IsTrue=python310.PyObject_IsTrue - PyObject_Length=python310.PyObject_Length - PyObject_Malloc=python310.PyObject_Malloc - PyObject_Not=python310.PyObject_Not - PyObject_Realloc=python310.PyObject_Realloc - PyObject_Repr=python310.PyObject_Repr - PyObject_RichCompare=python310.PyObject_RichCompare - PyObject_RichCompareBool=python310.PyObject_RichCompareBool - PyObject_SelfIter=python310.PyObject_SelfIter - PyObject_SetAttr=python310.PyObject_SetAttr - PyObject_SetAttrString=python310.PyObject_SetAttrString - PyObject_SetItem=python310.PyObject_SetItem - PyObject_Size=python310.PyObject_Size - PyObject_Str=python310.PyObject_Str - PyObject_Type=python310.PyObject_Type - PyParser_SimpleParseFileFlags=python310.PyParser_SimpleParseFileFlags - PyParser_SimpleParseStringFlags=python310.PyParser_SimpleParseStringFlags - PyParser_SimpleParseStringFlagsFilename=python310.PyParser_SimpleParseStringFlagsFilename - PyProperty_Type=python310.PyProperty_Type DATA - PyRangeIter_Type=python310.PyRangeIter_Type DATA - PyRange_Type=python310.PyRange_Type DATA - PyReversed_Type=python310.PyReversed_Type DATA - PySeqIter_New=python310.PySeqIter_New - PySeqIter_Type=python310.PySeqIter_Type DATA - PySequence_Check=python310.PySequence_Check - PySequence_Concat=python310.PySequence_Concat - PySequence_Contains=python310.PySequence_Contains - PySequence_Count=python310.PySequence_Count - PySequence_DelItem=python310.PySequence_DelItem - PySequence_DelSlice=python310.PySequence_DelSlice - PySequence_Fast=python310.PySequence_Fast - PySequence_GetItem=python310.PySequence_GetItem - PySequence_GetSlice=python310.PySequence_GetSlice - PySequence_In=python310.PySequence_In - PySequence_InPlaceConcat=python310.PySequence_InPlaceConcat - PySequence_InPlaceRepeat=python310.PySequence_InPlaceRepeat - PySequence_Index=python310.PySequence_Index - PySequence_Length=python310.PySequence_Length - PySequence_List=python310.PySequence_List - PySequence_Repeat=python310.PySequence_Repeat - PySequence_SetItem=python310.PySequence_SetItem - PySequence_SetSlice=python310.PySequence_SetSlice - PySequence_Size=python310.PySequence_Size - PySequence_Tuple=python310.PySequence_Tuple - PySetIter_Type=python310.PySetIter_Type DATA - PySet_Add=python310.PySet_Add - PySet_Clear=python310.PySet_Clear - PySet_Contains=python310.PySet_Contains - PySet_Discard=python310.PySet_Discard - PySet_New=python310.PySet_New - PySet_Pop=python310.PySet_Pop - PySet_Size=python310.PySet_Size - PySet_Type=python310.PySet_Type DATA - PySlice_AdjustIndices=python310.PySlice_AdjustIndices - PySlice_GetIndices=python310.PySlice_GetIndices - PySlice_GetIndicesEx=python310.PySlice_GetIndicesEx - PySlice_New=python310.PySlice_New - PySlice_Type=python310.PySlice_Type DATA - PySlice_Unpack=python310.PySlice_Unpack - PySortWrapper_Type=python310.PySortWrapper_Type DATA - PyInterpreterState_GetID=python310.PyInterpreterState_GetID - PyState_AddModule=python310.PyState_AddModule - PyState_FindModule=python310.PyState_FindModule - PyState_RemoveModule=python310.PyState_RemoveModule - PyStructSequence_GetItem=python310.PyStructSequence_GetItem - PyStructSequence_New=python310.PyStructSequence_New - PyStructSequence_NewType=python310.PyStructSequence_NewType - PyStructSequence_SetItem=python310.PyStructSequence_SetItem - PySuper_Type=python310.PySuper_Type DATA - PySys_AddWarnOption=python310.PySys_AddWarnOption - PySys_AddWarnOptionUnicode=python310.PySys_AddWarnOptionUnicode - PySys_AddXOption=python310.PySys_AddXOption - PySys_FormatStderr=python310.PySys_FormatStderr - PySys_FormatStdout=python310.PySys_FormatStdout - PySys_GetObject=python310.PySys_GetObject - PySys_GetXOptions=python310.PySys_GetXOptions - PySys_HasWarnOptions=python310.PySys_HasWarnOptions - PySys_ResetWarnOptions=python310.PySys_ResetWarnOptions - PySys_SetArgv=python310.PySys_SetArgv - PySys_SetArgvEx=python310.PySys_SetArgvEx - PySys_SetObject=python310.PySys_SetObject - PySys_SetPath=python310.PySys_SetPath - PySys_WriteStderr=python310.PySys_WriteStderr - PySys_WriteStdout=python310.PySys_WriteStdout - PyThreadState_Clear=python310.PyThreadState_Clear - PyThreadState_Delete=python310.PyThreadState_Delete - PyThreadState_DeleteCurrent=python310.PyThreadState_DeleteCurrent - PyThreadState_Get=python310.PyThreadState_Get - PyThreadState_GetDict=python310.PyThreadState_GetDict - PyThreadState_New=python310.PyThreadState_New - PyThreadState_SetAsyncExc=python310.PyThreadState_SetAsyncExc - PyThreadState_Swap=python310.PyThreadState_Swap - PyThread_tss_alloc=python310.PyThread_tss_alloc - PyThread_tss_create=python310.PyThread_tss_create - PyThread_tss_delete=python310.PyThread_tss_delete - PyThread_tss_free=python310.PyThread_tss_free - PyThread_tss_get=python310.PyThread_tss_get - PyThread_tss_is_created=python310.PyThread_tss_is_created - PyThread_tss_set=python310.PyThread_tss_set - PyTraceBack_Here=python310.PyTraceBack_Here - PyTraceBack_Print=python310.PyTraceBack_Print - PyTraceBack_Type=python310.PyTraceBack_Type DATA - PyTupleIter_Type=python310.PyTupleIter_Type DATA - PyTuple_GetItem=python310.PyTuple_GetItem - PyTuple_GetSlice=python310.PyTuple_GetSlice - PyTuple_New=python310.PyTuple_New - PyTuple_Pack=python310.PyTuple_Pack - PyTuple_SetItem=python310.PyTuple_SetItem - PyTuple_Size=python310.PyTuple_Size - PyTuple_Type=python310.PyTuple_Type DATA - PyType_ClearCache=python310.PyType_ClearCache - PyType_FromSpec=python310.PyType_FromSpec - PyType_FromSpecWithBases=python310.PyType_FromSpecWithBases - PyType_GenericAlloc=python310.PyType_GenericAlloc - PyType_GenericNew=python310.PyType_GenericNew - PyType_GetFlags=python310.PyType_GetFlags - PyType_GetSlot=python310.PyType_GetSlot - PyType_IsSubtype=python310.PyType_IsSubtype - PyType_Modified=python310.PyType_Modified - PyType_Ready=python310.PyType_Ready - PyType_Type=python310.PyType_Type DATA - PyUnicodeDecodeError_Create=python310.PyUnicodeDecodeError_Create - PyUnicodeDecodeError_GetEncoding=python310.PyUnicodeDecodeError_GetEncoding - PyUnicodeDecodeError_GetEnd=python310.PyUnicodeDecodeError_GetEnd - PyUnicodeDecodeError_GetObject=python310.PyUnicodeDecodeError_GetObject - PyUnicodeDecodeError_GetReason=python310.PyUnicodeDecodeError_GetReason - PyUnicodeDecodeError_GetStart=python310.PyUnicodeDecodeError_GetStart - PyUnicodeDecodeError_SetEnd=python310.PyUnicodeDecodeError_SetEnd - PyUnicodeDecodeError_SetReason=python310.PyUnicodeDecodeError_SetReason - PyUnicodeDecodeError_SetStart=python310.PyUnicodeDecodeError_SetStart - PyUnicodeEncodeError_GetEncoding=python310.PyUnicodeEncodeError_GetEncoding - PyUnicodeEncodeError_GetEnd=python310.PyUnicodeEncodeError_GetEnd - PyUnicodeEncodeError_GetObject=python310.PyUnicodeEncodeError_GetObject - PyUnicodeEncodeError_GetReason=python310.PyUnicodeEncodeError_GetReason - PyUnicodeEncodeError_GetStart=python310.PyUnicodeEncodeError_GetStart - PyUnicodeEncodeError_SetEnd=python310.PyUnicodeEncodeError_SetEnd - PyUnicodeEncodeError_SetReason=python310.PyUnicodeEncodeError_SetReason - PyUnicodeEncodeError_SetStart=python310.PyUnicodeEncodeError_SetStart - PyUnicodeIter_Type=python310.PyUnicodeIter_Type DATA - PyUnicodeTranslateError_GetEnd=python310.PyUnicodeTranslateError_GetEnd - PyUnicodeTranslateError_GetObject=python310.PyUnicodeTranslateError_GetObject - PyUnicodeTranslateError_GetReason=python310.PyUnicodeTranslateError_GetReason - PyUnicodeTranslateError_GetStart=python310.PyUnicodeTranslateError_GetStart - PyUnicodeTranslateError_SetEnd=python310.PyUnicodeTranslateError_SetEnd - PyUnicodeTranslateError_SetReason=python310.PyUnicodeTranslateError_SetReason - PyUnicodeTranslateError_SetStart=python310.PyUnicodeTranslateError_SetStart - PyUnicode_Append=python310.PyUnicode_Append - PyUnicode_AppendAndDel=python310.PyUnicode_AppendAndDel - PyUnicode_AsASCIIString=python310.PyUnicode_AsASCIIString - PyUnicode_AsCharmapString=python310.PyUnicode_AsCharmapString - PyUnicode_AsDecodedObject=python310.PyUnicode_AsDecodedObject - PyUnicode_AsDecodedUnicode=python310.PyUnicode_AsDecodedUnicode - PyUnicode_AsEncodedObject=python310.PyUnicode_AsEncodedObject - PyUnicode_AsEncodedString=python310.PyUnicode_AsEncodedString - PyUnicode_AsEncodedUnicode=python310.PyUnicode_AsEncodedUnicode - PyUnicode_AsLatin1String=python310.PyUnicode_AsLatin1String - PyUnicode_AsMBCSString=python310.PyUnicode_AsMBCSString - PyUnicode_AsRawUnicodeEscapeString=python310.PyUnicode_AsRawUnicodeEscapeString - PyUnicode_AsUCS4=python310.PyUnicode_AsUCS4 - PyUnicode_AsUCS4Copy=python310.PyUnicode_AsUCS4Copy - PyUnicode_AsUTF16String=python310.PyUnicode_AsUTF16String - PyUnicode_AsUTF32String=python310.PyUnicode_AsUTF32String - PyUnicode_AsUTF8String=python310.PyUnicode_AsUTF8String - PyUnicode_AsUnicodeEscapeString=python310.PyUnicode_AsUnicodeEscapeString - PyUnicode_AsWideChar=python310.PyUnicode_AsWideChar - PyUnicode_AsWideCharString=python310.PyUnicode_AsWideCharString - PyUnicode_BuildEncodingMap=python310.PyUnicode_BuildEncodingMap - PyUnicode_Compare=python310.PyUnicode_Compare - PyUnicode_CompareWithASCIIString=python310.PyUnicode_CompareWithASCIIString - PyUnicode_Concat=python310.PyUnicode_Concat - PyUnicode_Contains=python310.PyUnicode_Contains - PyUnicode_Count=python310.PyUnicode_Count - PyUnicode_Decode=python310.PyUnicode_Decode - PyUnicode_DecodeASCII=python310.PyUnicode_DecodeASCII - PyUnicode_DecodeCharmap=python310.PyUnicode_DecodeCharmap - PyUnicode_DecodeCodePageStateful=python310.PyUnicode_DecodeCodePageStateful - PyUnicode_DecodeFSDefault=python310.PyUnicode_DecodeFSDefault - PyUnicode_DecodeFSDefaultAndSize=python310.PyUnicode_DecodeFSDefaultAndSize - PyUnicode_DecodeLatin1=python310.PyUnicode_DecodeLatin1 - PyUnicode_DecodeLocale=python310.PyUnicode_DecodeLocale - PyUnicode_DecodeLocaleAndSize=python310.PyUnicode_DecodeLocaleAndSize - PyUnicode_DecodeMBCS=python310.PyUnicode_DecodeMBCS - PyUnicode_DecodeMBCSStateful=python310.PyUnicode_DecodeMBCSStateful - PyUnicode_DecodeRawUnicodeEscape=python310.PyUnicode_DecodeRawUnicodeEscape - PyUnicode_DecodeUTF16=python310.PyUnicode_DecodeUTF16 - PyUnicode_DecodeUTF16Stateful=python310.PyUnicode_DecodeUTF16Stateful - PyUnicode_DecodeUTF32=python310.PyUnicode_DecodeUTF32 - PyUnicode_DecodeUTF32Stateful=python310.PyUnicode_DecodeUTF32Stateful - PyUnicode_DecodeUTF7=python310.PyUnicode_DecodeUTF7 - PyUnicode_DecodeUTF7Stateful=python310.PyUnicode_DecodeUTF7Stateful - PyUnicode_DecodeUTF8=python310.PyUnicode_DecodeUTF8 - PyUnicode_DecodeUTF8Stateful=python310.PyUnicode_DecodeUTF8Stateful - PyUnicode_DecodeUnicodeEscape=python310.PyUnicode_DecodeUnicodeEscape - PyUnicode_EncodeCodePage=python310.PyUnicode_EncodeCodePage - PyUnicode_EncodeFSDefault=python310.PyUnicode_EncodeFSDefault - PyUnicode_EncodeLocale=python310.PyUnicode_EncodeLocale - PyUnicode_FSConverter=python310.PyUnicode_FSConverter - PyUnicode_FSDecoder=python310.PyUnicode_FSDecoder - PyUnicode_Find=python310.PyUnicode_Find - PyUnicode_FindChar=python310.PyUnicode_FindChar - PyUnicode_Format=python310.PyUnicode_Format - PyUnicode_FromEncodedObject=python310.PyUnicode_FromEncodedObject - PyUnicode_FromFormat=python310.PyUnicode_FromFormat - PyUnicode_FromFormatV=python310.PyUnicode_FromFormatV - PyUnicode_FromObject=python310.PyUnicode_FromObject - PyUnicode_FromOrdinal=python310.PyUnicode_FromOrdinal - PyUnicode_FromString=python310.PyUnicode_FromString - PyUnicode_FromStringAndSize=python310.PyUnicode_FromStringAndSize - PyUnicode_FromWideChar=python310.PyUnicode_FromWideChar - PyUnicode_GetDefaultEncoding=python310.PyUnicode_GetDefaultEncoding - PyUnicode_GetLength=python310.PyUnicode_GetLength - PyUnicode_GetSize=python310.PyUnicode_GetSize - PyUnicode_InternFromString=python310.PyUnicode_InternFromString - PyUnicode_InternImmortal=python310.PyUnicode_InternImmortal - PyUnicode_InternInPlace=python310.PyUnicode_InternInPlace - PyUnicode_IsIdentifier=python310.PyUnicode_IsIdentifier - PyUnicode_Join=python310.PyUnicode_Join - PyUnicode_Partition=python310.PyUnicode_Partition - PyUnicode_RPartition=python310.PyUnicode_RPartition - PyUnicode_RSplit=python310.PyUnicode_RSplit - PyUnicode_ReadChar=python310.PyUnicode_ReadChar - PyUnicode_Replace=python310.PyUnicode_Replace - PyUnicode_Resize=python310.PyUnicode_Resize - PyUnicode_RichCompare=python310.PyUnicode_RichCompare - PyUnicode_Split=python310.PyUnicode_Split - PyUnicode_Splitlines=python310.PyUnicode_Splitlines - PyUnicode_Substring=python310.PyUnicode_Substring - PyUnicode_Tailmatch=python310.PyUnicode_Tailmatch - PyUnicode_Translate=python310.PyUnicode_Translate - PyUnicode_Type=python310.PyUnicode_Type DATA - PyUnicode_WriteChar=python310.PyUnicode_WriteChar - PyWeakref_GetObject=python310.PyWeakref_GetObject - PyWeakref_NewProxy=python310.PyWeakref_NewProxy - PyWeakref_NewRef=python310.PyWeakref_NewRef - PyWrapperDescr_Type=python310.PyWrapperDescr_Type DATA - PyWrapper_New=python310.PyWrapper_New - PyZip_Type=python310.PyZip_Type DATA - Py_AddPendingCall=python310.Py_AddPendingCall - Py_AtExit=python310.Py_AtExit - Py_BuildValue=python310.Py_BuildValue - Py_CompileString=python310.Py_CompileString - Py_DecRef=python310.Py_DecRef - Py_DecodeLocale=python310.Py_DecodeLocale - Py_EncodeLocale=python310.Py_EncodeLocale - Py_EndInterpreter=python310.Py_EndInterpreter - Py_EnterRecursiveCall=python310.Py_EnterRecursiveCall - Py_Exit=python310.Py_Exit - Py_FatalError=python310.Py_FatalError - Py_FileSystemDefaultEncodeErrors=python310.Py_FileSystemDefaultEncodeErrors DATA - Py_FileSystemDefaultEncoding=python310.Py_FileSystemDefaultEncoding DATA - Py_Finalize=python310.Py_Finalize - Py_FinalizeEx=python310.Py_FinalizeEx - Py_GenericAlias=python310.Py_GenericAlias - Py_GenericAliasType=python310.Py_GenericAliasType - Py_GetArgcArgv=python310.Py_GetArgcArgv - Py_GetBuildInfo=python310.Py_GetBuildInfo - Py_GetCompiler=python310.Py_GetCompiler - Py_GetCopyright=python310.Py_GetCopyright - Py_GetExecPrefix=python310.Py_GetExecPrefix - Py_GetPath=python310.Py_GetPath - Py_GetPlatform=python310.Py_GetPlatform - Py_GetPrefix=python310.Py_GetPrefix - Py_GetProgramFullPath=python310.Py_GetProgramFullPath - Py_GetProgramName=python310.Py_GetProgramName - Py_GetPythonHome=python310.Py_GetPythonHome - Py_GetRecursionLimit=python310.Py_GetRecursionLimit - Py_GetVersion=python310.Py_GetVersion - Py_HasFileSystemDefaultEncoding=python310.Py_HasFileSystemDefaultEncoding DATA - Py_IncRef=python310.Py_IncRef - Py_Initialize=python310.Py_Initialize - Py_InitializeEx=python310.Py_InitializeEx - Py_IsInitialized=python310.Py_IsInitialized - Py_LeaveRecursiveCall=python310.Py_LeaveRecursiveCall - Py_Main=python310.Py_Main - Py_MakePendingCalls=python310.Py_MakePendingCalls - Py_NewInterpreter=python310.Py_NewInterpreter - Py_ReprEnter=python310.Py_ReprEnter - Py_ReprLeave=python310.Py_ReprLeave - Py_SetPath=python310.Py_SetPath - Py_SetProgramName=python310.Py_SetProgramName - Py_SetPythonHome=python310.Py_SetPythonHome - Py_SetRecursionLimit=python310.Py_SetRecursionLimit - Py_SymtableString=python310.Py_SymtableString - Py_UTF8Mode=python310.Py_UTF8Mode DATA - Py_VaBuildValue=python310.Py_VaBuildValue - _PyArg_ParseTupleAndKeywords_SizeT=python310._PyArg_ParseTupleAndKeywords_SizeT - _PyArg_ParseTuple_SizeT=python310._PyArg_ParseTuple_SizeT - _PyArg_Parse_SizeT=python310._PyArg_Parse_SizeT - _PyArg_VaParseTupleAndKeywords_SizeT=python310._PyArg_VaParseTupleAndKeywords_SizeT - _PyArg_VaParse_SizeT=python310._PyArg_VaParse_SizeT - _PyErr_BadInternalCall=python310._PyErr_BadInternalCall - _PyObject_CallFunction_SizeT=python310._PyObject_CallFunction_SizeT - _PyObject_CallMethod_SizeT=python310._PyObject_CallMethod_SizeT - _PyObject_GC_Malloc=python310._PyObject_GC_Malloc - _PyObject_GC_New=python310._PyObject_GC_New - _PyObject_GC_NewVar=python310._PyObject_GC_NewVar - _PyObject_GC_Resize=python310._PyObject_GC_Resize - _PyObject_New=python310._PyObject_New - _PyObject_NewVar=python310._PyObject_NewVar - _PyState_AddModule=python310._PyState_AddModule - _PyThreadState_Init=python310._PyThreadState_Init - _PyThreadState_Prealloc=python310._PyThreadState_Prealloc - _PyTrash_delete_later=python310._PyTrash_delete_later DATA - _PyTrash_delete_nesting=python310._PyTrash_delete_nesting DATA - _PyTrash_deposit_object=python310._PyTrash_deposit_object - _PyTrash_destroy_chain=python310._PyTrash_destroy_chain - _PyTrash_thread_deposit_object=python310._PyTrash_thread_deposit_object - _PyTrash_thread_destroy_chain=python310._PyTrash_thread_destroy_chain - _PyWeakref_CallableProxyType=python310._PyWeakref_CallableProxyType DATA - _PyWeakref_ProxyType=python310._PyWeakref_ProxyType DATA - _PyWeakref_RefType=python310._PyWeakref_RefType DATA - _Py_BuildValue_SizeT=python310._Py_BuildValue_SizeT - _Py_CheckRecursionLimit=python310._Py_CheckRecursionLimit DATA - _Py_CheckRecursiveCall=python310._Py_CheckRecursiveCall - _Py_Dealloc=python310._Py_Dealloc - _Py_EllipsisObject=python310._Py_EllipsisObject DATA - _Py_FalseStruct=python310._Py_FalseStruct DATA - _Py_NoneStruct=python310._Py_NoneStruct DATA - _Py_NotImplementedStruct=python310._Py_NotImplementedStruct DATA - _Py_SwappedOp=python310._Py_SwappedOp DATA - _Py_TrueStruct=python310._Py_TrueStruct DATA - _Py_VaBuildValue_SizeT=python310._Py_VaBuildValue_SizeT diff --git a/PC/python3dll.c b/PC/python3dll.c index ef29071..2f29e83 100644 --- a/PC/python3dll.c +++ b/PC/python3dll.c @@ -1,9 +1,814 @@ -#include <windows.h> - -BOOL WINAPI -DllMain(HINSTANCE hInstDLL, - DWORD fdwReason, - LPVOID lpReserved) -{ - return TRUE; -}
\ No newline at end of file +/* Re-export stable Python API */ + +#ifdef _M_IX86 +#define DECORATE "_" +#else +#define DECORATE +#endif + +#define EXPORT_FUNC(name) \ + __pragma(comment(linker, "/EXPORT:" DECORATE #name "=" PYTHON_DLL_NAME "." #name)) +#define EXPORT_DATA(name) \ + __pragma(comment(linker, "/EXPORT:" DECORATE #name "=" PYTHON_DLL_NAME "." #name ",DATA")) + +EXPORT_FUNC(_Py_BuildValue_SizeT) +EXPORT_FUNC(_Py_CheckRecursiveCall) +EXPORT_FUNC(_Py_Dealloc) +EXPORT_FUNC(_Py_VaBuildValue_SizeT) +EXPORT_FUNC(_PyArg_Parse_SizeT) +EXPORT_FUNC(_PyArg_ParseTuple_SizeT) +EXPORT_FUNC(_PyArg_ParseTupleAndKeywords_SizeT) +EXPORT_FUNC(_PyArg_VaParse_SizeT) +EXPORT_FUNC(_PyArg_VaParseTupleAndKeywords_SizeT) +EXPORT_FUNC(_PyErr_BadInternalCall) +EXPORT_FUNC(_PyObject_CallFunction_SizeT) +EXPORT_FUNC(_PyObject_CallMethod_SizeT) +EXPORT_FUNC(_PyObject_GC_Malloc) +EXPORT_FUNC(_PyObject_GC_New) +EXPORT_FUNC(_PyObject_GC_NewVar) +EXPORT_FUNC(_PyObject_GC_Resize) +EXPORT_FUNC(_PyObject_New) +EXPORT_FUNC(_PyObject_NewVar) +EXPORT_FUNC(_PyState_AddModule) +EXPORT_FUNC(_PyThreadState_Init) +EXPORT_FUNC(_PyThreadState_Prealloc) +EXPORT_FUNC(_PyTrash_deposit_object) +EXPORT_FUNC(_PyTrash_destroy_chain) +EXPORT_FUNC(_PyTrash_thread_deposit_object) +EXPORT_FUNC(_PyTrash_thread_destroy_chain) +EXPORT_FUNC(Py_AddPendingCall) +EXPORT_FUNC(Py_AtExit) +EXPORT_FUNC(Py_BuildValue) +EXPORT_FUNC(Py_CompileString) +EXPORT_FUNC(Py_DecodeLocale) +EXPORT_FUNC(Py_DecRef) +EXPORT_FUNC(Py_EncodeLocale) +EXPORT_FUNC(Py_EndInterpreter) +EXPORT_FUNC(Py_EnterRecursiveCall) +EXPORT_FUNC(Py_Exit) +EXPORT_FUNC(Py_FatalError) +EXPORT_FUNC(Py_Finalize) +EXPORT_FUNC(Py_FinalizeEx) +EXPORT_FUNC(Py_GenericAlias) +EXPORT_FUNC(Py_GenericAliasType) +EXPORT_FUNC(Py_GetArgcArgv) +EXPORT_FUNC(Py_GetBuildInfo) +EXPORT_FUNC(Py_GetCompiler) +EXPORT_FUNC(Py_GetCopyright) +EXPORT_FUNC(Py_GetExecPrefix) +EXPORT_FUNC(Py_GetPath) +EXPORT_FUNC(Py_GetPlatform) +EXPORT_FUNC(Py_GetPrefix) +EXPORT_FUNC(Py_GetProgramFullPath) +EXPORT_FUNC(Py_GetProgramName) +EXPORT_FUNC(Py_GetPythonHome) +EXPORT_FUNC(Py_GetRecursionLimit) +EXPORT_FUNC(Py_GetVersion) +EXPORT_FUNC(Py_IncRef) +EXPORT_FUNC(Py_Initialize) +EXPORT_FUNC(Py_InitializeEx) +EXPORT_FUNC(Py_IsInitialized) +EXPORT_FUNC(Py_LeaveRecursiveCall) +EXPORT_FUNC(Py_Main) +EXPORT_FUNC(Py_MakePendingCalls) +EXPORT_FUNC(Py_NewInterpreter) +EXPORT_FUNC(Py_ReprEnter) +EXPORT_FUNC(Py_ReprLeave) +EXPORT_FUNC(Py_SetPath) +EXPORT_FUNC(Py_SetProgramName) +EXPORT_FUNC(Py_SetPythonHome) +EXPORT_FUNC(Py_SetRecursionLimit) +EXPORT_FUNC(Py_SymtableString) +EXPORT_FUNC(Py_VaBuildValue) +EXPORT_FUNC(PyArg_Parse) +EXPORT_FUNC(PyArg_ParseTuple) +EXPORT_FUNC(PyArg_ParseTupleAndKeywords) +EXPORT_FUNC(PyArg_UnpackTuple) +EXPORT_FUNC(PyArg_ValidateKeywordArguments) +EXPORT_FUNC(PyArg_VaParse) +EXPORT_FUNC(PyArg_VaParseTupleAndKeywords) +EXPORT_FUNC(PyBool_FromLong) +EXPORT_FUNC(PyByteArray_AsString) +EXPORT_FUNC(PyByteArray_Concat) +EXPORT_FUNC(PyByteArray_FromObject) +EXPORT_FUNC(PyByteArray_FromStringAndSize) +EXPORT_FUNC(PyByteArray_Resize) +EXPORT_FUNC(PyByteArray_Size) +EXPORT_FUNC(PyBytes_AsString) +EXPORT_FUNC(PyBytes_AsStringAndSize) +EXPORT_FUNC(PyBytes_Concat) +EXPORT_FUNC(PyBytes_ConcatAndDel) +EXPORT_FUNC(PyBytes_DecodeEscape) +EXPORT_FUNC(PyBytes_FromFormat) +EXPORT_FUNC(PyBytes_FromFormatV) +EXPORT_FUNC(PyBytes_FromObject) +EXPORT_FUNC(PyBytes_FromString) +EXPORT_FUNC(PyBytes_FromStringAndSize) +EXPORT_FUNC(PyBytes_Repr) +EXPORT_FUNC(PyBytes_Size) +EXPORT_FUNC(PyCallable_Check) +EXPORT_FUNC(PyCallIter_New) +EXPORT_FUNC(PyCapsule_GetContext) +EXPORT_FUNC(PyCapsule_GetDestructor) +EXPORT_FUNC(PyCapsule_GetName) +EXPORT_FUNC(PyCapsule_GetPointer) +EXPORT_FUNC(PyCapsule_Import) +EXPORT_FUNC(PyCapsule_IsValid) +EXPORT_FUNC(PyCapsule_New) +EXPORT_FUNC(PyCapsule_SetContext) +EXPORT_FUNC(PyCapsule_SetDestructor) +EXPORT_FUNC(PyCapsule_SetName) +EXPORT_FUNC(PyCapsule_SetPointer) +EXPORT_FUNC(PyCFunction_Call) +EXPORT_FUNC(PyCFunction_GetFlags) +EXPORT_FUNC(PyCFunction_GetFunction) +EXPORT_FUNC(PyCFunction_GetSelf) +EXPORT_FUNC(PyCFunction_New) +EXPORT_FUNC(PyCFunction_NewEx) +EXPORT_FUNC(PyCodec_BackslashReplaceErrors) +EXPORT_FUNC(PyCodec_Decode) +EXPORT_FUNC(PyCodec_Decoder) +EXPORT_FUNC(PyCodec_Encode) +EXPORT_FUNC(PyCodec_Encoder) +EXPORT_FUNC(PyCodec_IgnoreErrors) +EXPORT_FUNC(PyCodec_IncrementalDecoder) +EXPORT_FUNC(PyCodec_IncrementalEncoder) +EXPORT_FUNC(PyCodec_KnownEncoding) +EXPORT_FUNC(PyCodec_LookupError) +EXPORT_FUNC(PyCodec_NameReplaceErrors) +EXPORT_FUNC(PyCodec_Register) +EXPORT_FUNC(PyCodec_RegisterError) +EXPORT_FUNC(PyCodec_ReplaceErrors) +EXPORT_FUNC(PyCodec_StreamReader) +EXPORT_FUNC(PyCodec_StreamWriter) +EXPORT_FUNC(PyCodec_StrictErrors) +EXPORT_FUNC(PyCodec_XMLCharRefReplaceErrors) +EXPORT_FUNC(PyComplex_FromDoubles) +EXPORT_FUNC(PyComplex_ImagAsDouble) +EXPORT_FUNC(PyComplex_RealAsDouble) +EXPORT_FUNC(PyDescr_NewClassMethod) +EXPORT_FUNC(PyDescr_NewGetSet) +EXPORT_FUNC(PyDescr_NewMember) +EXPORT_FUNC(PyDescr_NewMethod) +EXPORT_FUNC(PyDict_Clear) +EXPORT_FUNC(PyDict_Contains) +EXPORT_FUNC(PyDict_Copy) +EXPORT_FUNC(PyDict_DelItem) +EXPORT_FUNC(PyDict_DelItemString) +EXPORT_FUNC(PyDict_GetItem) +EXPORT_FUNC(PyDict_GetItemString) +EXPORT_FUNC(PyDict_GetItemWithError) +EXPORT_FUNC(PyDict_Items) +EXPORT_FUNC(PyDict_Keys) +EXPORT_FUNC(PyDict_Merge) +EXPORT_FUNC(PyDict_MergeFromSeq2) +EXPORT_FUNC(PyDict_New) +EXPORT_FUNC(PyDict_Next) +EXPORT_FUNC(PyDict_SetItem) +EXPORT_FUNC(PyDict_SetItemString) +EXPORT_FUNC(PyDict_Size) +EXPORT_FUNC(PyDict_Update) +EXPORT_FUNC(PyDict_Values) +EXPORT_FUNC(PyDictProxy_New) +EXPORT_FUNC(PyErr_BadArgument) +EXPORT_FUNC(PyErr_BadInternalCall) +EXPORT_FUNC(PyErr_CheckSignals) +EXPORT_FUNC(PyErr_Clear) +EXPORT_FUNC(PyErr_Display) +EXPORT_FUNC(PyErr_ExceptionMatches) +EXPORT_FUNC(PyErr_Fetch) +EXPORT_FUNC(PyErr_Format) +EXPORT_FUNC(PyErr_FormatV) +EXPORT_FUNC(PyErr_GetExcInfo) +EXPORT_FUNC(PyErr_GivenExceptionMatches) +EXPORT_FUNC(PyErr_NewException) +EXPORT_FUNC(PyErr_NewExceptionWithDoc) +EXPORT_FUNC(PyErr_NoMemory) +EXPORT_FUNC(PyErr_NormalizeException) +EXPORT_FUNC(PyErr_Occurred) +EXPORT_FUNC(PyErr_Print) +EXPORT_FUNC(PyErr_PrintEx) +EXPORT_FUNC(PyErr_ProgramText) +EXPORT_FUNC(PyErr_ResourceWarning) +EXPORT_FUNC(PyErr_Restore) +EXPORT_FUNC(PyErr_SetExcFromWindowsErr) +EXPORT_FUNC(PyErr_SetExcFromWindowsErrWithFilename) +EXPORT_FUNC(PyErr_SetExcFromWindowsErrWithFilenameObject) +EXPORT_FUNC(PyErr_SetExcFromWindowsErrWithFilenameObjects) +EXPORT_FUNC(PyErr_SetExcInfo) +EXPORT_FUNC(PyErr_SetFromErrno) +EXPORT_FUNC(PyErr_SetFromErrnoWithFilename) +EXPORT_FUNC(PyErr_SetFromErrnoWithFilenameObject) +EXPORT_FUNC(PyErr_SetFromErrnoWithFilenameObjects) +EXPORT_FUNC(PyErr_SetFromWindowsErr) +EXPORT_FUNC(PyErr_SetFromWindowsErrWithFilename) +EXPORT_FUNC(PyErr_SetImportError) +EXPORT_FUNC(PyErr_SetImportErrorSubclass) +EXPORT_FUNC(PyErr_SetInterrupt) +EXPORT_FUNC(PyErr_SetNone) +EXPORT_FUNC(PyErr_SetObject) +EXPORT_FUNC(PyErr_SetString) +EXPORT_FUNC(PyErr_SyntaxLocation) +EXPORT_FUNC(PyErr_SyntaxLocationEx) +EXPORT_FUNC(PyErr_WarnEx) +EXPORT_FUNC(PyErr_WarnExplicit) +EXPORT_FUNC(PyErr_WarnFormat) +EXPORT_FUNC(PyErr_WriteUnraisable) +EXPORT_FUNC(PyEval_AcquireLock) +EXPORT_FUNC(PyEval_AcquireThread) +EXPORT_FUNC(PyEval_CallFunction) +EXPORT_FUNC(PyEval_CallMethod) +EXPORT_FUNC(PyEval_CallObjectWithKeywords) +EXPORT_FUNC(PyEval_EvalCode) +EXPORT_FUNC(PyEval_EvalCodeEx) +EXPORT_FUNC(PyEval_EvalFrame) +EXPORT_FUNC(PyEval_EvalFrameEx) +EXPORT_FUNC(PyEval_GetBuiltins) +EXPORT_FUNC(PyEval_GetCallStats) +EXPORT_FUNC(PyEval_GetFrame) +EXPORT_FUNC(PyEval_GetFuncDesc) +EXPORT_FUNC(PyEval_GetFuncName) +EXPORT_FUNC(PyEval_GetGlobals) +EXPORT_FUNC(PyEval_GetLocals) +EXPORT_FUNC(PyEval_InitThreads) +EXPORT_FUNC(PyEval_ReInitThreads) +EXPORT_FUNC(PyEval_ReleaseLock) +EXPORT_FUNC(PyEval_ReleaseThread) +EXPORT_FUNC(PyEval_RestoreThread) +EXPORT_FUNC(PyEval_SaveThread) +EXPORT_FUNC(PyEval_ThreadsInitialized) +EXPORT_FUNC(PyException_GetCause) +EXPORT_FUNC(PyException_GetContext) +EXPORT_FUNC(PyException_GetTraceback) +EXPORT_FUNC(PyException_SetCause) +EXPORT_FUNC(PyException_SetContext) +EXPORT_FUNC(PyException_SetTraceback) +EXPORT_FUNC(PyExceptionClass_Name) +EXPORT_FUNC(PyFile_FromFd) +EXPORT_FUNC(PyFile_GetLine) +EXPORT_FUNC(PyFile_WriteObject) +EXPORT_FUNC(PyFile_WriteString) +EXPORT_FUNC(PyFloat_AsDouble) +EXPORT_FUNC(PyFloat_FromDouble) +EXPORT_FUNC(PyFloat_FromString) +EXPORT_FUNC(PyFloat_GetInfo) +EXPORT_FUNC(PyFloat_GetMax) +EXPORT_FUNC(PyFloat_GetMin) +EXPORT_FUNC(PyFrozenSet_New) +EXPORT_FUNC(PyGC_Collect) +EXPORT_FUNC(PyGILState_Ensure) +EXPORT_FUNC(PyGILState_GetThisThreadState) +EXPORT_FUNC(PyGILState_Release) +EXPORT_FUNC(PyImport_AddModule) +EXPORT_FUNC(PyImport_AddModuleObject) +EXPORT_FUNC(PyImport_AppendInittab) +EXPORT_FUNC(PyImport_Cleanup) +EXPORT_FUNC(PyImport_ExecCodeModule) +EXPORT_FUNC(PyImport_ExecCodeModuleEx) +EXPORT_FUNC(PyImport_ExecCodeModuleObject) +EXPORT_FUNC(PyImport_ExecCodeModuleWithPathnames) +EXPORT_FUNC(PyImport_GetImporter) +EXPORT_FUNC(PyImport_GetMagicNumber) +EXPORT_FUNC(PyImport_GetMagicTag) +EXPORT_FUNC(PyImport_GetModule) +EXPORT_FUNC(PyImport_GetModuleDict) +EXPORT_FUNC(PyImport_Import) +EXPORT_FUNC(PyImport_ImportFrozenModule) +EXPORT_FUNC(PyImport_ImportFrozenModuleObject) +EXPORT_FUNC(PyImport_ImportModule) +EXPORT_FUNC(PyImport_ImportModuleLevel) +EXPORT_FUNC(PyImport_ImportModuleLevelObject) +EXPORT_FUNC(PyImport_ImportModuleNoBlock) +EXPORT_FUNC(PyImport_ReloadModule) +EXPORT_FUNC(PyIndex_Check) +EXPORT_FUNC(PyInterpreterState_Clear) +EXPORT_FUNC(PyInterpreterState_Delete) +EXPORT_FUNC(PyInterpreterState_GetID) +EXPORT_FUNC(PyInterpreterState_New) +EXPORT_FUNC(PyIter_Check) +EXPORT_FUNC(PyIter_Next) +EXPORT_FUNC(PyList_Append) +EXPORT_FUNC(PyList_AsTuple) +EXPORT_FUNC(PyList_GetItem) +EXPORT_FUNC(PyList_GetSlice) +EXPORT_FUNC(PyList_Insert) +EXPORT_FUNC(PyList_New) +EXPORT_FUNC(PyList_Reverse) +EXPORT_FUNC(PyList_SetItem) +EXPORT_FUNC(PyList_SetSlice) +EXPORT_FUNC(PyList_Size) +EXPORT_FUNC(PyList_Sort) +EXPORT_FUNC(PyLong_AsDouble) +EXPORT_FUNC(PyLong_AsLong) +EXPORT_FUNC(PyLong_AsLongAndOverflow) +EXPORT_FUNC(PyLong_AsLongLong) +EXPORT_FUNC(PyLong_AsLongLongAndOverflow) +EXPORT_FUNC(PyLong_AsSize_t) +EXPORT_FUNC(PyLong_AsSsize_t) +EXPORT_FUNC(PyLong_AsUnsignedLong) +EXPORT_FUNC(PyLong_AsUnsignedLongLong) +EXPORT_FUNC(PyLong_AsUnsignedLongLongMask) +EXPORT_FUNC(PyLong_AsUnsignedLongMask) +EXPORT_FUNC(PyLong_AsVoidPtr) +EXPORT_FUNC(PyLong_FromDouble) +EXPORT_FUNC(PyLong_FromLong) +EXPORT_FUNC(PyLong_FromLongLong) +EXPORT_FUNC(PyLong_FromSize_t) +EXPORT_FUNC(PyLong_FromSsize_t) +EXPORT_FUNC(PyLong_FromString) +EXPORT_FUNC(PyLong_FromUnsignedLong) +EXPORT_FUNC(PyLong_FromUnsignedLongLong) +EXPORT_FUNC(PyLong_FromVoidPtr) +EXPORT_FUNC(PyLong_GetInfo) +EXPORT_FUNC(PyMapping_Check) +EXPORT_FUNC(PyMapping_GetItemString) +EXPORT_FUNC(PyMapping_HasKey) +EXPORT_FUNC(PyMapping_HasKeyString) +EXPORT_FUNC(PyMapping_Items) +EXPORT_FUNC(PyMapping_Keys) +EXPORT_FUNC(PyMapping_Length) +EXPORT_FUNC(PyMapping_SetItemString) +EXPORT_FUNC(PyMapping_Size) +EXPORT_FUNC(PyMapping_Values) +EXPORT_FUNC(PyMem_Calloc) +EXPORT_FUNC(PyMem_Free) +EXPORT_FUNC(PyMem_Malloc) +EXPORT_FUNC(PyMem_Realloc) +EXPORT_FUNC(PyMemoryView_FromMemory) +EXPORT_FUNC(PyMemoryView_FromObject) +EXPORT_FUNC(PyMemoryView_GetContiguous) +EXPORT_FUNC(PyModule_AddFunctions) +EXPORT_FUNC(PyModule_AddIntConstant) +EXPORT_FUNC(PyModule_AddObject) +EXPORT_FUNC(PyModule_AddStringConstant) +EXPORT_FUNC(PyModule_Create2) +EXPORT_FUNC(PyModule_ExecDef) +EXPORT_FUNC(PyModule_FromDefAndSpec2) +EXPORT_FUNC(PyModule_GetDef) +EXPORT_FUNC(PyModule_GetDict) +EXPORT_FUNC(PyModule_GetFilename) +EXPORT_FUNC(PyModule_GetFilenameObject) +EXPORT_FUNC(PyModule_GetName) +EXPORT_FUNC(PyModule_GetNameObject) +EXPORT_FUNC(PyModule_GetState) +EXPORT_FUNC(PyModule_New) +EXPORT_FUNC(PyModule_NewObject) +EXPORT_FUNC(PyModule_SetDocString) +EXPORT_FUNC(PyModuleDef_Init) +EXPORT_FUNC(PyNumber_Absolute) +EXPORT_FUNC(PyNumber_Add) +EXPORT_FUNC(PyNumber_And) +EXPORT_FUNC(PyNumber_AsSsize_t) +EXPORT_FUNC(PyNumber_Check) +EXPORT_FUNC(PyNumber_Divmod) +EXPORT_FUNC(PyNumber_Float) +EXPORT_FUNC(PyNumber_FloorDivide) +EXPORT_FUNC(PyNumber_Index) +EXPORT_FUNC(PyNumber_InPlaceAdd) +EXPORT_FUNC(PyNumber_InPlaceAnd) +EXPORT_FUNC(PyNumber_InPlaceFloorDivide) +EXPORT_FUNC(PyNumber_InPlaceLshift) +EXPORT_FUNC(PyNumber_InPlaceMatrixMultiply) +EXPORT_FUNC(PyNumber_InPlaceMultiply) +EXPORT_FUNC(PyNumber_InPlaceOr) +EXPORT_FUNC(PyNumber_InPlacePower) +EXPORT_FUNC(PyNumber_InPlaceRemainder) +EXPORT_FUNC(PyNumber_InPlaceRshift) +EXPORT_FUNC(PyNumber_InPlaceSubtract) +EXPORT_FUNC(PyNumber_InPlaceTrueDivide) +EXPORT_FUNC(PyNumber_InPlaceXor) +EXPORT_FUNC(PyNumber_Invert) +EXPORT_FUNC(PyNumber_Long) +EXPORT_FUNC(PyNumber_Lshift) +EXPORT_FUNC(PyNumber_MatrixMultiply) +EXPORT_FUNC(PyNumber_Multiply) +EXPORT_FUNC(PyNumber_Negative) +EXPORT_FUNC(PyNumber_Or) +EXPORT_FUNC(PyNumber_Positive) +EXPORT_FUNC(PyNumber_Power) +EXPORT_FUNC(PyNumber_Remainder) +EXPORT_FUNC(PyNumber_Rshift) +EXPORT_FUNC(PyNumber_Subtract) +EXPORT_FUNC(PyNumber_ToBase) +EXPORT_FUNC(PyNumber_TrueDivide) +EXPORT_FUNC(PyNumber_Xor) +EXPORT_FUNC(PyObject_AsCharBuffer) +EXPORT_FUNC(PyObject_ASCII) +EXPORT_FUNC(PyObject_AsFileDescriptor) +EXPORT_FUNC(PyObject_AsReadBuffer) +EXPORT_FUNC(PyObject_AsWriteBuffer) +EXPORT_FUNC(PyObject_Bytes) +EXPORT_FUNC(PyObject_Call) +EXPORT_FUNC(PyObject_CallFunction) +EXPORT_FUNC(PyObject_CallFunctionObjArgs) +EXPORT_FUNC(PyObject_CallMethod) +EXPORT_FUNC(PyObject_CallMethodObjArgs) +EXPORT_FUNC(PyObject_CallObject) +EXPORT_FUNC(PyObject_Calloc) +EXPORT_FUNC(PyObject_CheckReadBuffer) +EXPORT_FUNC(PyObject_ClearWeakRefs) +EXPORT_FUNC(PyObject_DelItem) +EXPORT_FUNC(PyObject_DelItemString) +EXPORT_FUNC(PyObject_Dir) +EXPORT_FUNC(PyObject_Format) +EXPORT_FUNC(PyObject_Free) +EXPORT_FUNC(PyObject_GC_Del) +EXPORT_FUNC(PyObject_GC_Track) +EXPORT_FUNC(PyObject_GC_UnTrack) +EXPORT_FUNC(PyObject_GenericGetAttr) +EXPORT_FUNC(PyObject_GenericSetAttr) +EXPORT_FUNC(PyObject_GenericSetDict) +EXPORT_FUNC(PyObject_GetAttr) +EXPORT_FUNC(PyObject_GetAttrString) +EXPORT_FUNC(PyObject_GetItem) +EXPORT_FUNC(PyObject_GetIter) +EXPORT_FUNC(PyObject_HasAttr) +EXPORT_FUNC(PyObject_HasAttrString) +EXPORT_FUNC(PyObject_Hash) +EXPORT_FUNC(PyObject_HashNotImplemented) +EXPORT_FUNC(PyObject_Init) +EXPORT_FUNC(PyObject_InitVar) +EXPORT_FUNC(PyObject_IsInstance) +EXPORT_FUNC(PyObject_IsSubclass) +EXPORT_FUNC(PyObject_IsTrue) +EXPORT_FUNC(PyObject_Length) +EXPORT_FUNC(PyObject_Malloc) +EXPORT_FUNC(PyObject_Not) +EXPORT_FUNC(PyObject_Realloc) +EXPORT_FUNC(PyObject_Repr) +EXPORT_FUNC(PyObject_RichCompare) +EXPORT_FUNC(PyObject_RichCompareBool) +EXPORT_FUNC(PyObject_SelfIter) +EXPORT_FUNC(PyObject_SetAttr) +EXPORT_FUNC(PyObject_SetAttrString) +EXPORT_FUNC(PyObject_SetItem) +EXPORT_FUNC(PyObject_Size) +EXPORT_FUNC(PyObject_Str) +EXPORT_FUNC(PyObject_Type) +EXPORT_FUNC(PyODict_DelItem) +EXPORT_FUNC(PyODict_New) +EXPORT_FUNC(PyODict_SetItem) +EXPORT_FUNC(PyOS_AfterFork) +EXPORT_FUNC(PyOS_CheckStack) +EXPORT_FUNC(PyOS_double_to_string) +EXPORT_FUNC(PyOS_FSPath) +EXPORT_FUNC(PyOS_getsig) +EXPORT_FUNC(PyOS_InitInterrupts) +EXPORT_FUNC(PyOS_InterruptOccurred) +EXPORT_FUNC(PyOS_mystricmp) +EXPORT_FUNC(PyOS_mystrnicmp) +EXPORT_FUNC(PyOS_setsig) +EXPORT_FUNC(PyOS_snprintf) +EXPORT_FUNC(PyOS_string_to_double) +EXPORT_FUNC(PyOS_strtol) +EXPORT_FUNC(PyOS_strtoul) +EXPORT_FUNC(PyOS_vsnprintf) +EXPORT_FUNC(PyParser_SimpleParseFileFlags) +EXPORT_FUNC(PyParser_SimpleParseStringFlags) +EXPORT_FUNC(PyParser_SimpleParseStringFlagsFilename) +EXPORT_FUNC(PySeqIter_New) +EXPORT_FUNC(PySequence_Check) +EXPORT_FUNC(PySequence_Concat) +EXPORT_FUNC(PySequence_Contains) +EXPORT_FUNC(PySequence_Count) +EXPORT_FUNC(PySequence_DelItem) +EXPORT_FUNC(PySequence_DelSlice) +EXPORT_FUNC(PySequence_Fast) +EXPORT_FUNC(PySequence_GetItem) +EXPORT_FUNC(PySequence_GetSlice) +EXPORT_FUNC(PySequence_In) +EXPORT_FUNC(PySequence_Index) +EXPORT_FUNC(PySequence_InPlaceConcat) +EXPORT_FUNC(PySequence_InPlaceRepeat) +EXPORT_FUNC(PySequence_Length) +EXPORT_FUNC(PySequence_List) +EXPORT_FUNC(PySequence_Repeat) +EXPORT_FUNC(PySequence_SetItem) +EXPORT_FUNC(PySequence_SetSlice) +EXPORT_FUNC(PySequence_Size) +EXPORT_FUNC(PySequence_Tuple) +EXPORT_FUNC(PySet_Add) +EXPORT_FUNC(PySet_Clear) +EXPORT_FUNC(PySet_Contains) +EXPORT_FUNC(PySet_Discard) +EXPORT_FUNC(PySet_New) +EXPORT_FUNC(PySet_Pop) +EXPORT_FUNC(PySet_Size) +EXPORT_FUNC(PySlice_AdjustIndices) +EXPORT_FUNC(PySlice_GetIndices) +EXPORT_FUNC(PySlice_GetIndicesEx) +EXPORT_FUNC(PySlice_New) +EXPORT_FUNC(PySlice_Unpack) +EXPORT_FUNC(PyState_AddModule) +EXPORT_FUNC(PyState_FindModule) +EXPORT_FUNC(PyState_RemoveModule) +EXPORT_FUNC(PyStructSequence_GetItem) +EXPORT_FUNC(PyStructSequence_New) +EXPORT_FUNC(PyStructSequence_NewType) +EXPORT_FUNC(PyStructSequence_SetItem) +EXPORT_FUNC(PySys_AddWarnOption) +EXPORT_FUNC(PySys_AddWarnOptionUnicode) +EXPORT_FUNC(PySys_AddXOption) +EXPORT_FUNC(PySys_FormatStderr) +EXPORT_FUNC(PySys_FormatStdout) +EXPORT_FUNC(PySys_GetObject) +EXPORT_FUNC(PySys_GetXOptions) +EXPORT_FUNC(PySys_HasWarnOptions) +EXPORT_FUNC(PySys_ResetWarnOptions) +EXPORT_FUNC(PySys_SetArgv) +EXPORT_FUNC(PySys_SetArgvEx) +EXPORT_FUNC(PySys_SetObject) +EXPORT_FUNC(PySys_SetPath) +EXPORT_FUNC(PySys_WriteStderr) +EXPORT_FUNC(PySys_WriteStdout) +EXPORT_FUNC(PyThread_tss_alloc) +EXPORT_FUNC(PyThread_tss_create) +EXPORT_FUNC(PyThread_tss_delete) +EXPORT_FUNC(PyThread_tss_free) +EXPORT_FUNC(PyThread_tss_get) +EXPORT_FUNC(PyThread_tss_is_created) +EXPORT_FUNC(PyThread_tss_set) +EXPORT_FUNC(PyThreadState_Clear) +EXPORT_FUNC(PyThreadState_Delete) +EXPORT_FUNC(PyThreadState_DeleteCurrent) +EXPORT_FUNC(PyThreadState_Get) +EXPORT_FUNC(PyThreadState_GetDict) +EXPORT_FUNC(PyThreadState_New) +EXPORT_FUNC(PyThreadState_SetAsyncExc) +EXPORT_FUNC(PyThreadState_Swap) +EXPORT_FUNC(PyTraceBack_Here) +EXPORT_FUNC(PyTraceBack_Print) +EXPORT_FUNC(PyTuple_GetItem) +EXPORT_FUNC(PyTuple_GetSlice) +EXPORT_FUNC(PyTuple_New) +EXPORT_FUNC(PyTuple_Pack) +EXPORT_FUNC(PyTuple_SetItem) +EXPORT_FUNC(PyTuple_Size) +EXPORT_FUNC(PyType_ClearCache) +EXPORT_FUNC(PyType_FromSpec) +EXPORT_FUNC(PyType_FromSpecWithBases) +EXPORT_FUNC(PyType_GenericAlloc) +EXPORT_FUNC(PyType_GenericNew) +EXPORT_FUNC(PyType_GetFlags) +EXPORT_FUNC(PyType_GetSlot) +EXPORT_FUNC(PyType_IsSubtype) +EXPORT_FUNC(PyType_Modified) +EXPORT_FUNC(PyType_Ready) +EXPORT_FUNC(PyUnicode_Append) +EXPORT_FUNC(PyUnicode_AppendAndDel) +EXPORT_FUNC(PyUnicode_AsASCIIString) +EXPORT_FUNC(PyUnicode_AsCharmapString) +EXPORT_FUNC(PyUnicode_AsDecodedObject) +EXPORT_FUNC(PyUnicode_AsDecodedUnicode) +EXPORT_FUNC(PyUnicode_AsEncodedObject) +EXPORT_FUNC(PyUnicode_AsEncodedString) +EXPORT_FUNC(PyUnicode_AsEncodedUnicode) +EXPORT_FUNC(PyUnicode_AsLatin1String) +EXPORT_FUNC(PyUnicode_AsMBCSString) +EXPORT_FUNC(PyUnicode_AsRawUnicodeEscapeString) +EXPORT_FUNC(PyUnicode_AsUCS4) +EXPORT_FUNC(PyUnicode_AsUCS4Copy) +EXPORT_FUNC(PyUnicode_AsUnicodeEscapeString) +EXPORT_FUNC(PyUnicode_AsUTF16String) +EXPORT_FUNC(PyUnicode_AsUTF32String) +EXPORT_FUNC(PyUnicode_AsUTF8String) +EXPORT_FUNC(PyUnicode_AsWideChar) +EXPORT_FUNC(PyUnicode_AsWideCharString) +EXPORT_FUNC(PyUnicode_BuildEncodingMap) +EXPORT_FUNC(PyUnicode_Compare) +EXPORT_FUNC(PyUnicode_CompareWithASCIIString) +EXPORT_FUNC(PyUnicode_Concat) +EXPORT_FUNC(PyUnicode_Contains) +EXPORT_FUNC(PyUnicode_Count) +EXPORT_FUNC(PyUnicode_Decode) +EXPORT_FUNC(PyUnicode_DecodeASCII) +EXPORT_FUNC(PyUnicode_DecodeCharmap) +EXPORT_FUNC(PyUnicode_DecodeCodePageStateful) +EXPORT_FUNC(PyUnicode_DecodeFSDefault) +EXPORT_FUNC(PyUnicode_DecodeFSDefaultAndSize) +EXPORT_FUNC(PyUnicode_DecodeLatin1) +EXPORT_FUNC(PyUnicode_DecodeLocale) +EXPORT_FUNC(PyUnicode_DecodeLocaleAndSize) +EXPORT_FUNC(PyUnicode_DecodeMBCS) +EXPORT_FUNC(PyUnicode_DecodeMBCSStateful) +EXPORT_FUNC(PyUnicode_DecodeRawUnicodeEscape) +EXPORT_FUNC(PyUnicode_DecodeUnicodeEscape) +EXPORT_FUNC(PyUnicode_DecodeUTF16) +EXPORT_FUNC(PyUnicode_DecodeUTF16Stateful) +EXPORT_FUNC(PyUnicode_DecodeUTF32) +EXPORT_FUNC(PyUnicode_DecodeUTF32Stateful) +EXPORT_FUNC(PyUnicode_DecodeUTF7) +EXPORT_FUNC(PyUnicode_DecodeUTF7Stateful) +EXPORT_FUNC(PyUnicode_DecodeUTF8) +EXPORT_FUNC(PyUnicode_DecodeUTF8Stateful) +EXPORT_FUNC(PyUnicode_EncodeCodePage) +EXPORT_FUNC(PyUnicode_EncodeFSDefault) +EXPORT_FUNC(PyUnicode_EncodeLocale) +EXPORT_FUNC(PyUnicode_Find) +EXPORT_FUNC(PyUnicode_FindChar) +EXPORT_FUNC(PyUnicode_Format) +EXPORT_FUNC(PyUnicode_FromEncodedObject) +EXPORT_FUNC(PyUnicode_FromFormat) +EXPORT_FUNC(PyUnicode_FromFormatV) +EXPORT_FUNC(PyUnicode_FromObject) +EXPORT_FUNC(PyUnicode_FromOrdinal) +EXPORT_FUNC(PyUnicode_FromString) +EXPORT_FUNC(PyUnicode_FromStringAndSize) +EXPORT_FUNC(PyUnicode_FromWideChar) +EXPORT_FUNC(PyUnicode_FSConverter) +EXPORT_FUNC(PyUnicode_FSDecoder) +EXPORT_FUNC(PyUnicode_GetDefaultEncoding) +EXPORT_FUNC(PyUnicode_GetLength) +EXPORT_FUNC(PyUnicode_GetSize) +EXPORT_FUNC(PyUnicode_InternFromString) +EXPORT_FUNC(PyUnicode_InternImmortal) +EXPORT_FUNC(PyUnicode_InternInPlace) +EXPORT_FUNC(PyUnicode_IsIdentifier) +EXPORT_FUNC(PyUnicode_Join) +EXPORT_FUNC(PyUnicode_Partition) +EXPORT_FUNC(PyUnicode_ReadChar) +EXPORT_FUNC(PyUnicode_Replace) +EXPORT_FUNC(PyUnicode_Resize) +EXPORT_FUNC(PyUnicode_RichCompare) +EXPORT_FUNC(PyUnicode_RPartition) +EXPORT_FUNC(PyUnicode_RSplit) +EXPORT_FUNC(PyUnicode_Split) +EXPORT_FUNC(PyUnicode_Splitlines) +EXPORT_FUNC(PyUnicode_Substring) +EXPORT_FUNC(PyUnicode_Tailmatch) +EXPORT_FUNC(PyUnicode_Translate) +EXPORT_FUNC(PyUnicode_WriteChar) +EXPORT_FUNC(PyUnicodeDecodeError_Create) +EXPORT_FUNC(PyUnicodeDecodeError_GetEncoding) +EXPORT_FUNC(PyUnicodeDecodeError_GetEnd) +EXPORT_FUNC(PyUnicodeDecodeError_GetObject) +EXPORT_FUNC(PyUnicodeDecodeError_GetReason) +EXPORT_FUNC(PyUnicodeDecodeError_GetStart) +EXPORT_FUNC(PyUnicodeDecodeError_SetEnd) +EXPORT_FUNC(PyUnicodeDecodeError_SetReason) +EXPORT_FUNC(PyUnicodeDecodeError_SetStart) +EXPORT_FUNC(PyUnicodeEncodeError_GetEncoding) +EXPORT_FUNC(PyUnicodeEncodeError_GetEnd) +EXPORT_FUNC(PyUnicodeEncodeError_GetObject) +EXPORT_FUNC(PyUnicodeEncodeError_GetReason) +EXPORT_FUNC(PyUnicodeEncodeError_GetStart) +EXPORT_FUNC(PyUnicodeEncodeError_SetEnd) +EXPORT_FUNC(PyUnicodeEncodeError_SetReason) +EXPORT_FUNC(PyUnicodeEncodeError_SetStart) +EXPORT_FUNC(PyUnicodeTranslateError_GetEnd) +EXPORT_FUNC(PyUnicodeTranslateError_GetObject) +EXPORT_FUNC(PyUnicodeTranslateError_GetReason) +EXPORT_FUNC(PyUnicodeTranslateError_GetStart) +EXPORT_FUNC(PyUnicodeTranslateError_SetEnd) +EXPORT_FUNC(PyUnicodeTranslateError_SetReason) +EXPORT_FUNC(PyUnicodeTranslateError_SetStart) +EXPORT_FUNC(PyWeakref_GetObject) +EXPORT_FUNC(PyWeakref_NewProxy) +EXPORT_FUNC(PyWeakref_NewRef) +EXPORT_FUNC(PyWrapper_New) + +EXPORT_DATA(_Py_CheckRecursionLimit) +EXPORT_DATA(_Py_EllipsisObject) +EXPORT_DATA(_Py_FalseStruct) +EXPORT_DATA(_Py_NoneStruct) +EXPORT_DATA(_Py_NotImplementedStruct) +EXPORT_DATA(_Py_SwappedOp) +EXPORT_DATA(_Py_TrueStruct) +EXPORT_DATA(_PyTrash_delete_later) +EXPORT_DATA(_PyTrash_delete_nesting) +EXPORT_DATA(_PyWeakref_CallableProxyType) +EXPORT_DATA(_PyWeakref_ProxyType) +EXPORT_DATA(_PyWeakref_RefType) +EXPORT_DATA(Py_FileSystemDefaultEncodeErrors) +EXPORT_DATA(Py_FileSystemDefaultEncoding) +EXPORT_DATA(Py_HasFileSystemDefaultEncoding) +EXPORT_DATA(Py_UTF8Mode) +EXPORT_DATA(PyBaseObject_Type) +EXPORT_DATA(PyBool_Type) +EXPORT_DATA(PyByteArray_Type) +EXPORT_DATA(PyByteArrayIter_Type) +EXPORT_DATA(PyBytes_Type) +EXPORT_DATA(PyBytesIter_Type) +EXPORT_DATA(PyCallIter_Type) +EXPORT_DATA(PyCapsule_Type) +EXPORT_DATA(PyCFunction_Type) +EXPORT_DATA(PyClassMethodDescr_Type) +EXPORT_DATA(PyComplex_Type) +EXPORT_DATA(PyDict_Type) +EXPORT_DATA(PyDictItems_Type) +EXPORT_DATA(PyDictIterItem_Type) +EXPORT_DATA(PyDictIterKey_Type) +EXPORT_DATA(PyDictIterValue_Type) +EXPORT_DATA(PyDictKeys_Type) +EXPORT_DATA(PyDictProxy_Type) +EXPORT_DATA(PyDictValues_Type) +EXPORT_DATA(PyEllipsis_Type) +EXPORT_DATA(PyEnum_Type) +EXPORT_DATA(PyExc_ArithmeticError) +EXPORT_DATA(PyExc_AssertionError) +EXPORT_DATA(PyExc_AttributeError) +EXPORT_DATA(PyExc_BaseException) +EXPORT_DATA(PyExc_BlockingIOError) +EXPORT_DATA(PyExc_BrokenPipeError) +EXPORT_DATA(PyExc_BufferError) +EXPORT_DATA(PyExc_BytesWarning) +EXPORT_DATA(PyExc_ChildProcessError) +EXPORT_DATA(PyExc_ConnectionAbortedError) +EXPORT_DATA(PyExc_ConnectionError) +EXPORT_DATA(PyExc_ConnectionRefusedError) +EXPORT_DATA(PyExc_ConnectionResetError) +EXPORT_DATA(PyExc_DeprecationWarning) +EXPORT_DATA(PyExc_EnvironmentError) +EXPORT_DATA(PyExc_EOFError) +EXPORT_DATA(PyExc_Exception) +EXPORT_DATA(PyExc_FileExistsError) +EXPORT_DATA(PyExc_FileNotFoundError) +EXPORT_DATA(PyExc_FloatingPointError) +EXPORT_DATA(PyExc_FutureWarning) +EXPORT_DATA(PyExc_GeneratorExit) +EXPORT_DATA(PyExc_ImportError) +EXPORT_DATA(PyExc_ImportWarning) +EXPORT_DATA(PyExc_IndentationError) +EXPORT_DATA(PyExc_IndexError) +EXPORT_DATA(PyExc_InterruptedError) +EXPORT_DATA(PyExc_IOError) +EXPORT_DATA(PyExc_IsADirectoryError) +EXPORT_DATA(PyExc_KeyboardInterrupt) +EXPORT_DATA(PyExc_KeyError) +EXPORT_DATA(PyExc_LookupError) +EXPORT_DATA(PyExc_MemoryError) +EXPORT_DATA(PyExc_ModuleNotFoundError) +EXPORT_DATA(PyExc_NameError) +EXPORT_DATA(PyExc_NotADirectoryError) +EXPORT_DATA(PyExc_NotImplementedError) +EXPORT_DATA(PyExc_OSError) +EXPORT_DATA(PyExc_OverflowError) +EXPORT_DATA(PyExc_PendingDeprecationWarning) +EXPORT_DATA(PyExc_PermissionError) +EXPORT_DATA(PyExc_ProcessLookupError) +EXPORT_DATA(PyExc_RecursionError) +EXPORT_DATA(PyExc_ReferenceError) +EXPORT_DATA(PyExc_ResourceWarning) +EXPORT_DATA(PyExc_RuntimeError) +EXPORT_DATA(PyExc_RuntimeWarning) +EXPORT_DATA(PyExc_StopAsyncIteration) +EXPORT_DATA(PyExc_StopIteration) +EXPORT_DATA(PyExc_SyntaxError) +EXPORT_DATA(PyExc_SyntaxWarning) +EXPORT_DATA(PyExc_SystemError) +EXPORT_DATA(PyExc_SystemExit) +EXPORT_DATA(PyExc_TabError) +EXPORT_DATA(PyExc_TimeoutError) +EXPORT_DATA(PyExc_TypeError) +EXPORT_DATA(PyExc_UnboundLocalError) +EXPORT_DATA(PyExc_UnicodeDecodeError) +EXPORT_DATA(PyExc_UnicodeEncodeError) +EXPORT_DATA(PyExc_UnicodeError) +EXPORT_DATA(PyExc_UnicodeTranslateError) +EXPORT_DATA(PyExc_UnicodeWarning) +EXPORT_DATA(PyExc_UserWarning) +EXPORT_DATA(PyExc_ValueError) +EXPORT_DATA(PyExc_Warning) +EXPORT_DATA(PyExc_WindowsError) +EXPORT_DATA(PyExc_ZeroDivisionError) +EXPORT_DATA(PyFilter_Type) +EXPORT_DATA(PyFloat_Type) +EXPORT_DATA(PyFrozenSet_Type) +EXPORT_DATA(PyGetSetDescr_Type) +EXPORT_DATA(PyList_Type) +EXPORT_DATA(PyListIter_Type) +EXPORT_DATA(PyListRevIter_Type) +EXPORT_DATA(PyLong_Type) +EXPORT_DATA(PyLongRangeIter_Type) +EXPORT_DATA(PyMap_Type) +EXPORT_DATA(PyMemberDescr_Type) +EXPORT_DATA(PyMemoryView_Type) +EXPORT_DATA(PyMethodDescr_Type) +EXPORT_DATA(PyModule_Type) +EXPORT_DATA(PyModuleDef_Type) +EXPORT_DATA(PyNullImporter_Type) +EXPORT_DATA(PyODict_Type) +EXPORT_DATA(PyODictItems_Type) +EXPORT_DATA(PyODictIter_Type) +EXPORT_DATA(PyODictKeys_Type) +EXPORT_DATA(PyODictValues_Type) +EXPORT_DATA(PyOS_InputHook) +EXPORT_DATA(PyOS_ReadlineFunctionPointer) +EXPORT_DATA(PyProperty_Type) +EXPORT_DATA(PyRange_Type) +EXPORT_DATA(PyRangeIter_Type) +EXPORT_DATA(PyReversed_Type) +EXPORT_DATA(PySeqIter_Type) +EXPORT_DATA(PySet_Type) +EXPORT_DATA(PySetIter_Type) +EXPORT_DATA(PySlice_Type) +EXPORT_DATA(PySortWrapper_Type) +EXPORT_DATA(PySuper_Type) +EXPORT_DATA(PyTraceBack_Type) +EXPORT_DATA(PyTuple_Type) +EXPORT_DATA(PyTupleIter_Type) +EXPORT_DATA(PyType_Type) +EXPORT_DATA(PyUnicode_Type) +EXPORT_DATA(PyUnicodeIter_Type) +EXPORT_DATA(PyWrapperDescr_Type) +EXPORT_DATA(PyZip_Type) diff --git a/PCbuild/python3dll.vcxproj b/PCbuild/python3dll.vcxproj index ef344be..ec22e6f 100644 --- a/PCbuild/python3dll.vcxproj +++ b/PCbuild/python3dll.vcxproj @@ -88,32 +88,17 @@ <PropertyGroup Label="UserMacros" /> <PropertyGroup> <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion> - <_Machine>X86</_Machine> - <_Machine Condition="$(Platform) == 'x64'">X64</_Machine> - <_Machine Condition="$(Platform) == 'ARM'">ARM</_Machine> - <_Machine Condition="$(Platform) == 'ARM64'">ARM64</_Machine> - <ExtensionsToDeleteOnClean>$(ExtensionsToDeleteOnClean);$(IntDir)python3_d.def;$(IntDir)python3stub.def</ExtensionsToDeleteOnClean> </PropertyGroup> <ItemDefinitionGroup> <ClCompile> + <PreprocessorDefinitions>PYTHON_DLL_NAME="$(PyDllName)";%(PreprocessorDefinitions)</PreprocessorDefinitions> <BufferSecurityCheck>false</BufferSecurityCheck> </ClCompile> <Link> - <AdditionalDependencies>$(OutDir)$(TargetName)stub.lib</AdditionalDependencies> - <ModuleDefinitionFile Condition="$(Configuration) != 'Debug'">$(PySourcePath)PC\python3.def</ModuleDefinitionFile> - <ModuleDefinitionFile Condition="$(Configuration) == 'Debug'">$(IntDir)python3_d.def</ModuleDefinitionFile> - <EntryPointSymbol>DllMain</EntryPointSymbol> + <NoEntryPoint>true</NoEntryPoint> </Link> - <PreLinkEvent> - <Command>lib /nologo /def:"$(IntDir)python3stub.def" /out:"$(OutDir)$(TargetName)stub.lib" /MACHINE:$(_Machine)</Command> - <Message>Rebuilding $(TargetName)stub.lib</Message> - <Outputs>$(OutDir)$(TargetName)stub.lib</Outputs> - </PreLinkEvent> </ItemDefinitionGroup> <ItemGroup> - <None Include="..\PC\python3.def" /> - </ItemGroup> - <ItemGroup> <ClCompile Include="..\PC\python3dll.c" /> </ItemGroup> <ItemGroup> @@ -122,62 +107,4 @@ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> </ImportGroup> - - <Target Name="BuildPython3_dDef" BeforeTargets="BuildStubDef" Condition="$(Configuration) == 'Debug'"> - <ItemGroup> - <_DefLines Remove="@(_DefLines)" /> - <_Lines Remove="@(_Lines)" /> - <_OriginalLines Remove="@(_OriginalLines)" /> - </ItemGroup> - <ReadLinesFromFile File="..\PC\python3.def"> - <Output TaskParameter="Lines" ItemName="_DefLines" /> - </ReadLinesFromFile> - <ReadLinesFromFile File="$(IntDir)python3_d.def" Condition="Exists('$(IntDir)python3_d.def')"> - <Output TaskParameter="Lines" ItemName="_OriginalLines" /> - </ReadLinesFromFile> - <PropertyGroup> - <_Pattern1>(=python$(MajorVersionNumber)$(MinorVersionNumber))\.</_Pattern1> - <_Sub1>$1_d.</_Sub1> - <_Pattern2>"python3"</_Pattern2> - <_Sub2>"python3_d"</_Sub2> - </PropertyGroup> - <ItemGroup> - <_Lines Include="@(_DefLines)"> - <New>$([System.Text.RegularExpressions.Regex]::Replace($([System.Text.RegularExpressions.Regex]::Replace(`%(Identity)`, `$(_Pattern1)`, `$(_Sub1)`)), `$(_Pattern2)`, `$(_Sub2)`))</New> - </_Lines> - </ItemGroup> - <MakeDir Directories="$(IntDir)" /> - <Message Text="Updating python3_d.def" Condition="@(_Lines->'%(New)') != @(_OriginalLines)" Importance="high" /> - <WriteLinesToFile File="$(IntDir)python3_d.def" Lines="@(_Lines->'%(New)')" Overwrite="true" - Condition="@(_Lines->'%(New)') != @(_OriginalLines)" /> - </Target> - - <Target Name="BuildStubDef" BeforeTargets="PreLinkEvent"> - <ItemGroup> - <_DefLines Remove="@(_DefLines)" /> - <_Lines Remove="@(_Lines)" /> - <_OriginalLines Remove="@(_OriginalLines)" /> - </ItemGroup> - <ReadLinesFromFile File="..\PC\python3.def"> - <Output TaskParameter="Lines" ItemName="_DefLines" /> - </ReadLinesFromFile> - <ReadLinesFromFile File="$(IntDir)python3stub.def" Condition="Exists('$(IntDir)python3stub.def')"> - <Output TaskParameter="Lines" ItemName="_OriginalLines" /> - </ReadLinesFromFile> - <PropertyGroup> - <_Pattern>^[\w.]+=.+?\.([^ ]+).*$</_Pattern> - <_Sub>$1</_Sub> - </PropertyGroup> - <ItemGroup> - <_Lines Include="EXPORTS" /> - <_Symbols Include="@(_DefLines)" Condition="$([System.Text.RegularExpressions.Regex]::IsMatch(`%(Identity)`, `$(_Pattern)`))"> - <Symbol>$([System.Text.RegularExpressions.Regex]::Replace(`%(Identity)`, `$(_Pattern)`, `$(_Sub)`))</Symbol> - </_Symbols> - <_Lines Include="@(_Symbols->'%(Symbol)')" /> - </ItemGroup> - <MakeDir Directories="$(IntDir)" /> - <Message Text="Updating python3stub.def" Condition="@(_Lines) != @(_OriginalLines)" Importance="high" /> - <WriteLinesToFile File="$(IntDir)python3stub.def" Lines="@(_Lines)" Overwrite="true" - Condition="@(_Lines) != @(_OriginalLines)" /> - </Target> </Project>
\ No newline at end of file diff --git a/PCbuild/python3dll.vcxproj.filters b/PCbuild/python3dll.vcxproj.filters index a756605..ba562df 100644 --- a/PCbuild/python3dll.vcxproj.filters +++ b/PCbuild/python3dll.vcxproj.filters @@ -11,11 +11,6 @@ </Filter> </ItemGroup> <ItemGroup> - <None Include="..\PC\python3.def"> - <Filter>Source Files</Filter> - </None> - </ItemGroup> - <ItemGroup> <ClCompile Include="..\PC\python3dll.c"> <Filter>Source Files</Filter> </ClCompile> |