diff -ur root-6.20.02.orig/bindings/pyroot/src/MethodProxy.cxx root-6.20.02/bindings/pyroot/src/MethodProxy.cxx --- root-6.20.02.orig/bindings/pyroot/src/MethodProxy.cxx 2020-03-15 16:21:25.000000000 +0100 +++ root-6.20.02/bindings/pyroot/src/MethodProxy.cxx 2020-03-15 19:43:20.946684699 +0100 @@ -845,7 +845,8 @@ sizeof(MethodProxy), // tp_basicsize 0, // tp_itemsize (destructor)mp_dealloc, // tp_dealloc - 0, // tp_print + 0, // tp_print (python < 3.8) + // tp_vectorcall_offset (python >= 3.8) 0, // tp_getattr 0, // tp_setattr 0, // tp_compare @@ -894,6 +895,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif +#if PY_VERSION_HEX >= 0x03080000 + , 0 // tp_vectorcall +#if PY_VERSION_HEX < 0x03090000 + , 0 // tp_print (python 3.8 only) +#endif +#endif }; } // namespace PyROOT diff -ur root-6.20.02.orig/bindings/pyroot/src/ObjectProxy.cxx root-6.20.02/bindings/pyroot/src/ObjectProxy.cxx --- root-6.20.02.orig/bindings/pyroot/src/ObjectProxy.cxx 2020-03-15 16:21:25.000000000 +0100 +++ root-6.20.02/bindings/pyroot/src/ObjectProxy.cxx 2020-03-15 19:43:20.946684699 +0100 @@ -398,7 +398,8 @@ sizeof(ObjectProxy), // tp_basicsize 0, // tp_itemsize (destructor)op_dealloc, // tp_dealloc - 0, // tp_print + 0, // tp_print (python < 3.8) + // tp_vectorcall_offset (python >= 3.8) 0, // tp_getattr 0, // tp_setattr 0, // tp_compare @@ -450,6 +451,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif +#if PY_VERSION_HEX >= 0x03080000 + , 0 // tp_vectorcall +#if PY_VERSION_HEX < 0x03090000 + , 0 // tp_print (python 3.8 only) +#endif +#endif }; } // namespace PyROOT diff -ur root-6.20.02.orig/bindings/pyroot/src/PropertyProxy.cxx root-6.20.02/bindings/pyroot/src/PropertyProxy.cxx --- root-6.20.02.orig/bindings/pyroot/src/PropertyProxy.cxx 2020-03-15 16:21:25.000000000 +0100 +++ root-6.20.02/bindings/pyroot/src/PropertyProxy.cxx 2020-03-15 19:43:20.946684699 +0100 @@ -133,7 +133,8 @@ sizeof(PropertyProxy), // tp_basicsize 0, // tp_itemsize (destructor)pp_dealloc, // tp_dealloc - 0, // tp_print + 0, // tp_print (python < 3.8) + // tp_vectorcall_offset (python >= 3.8) 0, // tp_getattr 0, // tp_setattr 0, // tp_compare @@ -182,6 +183,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif +#if PY_VERSION_HEX >= 0x03080000 + , 0 // tp_vectorcall +#if PY_VERSION_HEX < 0x03090000 + , 0 // tp_print (python 3.8 only) +#endif +#endif }; } // namespace PyROOT diff -ur root-6.20.02.orig/bindings/pyroot/src/PyRootType.cxx root-6.20.02/bindings/pyroot/src/PyRootType.cxx --- root-6.20.02.orig/bindings/pyroot/src/PyRootType.cxx 2020-03-15 16:21:25.000000000 +0100 +++ root-6.20.02/bindings/pyroot/src/PyRootType.cxx 2020-03-15 19:43:20.946684699 +0100 @@ -232,7 +232,8 @@ sizeof(PyROOT::PyRootClass),// tp_basicsize 0, // tp_itemsize 0, // tp_dealloc - 0, // tp_print + 0, // tp_print (python < 3.8) + // tp_vectorcall_offset (python >= 3.8) 0, // tp_getattr 0, // tp_setattr 0, // tp_compare @@ -281,6 +282,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif +#if PY_VERSION_HEX >= 0x03080000 + , 0 // tp_vectorcall +#if PY_VERSION_HEX < 0x03090000 + , 0 // tp_print (python 3.8 only) +#endif +#endif }; } // namespace PyROOT diff -ur root-6.20.02.orig/bindings/pyroot/src/Pythonize.cxx root-6.20.02/bindings/pyroot/src/Pythonize.cxx --- root-6.20.02.orig/bindings/pyroot/src/Pythonize.cxx 2020-03-15 16:21:25.000000000 +0100 +++ root-6.20.02/bindings/pyroot/src/Pythonize.cxx 2020-03-15 19:43:20.947684688 +0100 @@ -944,6 +944,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif +#if PY_VERSION_HEX >= 0x03080000 + , 0 // tp_vectorcall +#if PY_VERSION_HEX < 0x03090000 + , 0 // tp_print (python 3.8 only) +#endif +#endif }; static PyObject* vector_iter( PyObject* v ) { diff -ur root-6.20.02.orig/bindings/pyroot/src/RootModule.cxx root-6.20.02/bindings/pyroot/src/RootModule.cxx --- root-6.20.02.orig/bindings/pyroot/src/RootModule.cxx 2020-03-15 16:21:25.000000000 +0100 +++ root-6.20.02/bindings/pyroot/src/RootModule.cxx 2020-03-15 19:43:20.948684678 +0100 @@ -134,6 +134,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif +#if PY_VERSION_HEX >= 0x03080000 + , 0 // tp_vectorcall +#if PY_VERSION_HEX < 0x03090000 + , 0 // tp_print (python 3.8 only) +#endif +#endif }; PyObject _PyROOT_NullPtrStruct = { diff -ur root-6.20.02.orig/bindings/pyroot/src/TCustomPyTypes.cxx root-6.20.02/bindings/pyroot/src/TCustomPyTypes.cxx --- root-6.20.02.orig/bindings/pyroot/src/TCustomPyTypes.cxx 2020-03-15 16:21:25.000000000 +0100 +++ root-6.20.02/bindings/pyroot/src/TCustomPyTypes.cxx 2020-03-15 19:43:20.948684678 +0100 @@ -19,7 +19,8 @@ 0, // tp_basicsize 0, // tp_itemsize 0, // tp_dealloc - 0, // tp_print + 0, // tp_print (python < 3.8) + // tp_vectorcall_offset (python >= 3.8) 0, // tp_getattr 0, // tp_setattr 0, // tp_compare @@ -69,6 +70,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif +#if PY_VERSION_HEX >= 0x03080000 + , 0 // tp_vectorcall +#if PY_VERSION_HEX < 0x03090000 + , 0 // tp_print (python 3.8 only) +#endif +#endif }; //= long type allowed for reference passing ================================== @@ -78,7 +85,8 @@ 0, // tp_basicsize 0, // tp_itemsize 0, // tp_dealloc - 0, // tp_print + 0, // tp_print (python < 3.8) + // tp_vectorcall_offset (python >= 3.8) 0, // tp_getattr 0, // tp_setattr 0, // tp_compare @@ -128,6 +136,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif +#if PY_VERSION_HEX >= 0x03080000 + , 0 // tp_vectorcall +#if PY_VERSION_HEX < 0x03090000 + , 0 // tp_print (python 3.8 only) +#endif +#endif }; //= instancemethod object with a more efficient call function ================ @@ -277,7 +291,8 @@ 0, // tp_basicsize 0, // tp_itemsize (destructor)im_dealloc, // tp_dealloc - 0, // tp_print + 0, // tp_print (python < 3.8) + // tp_vectorcall_offset (python >= 3.8) 0, // tp_getattr 0, // tp_setattr 0, // tp_compare @@ -327,6 +342,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif +#if PY_VERSION_HEX >= 0x03080000 + , 0 // tp_vectorcall +#if PY_VERSION_HEX < 0x03090000 + , 0 // tp_print (python 3.8 only) +#endif +#endif }; } // namespace PyROOT diff -ur root-6.20.02.orig/bindings/pyroot/src/TemplateProxy.cxx root-6.20.02/bindings/pyroot/src/TemplateProxy.cxx --- root-6.20.02.orig/bindings/pyroot/src/TemplateProxy.cxx 2020-03-15 16:21:25.000000000 +0100 +++ root-6.20.02/bindings/pyroot/src/TemplateProxy.cxx 2020-03-15 19:43:20.948684678 +0100 @@ -492,7 +492,8 @@ sizeof(TemplateProxy), // tp_basicsize 0, // tp_itemsize (destructor)tpp_dealloc, // tp_dealloc - 0, // tp_print + 0, // tp_print (python < 3.8) + // tp_vectorcall_offset (python >= 3.8) 0, // tp_getattr 0, // tp_setattr 0, // tp_compare @@ -541,6 +542,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif +#if PY_VERSION_HEX >= 0x03080000 + , 0 // tp_vectorcall +#if PY_VERSION_HEX < 0x03090000 + , 0 // tp_print (python 3.8 only) +#endif +#endif }; } // namespace PyROOT diff -ur root-6.20.02.orig/bindings/pyroot/src/TTupleOfInstances.cxx root-6.20.02/bindings/pyroot/src/TTupleOfInstances.cxx --- root-6.20.02.orig/bindings/pyroot/src/TTupleOfInstances.cxx 2020-03-15 16:21:25.000000000 +0100 +++ root-6.20.02/bindings/pyroot/src/TTupleOfInstances.cxx 2020-03-15 19:43:20.948684678 +0100 @@ -42,7 +42,8 @@ 0, // tp_basicsize 0, // tp_itemsize 0, // tp_dealloc - 0, // tp_print + 0, // tp_print (python < 3.8) + // tp_vectorcall_offset (python >= 3.8) 0, // tp_getattr 0, // tp_setattr 0, // tp_compare @@ -92,6 +93,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif +#if PY_VERSION_HEX >= 0x03080000 + , 0 // tp_vectorcall +#if PY_VERSION_HEX < 0x03090000 + , 0 // tp_print (python 3.8 only) +#endif +#endif }; } // namespace PyROOT diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/CMakeLists.txt root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/CMakeLists.txt --- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/CMakeLists.txt 2020-03-15 16:21:25.000000000 +0100 +++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/CMakeLists.txt 2020-03-15 19:43:20.949684667 +0100 @@ -64,11 +64,6 @@ target_compile_options(cppyy PRIVATE -Wno-deprecated-register) endif() -# Disables warnings due to new field tp_vectorcall in Python 3.8 -if(NOT MSVC AND ${PYTHON_VERSION_STRING} VERSION_GREATER_EQUAL "3.8") - target_compile_options(cppyy PRIVATE -Wno-missing-field-initializers) -endif() - target_include_directories(cppyy PRIVATE ${CMAKE_BINARY_DIR}/include) # needed for string_view backport target_include_directories(cppyy PUBLIC ${PYTHON_INCLUDE_DIRS} diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDataMember.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDataMember.cxx --- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDataMember.cxx 2020-03-15 16:21:25.000000000 +0100 +++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPDataMember.cxx 2020-03-15 19:43:20.949684667 +0100 @@ -167,7 +167,8 @@ sizeof(CPPDataMember), // tp_basicsize 0, // tp_itemsize (destructor)pp_dealloc, // tp_dealloc - 0, // tp_print + 0, // tp_print (python < 3.8) + // tp_vectorcall_offset (python >= 3.8) 0, // tp_getattr 0, // tp_setattr 0, // tp_compare @@ -216,6 +217,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif +#if PY_VERSION_HEX >= 0x03080000 + , 0 // tp_vectorcall +#if PY_VERSION_HEX < 0x03090000 + , 0 // tp_print (python 3.8 only) +#endif +#endif }; } // namespace CPyCppyy diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPInstance.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPInstance.cxx --- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPInstance.cxx 2020-03-15 16:21:25.000000000 +0100 +++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPInstance.cxx 2020-03-15 19:43:20.949684667 +0100 @@ -565,7 +565,8 @@ sizeof(CPPInstance), // tp_basicsize 0, // tp_itemsize (destructor)op_dealloc, // tp_dealloc - 0, // tp_print + 0, // tp_print (python < 3.8) + // tp_vectorcall_offset (python >= 3.8) 0, // tp_getattr 0, // tp_setattr 0, // tp_compare @@ -617,6 +618,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif +#if PY_VERSION_HEX >= 0x03080000 + , 0 // tp_vectorcall +#if PY_VERSION_HEX < 0x03090000 + , 0 // tp_print (python 3.8 only) +#endif +#endif }; } // namespace CPyCppyy diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOverload.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOverload.cxx --- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOverload.cxx 2020-03-15 16:21:25.000000000 +0100 +++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPOverload.cxx 2020-03-15 19:43:20.950684656 +0100 @@ -889,7 +889,8 @@ sizeof(CPPOverload), // tp_basicsize 0, // tp_itemsize (destructor)mp_dealloc, // tp_dealloc - 0, // tp_print + 0, // tp_print (python < 3.8) + // tp_vectorcall_offset (python >= 3.8) 0, // tp_getattr 0, // tp_setattr 0, // tp_compare @@ -938,6 +939,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif +#if PY_VERSION_HEX >= 0x03080000 + , 0 // tp_vectorcall +#if PY_VERSION_HEX < 0x03090000 + , 0 // tp_print (python 3.8 only) +#endif +#endif }; } // namespace CPyCppyy diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPScope.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPScope.cxx --- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPScope.cxx 2020-03-15 16:21:25.000000000 +0100 +++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPPScope.cxx 2020-03-15 19:43:20.950684656 +0100 @@ -596,7 +596,8 @@ sizeof(CPyCppyy::CPPScope), // tp_basicsize 0, // tp_itemsize 0, // tp_dealloc - 0, // tp_print + 0, // tp_print (python < 3.8) + // tp_vectorcall_offset (python >= 3.8) 0, // tp_getattr 0, // tp_setattr 0, // tp_compare @@ -649,6 +650,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif +#if PY_VERSION_HEX >= 0x03080000 + , 0 // tp_vectorcall +#if PY_VERSION_HEX < 0x03090000 + , 0 // tp_print (python 3.8 only) +#endif +#endif }; } // namespace CPyCppyy diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCppyyModule.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCppyyModule.cxx --- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCppyyModule.cxx 2020-03-15 16:21:25.000000000 +0100 +++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CPyCppyyModule.cxx 2020-03-15 19:43:20.951684646 +0100 @@ -140,6 +140,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif +#if PY_VERSION_HEX >= 0x03080000 + , 0 // tp_vectorcall +#if PY_VERSION_HEX < 0x03090000 + , 0 // tp_print (python 3.8 only) +#endif +#endif }; namespace { diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CustomPyTypes.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CustomPyTypes.cxx --- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CustomPyTypes.cxx 2020-03-15 16:21:25.000000000 +0100 +++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/CustomPyTypes.cxx 2020-03-15 19:43:20.951684646 +0100 @@ -33,6 +33,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif +#if PY_VERSION_HEX >= 0x03080000 + , 0 // tp_vectorcall +#if PY_VERSION_HEX < 0x03090000 + , 0 // tp_print (python 3.8 only) +#endif +#endif }; //= long type allowed for reference passing ================================== @@ -59,6 +65,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif +#if PY_VERSION_HEX >= 0x03080000 + , 0 // tp_vectorcall +#if PY_VERSION_HEX < 0x03090000 + , 0 // tp_print (python 3.8 only) +#endif +#endif }; //- custom type representing typedef to pointer of class --------------------- @@ -89,6 +101,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif +#if PY_VERSION_HEX >= 0x03080000 + , 0 // tp_vectorcall +#if PY_VERSION_HEX < 0x03090000 + , 0 // tp_print (python 3.8 only) +#endif +#endif }; //= instancemethod object with a more efficient call function ================ @@ -254,6 +272,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif +#if PY_VERSION_HEX >= 0x03080000 + , 0 // tp_vectorcall +#if PY_VERSION_HEX < 0x03090000 + , 0 // tp_print (python 3.8 only) +#endif +#endif }; @@ -304,6 +328,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif +#if PY_VERSION_HEX >= 0x03080000 + , 0 // tp_vectorcall +#if PY_VERSION_HEX < 0x03090000 + , 0 // tp_print (python 3.8 only) +#endif +#endif }; @@ -355,6 +385,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif +#if PY_VERSION_HEX >= 0x03080000 + , 0 // tp_vectorcall +#if PY_VERSION_HEX < 0x03090000 + , 0 // tp_print (python 3.8 only) +#endif +#endif }; } // namespace CPyCppyy diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLevelViews.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLevelViews.cxx --- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLevelViews.cxx 2020-03-15 16:21:25.000000000 +0100 +++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/LowLevelViews.cxx 2020-03-15 19:43:20.951684646 +0100 @@ -651,7 +651,8 @@ sizeof(CPyCppyy::LowLevelView),// tp_basicsize 0, // tp_itemsize (destructor)ll_dealloc, // tp_dealloc - 0, // tp_print + 0, // tp_print (python < 3.8) + // tp_vectorcall_offset (python >= 3.8) 0, // tp_getattr 0, // tp_setattr 0, // tp_compare @@ -701,6 +702,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif +#if PY_VERSION_HEX >= 0x03080000 + , 0 // tp_vectorcall +#if PY_VERSION_HEX < 0x03090000 + , 0 // tp_print (python 3.8 only) +#endif +#endif }; } // namespace CPyCppyy diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TemplateProxy.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TemplateProxy.cxx --- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TemplateProxy.cxx 2020-03-15 16:21:25.000000000 +0100 +++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TemplateProxy.cxx 2020-03-15 19:43:20.952684635 +0100 @@ -709,7 +709,8 @@ sizeof(TemplateProxy), // tp_basicsize 0, // tp_itemsize (destructor)tpp_dealloc, // tp_dealloc - 0, // tp_print + 0, // tp_print (python < 3.8) + // tp_vectorcall_offset (python >= 3.8) 0, // tp_getattr 0, // tp_setattr 0, // tp_compare @@ -758,6 +759,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif +#if PY_VERSION_HEX >= 0x03080000 + , 0 // tp_vectorcall +#if PY_VERSION_HEX < 0x03090000 + , 0 // tp_print (python 3.8 only) +#endif +#endif }; } // namespace CPyCppyy diff -ur root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TupleOfInstances.cxx root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TupleOfInstances.cxx --- root-6.20.02.orig/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TupleOfInstances.cxx 2020-03-15 16:21:25.000000000 +0100 +++ root-6.20.02/bindings/pyroot_experimental/cppyy/CPyCppyy/src/TupleOfInstances.cxx 2020-03-15 19:43:20.952684635 +0100 @@ -82,6 +82,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif +#if PY_VERSION_HEX >= 0x03080000 + , 0 // tp_vectorcall +#if PY_VERSION_HEX < 0x03090000 + , 0 // tp_print (python 3.8 only) +#endif +#endif }; @@ -161,7 +167,8 @@ 0, // tp_basicsize 0, // tp_itemsize 0, // tp_dealloc - 0, // tp_print + 0, // tp_print (python < 3.8) + // tp_vectorcall_offset (python >= 3.8) 0, // tp_getattr 0, // tp_setattr 0, // tp_compare @@ -211,6 +218,12 @@ #if PY_VERSION_HEX >= 0x03040000 , 0 // tp_finalize #endif +#if PY_VERSION_HEX >= 0x03080000 + , 0 // tp_vectorcall +#if PY_VERSION_HEX < 0x03090000 + , 0 // tp_print (python 3.8 only) +#endif +#endif }; } // namespace CPyCppyy