Skip to content

Commit

Permalink
Enable pykd for python 3.11.
Browse files Browse the repository at this point in the history
Signed-off-by: Colin Xu <colin.xu@gmail.com>
  • Loading branch information
ivellioscolin committed Feb 22, 2023
1 parent 9c61860 commit 5a7f0b0
Show file tree
Hide file tree
Showing 7 changed files with 265 additions and 6 deletions.
40 changes: 40 additions & 0 deletions pykd.sln
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ Global
Debug_2.7|x64 = Debug_2.7|x64
Debug_3.10|Win32 = Debug_3.10|Win32
Debug_3.10|x64 = Debug_3.10|x64
Debug_3.11|Win32 = Debug_3.11|Win32
Debug_3.11|x64 = Debug_3.11|x64
Debug_3.5|Win32 = Debug_3.5|Win32
Debug_3.5|x64 = Debug_3.5|x64
Debug_3.6|Win32 = Debug_3.6|Win32
Expand All @@ -58,6 +60,8 @@ Global
Release_2.7|x64 = Release_2.7|x64
Release_3.10|Win32 = Release_3.10|Win32
Release_3.10|x64 = Release_3.10|x64
Release_3.11|Win32 = Release_3.11|Win32
Release_3.11|x64 = Release_3.11|x64
Release_3.5|Win32 = Release_3.5|Win32
Release_3.5|x64 = Release_3.5|x64
Release_3.6|Win32 = Release_3.6|Win32
Expand All @@ -75,6 +79,8 @@ Global
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Debug_2.7|x64.ActiveCfg = Debug|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Debug_3.10|Win32.ActiveCfg = Debug|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Debug_3.10|x64.ActiveCfg = Debug|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Debug_3.11|Win32.ActiveCfg = Debug|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Debug_3.11|x64.ActiveCfg = Debug|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Debug_3.5|Win32.ActiveCfg = Debug|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Debug_3.5|x64.ActiveCfg = Debug|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Debug_3.6|Win32.ActiveCfg = Debug|Any CPU
Expand All @@ -89,6 +95,8 @@ Global
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Release_2.7|x64.ActiveCfg = Release|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Release_3.10|Win32.ActiveCfg = Release|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Release_3.10|x64.ActiveCfg = Release|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Release_3.11|Win32.ActiveCfg = Release|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Release_3.11|x64.ActiveCfg = Release|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Release_3.5|Win32.ActiveCfg = Release|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Release_3.5|x64.ActiveCfg = Release|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Release_3.6|Win32.ActiveCfg = Release|Any CPU
Expand All @@ -103,6 +111,8 @@ Global
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Debug_2.7|x64.ActiveCfg = Debug|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Debug_3.10|Win32.ActiveCfg = Debug|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Debug_3.10|x64.ActiveCfg = Debug|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Debug_3.11|Win32.ActiveCfg = Debug|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Debug_3.11|x64.ActiveCfg = Debug|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Debug_3.5|Win32.ActiveCfg = Debug|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Debug_3.5|x64.ActiveCfg = Debug|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Debug_3.6|Win32.ActiveCfg = Debug|Any CPU
Expand All @@ -117,6 +127,8 @@ Global
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Release_2.7|x64.ActiveCfg = Release|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Release_3.10|Win32.ActiveCfg = Release|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Release_3.10|x64.ActiveCfg = Release|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Release_3.11|Win32.ActiveCfg = Release|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Release_3.11|x64.ActiveCfg = Release|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Release_3.5|Win32.ActiveCfg = Release|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Release_3.5|x64.ActiveCfg = Release|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Release_3.6|Win32.ActiveCfg = Release|Any CPU
Expand All @@ -131,6 +143,8 @@ Global
{D78837DC-BF31-4FC4-88A5-7F2FADAFA795}.Debug_2.7|x64.ActiveCfg = Debug|Any CPU
{D78837DC-BF31-4FC4-88A5-7F2FADAFA795}.Debug_3.10|Win32.ActiveCfg = Debug|Any CPU
{D78837DC-BF31-4FC4-88A5-7F2FADAFA795}.Debug_3.10|x64.ActiveCfg = Debug|Any CPU
{D78837DC-BF31-4FC4-88A5-7F2FADAFA795}.Debug_3.11|Win32.ActiveCfg = Debug|Any CPU
{D78837DC-BF31-4FC4-88A5-7F2FADAFA795}.Debug_3.11|x64.ActiveCfg = Debug|Any CPU
{D78837DC-BF31-4FC4-88A5-7F2FADAFA795}.Debug_3.5|Win32.ActiveCfg = Debug|Any CPU
{D78837DC-BF31-4FC4-88A5-7F2FADAFA795}.Debug_3.5|x64.ActiveCfg = Debug|Any CPU
{D78837DC-BF31-4FC4-88A5-7F2FADAFA795}.Debug_3.6|Win32.ActiveCfg = Debug|Any CPU
Expand All @@ -145,6 +159,8 @@ Global
{D78837DC-BF31-4FC4-88A5-7F2FADAFA795}.Release_2.7|x64.ActiveCfg = Release|Any CPU
{D78837DC-BF31-4FC4-88A5-7F2FADAFA795}.Release_3.10|Win32.ActiveCfg = Release|Any CPU
{D78837DC-BF31-4FC4-88A5-7F2FADAFA795}.Release_3.10|x64.ActiveCfg = Release|Any CPU
{D78837DC-BF31-4FC4-88A5-7F2FADAFA795}.Release_3.11|Win32.ActiveCfg = Release|Any CPU
{D78837DC-BF31-4FC4-88A5-7F2FADAFA795}.Release_3.11|x64.ActiveCfg = Release|Any CPU
{D78837DC-BF31-4FC4-88A5-7F2FADAFA795}.Release_3.5|Win32.ActiveCfg = Release|Any CPU
{D78837DC-BF31-4FC4-88A5-7F2FADAFA795}.Release_3.5|x64.ActiveCfg = Release|Any CPU
{D78837DC-BF31-4FC4-88A5-7F2FADAFA795}.Release_3.6|Win32.ActiveCfg = Release|Any CPU
Expand All @@ -163,6 +179,10 @@ Global
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug_3.10|Win32.Build.0 = Debug|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug_3.10|x64.ActiveCfg = Debug|x64
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug_3.10|x64.Build.0 = Debug|x64
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug_3.11|Win32.ActiveCfg = Debug|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug_3.11|Win32.Build.0 = Debug|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug_3.11|x64.ActiveCfg = Debug|x64
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug_3.11|x64.Build.0 = Debug|x64
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug_3.5|Win32.ActiveCfg = Debug|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug_3.5|Win32.Build.0 = Debug|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug_3.5|x64.ActiveCfg = Debug|x64
Expand Down Expand Up @@ -191,6 +211,10 @@ Global
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Release_3.10|Win32.Build.0 = Release_Static|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Release_3.10|x64.ActiveCfg = Release_Static|x64
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Release_3.10|x64.Build.0 = Release_Static|x64
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Release_3.11|Win32.ActiveCfg = Release_Static|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Release_3.11|Win32.Build.0 = Release_Static|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Release_3.11|x64.ActiveCfg = Release_Static|x64
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Release_3.11|x64.Build.0 = Release_Static|x64
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Release_3.5|Win32.ActiveCfg = Release_Static|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Release_3.5|Win32.Build.0 = Release_Static|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Release_3.5|x64.ActiveCfg = Release_Static|x64
Expand Down Expand Up @@ -219,6 +243,10 @@ Global
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug_3.10|Win32.Build.0 = Debug_3.10|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug_3.10|x64.ActiveCfg = Debug_3.10|x64
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug_3.10|x64.Build.0 = Debug_3.10|x64
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug_3.11|Win32.ActiveCfg = Debug_3.11|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug_3.11|Win32.Build.0 = Debug_3.11|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug_3.11|x64.ActiveCfg = Debug_3.11|x64
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug_3.11|x64.Build.0 = Debug_3.11|x64
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug_3.5|Win32.ActiveCfg = Debug_3.5|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug_3.5|Win32.Build.0 = Debug_3.5|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug_3.5|x64.ActiveCfg = Debug_3.5|x64
Expand Down Expand Up @@ -247,6 +275,10 @@ Global
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release_3.10|Win32.Build.0 = Release_3.10|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release_3.10|x64.ActiveCfg = Release_3.10|x64
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release_3.10|x64.Build.0 = Release_3.10|x64
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release_3.11|Win32.ActiveCfg = Release_3.11|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release_3.11|Win32.Build.0 = Release_3.11|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release_3.11|x64.ActiveCfg = Release_3.11|x64
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release_3.11|x64.Build.0 = Release_3.11|x64
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release_3.5|Win32.ActiveCfg = Release_3.5|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release_3.5|Win32.Build.0 = Release_3.5|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release_3.5|x64.ActiveCfg = Release_3.5|x64
Expand Down Expand Up @@ -275,6 +307,10 @@ Global
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Debug_3.10|Win32.Build.0 = Debug|Win32
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Debug_3.10|x64.ActiveCfg = Debug|x64
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Debug_3.10|x64.Build.0 = Debug|x64
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Debug_3.11|Win32.ActiveCfg = Debug|Win32
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Debug_3.11|Win32.Build.0 = Debug|Win32
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Debug_3.11|x64.ActiveCfg = Debug|x64
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Debug_3.11|x64.Build.0 = Debug|x64
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Debug_3.5|Win32.ActiveCfg = Debug|Win32
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Debug_3.5|Win32.Build.0 = Debug|Win32
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Debug_3.5|x64.ActiveCfg = Debug|x64
Expand Down Expand Up @@ -303,6 +339,10 @@ Global
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release_3.10|Win32.Build.0 = Release|Win32
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release_3.10|x64.ActiveCfg = Release|x64
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release_3.10|x64.Build.0 = Release|x64
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release_3.11|Win32.ActiveCfg = Release|Win32
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release_3.11|Win32.Build.0 = Release|Win32
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release_3.11|x64.ActiveCfg = Release|x64
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release_3.11|x64.Build.0 = Release|x64
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release_3.5|Win32.ActiveCfg = Debug|Win32
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release_3.5|Win32.Build.0 = Debug|Win32
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release_3.5|x64.ActiveCfg = Debug|x64
Expand Down
25 changes: 21 additions & 4 deletions pykd/boost.python/object/class.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,11 @@ namespace objects
{
if (static_data_object.tp_dict == 0)
{
#if PY_VERSION_HEX >= 0x030b0000
Py_SET_TYPE(&static_data_object, &PyType_Type);
#else
Py_TYPE(&static_data_object) = &PyType_Type;
#endif
static_data_object.tp_base = &PyProperty_Type;
if (PyType_Ready(&static_data_object))
return 0;
Expand Down Expand Up @@ -316,7 +320,11 @@ namespace objects
{
if (class_metatype_object.tp_dict == 0)
{
#if PY_VERSION_HEX >= 0x030b0000
Py_SET_TYPE(&class_metatype_object, &PyType_Type);
#else
Py_TYPE(&class_metatype_object) = &PyType_Type;
#endif
class_metatype_object.tp_base = &PyType_Type;
if (PyType_Ready(&class_metatype_object))
return type_handle();
Expand Down Expand Up @@ -374,12 +382,13 @@ namespace objects
// like, so we'll store the total size of the object
// there. A negative number indicates that the extra
// instance memory is not yet allocated to any holders.
#if PY_VERSION_HEX >= 0x02060000
Py_SIZE(result) =
#if PY_VERSION_HEX >= 0x030b0000
Py_SET_SIZE(result, -(static_cast<int>(offsetof(instance<>, storage) + instance_size)));
#elif PY_VERSION_HEX >= 0x02060000
Py_SIZE(result) = -(static_cast<int>(offsetof(instance<>, storage) + instance_size));
#else
result->ob_size =
result->ob_size = -(static_cast<int>(offsetof(instance<>, storage) + instance_size));
#endif
-(static_cast<int>(offsetof(instance<>,storage) + instance_size));
}
return (PyObject*)result;
}
Expand Down Expand Up @@ -470,7 +479,11 @@ namespace objects
{
if (class_type_object.tp_dict == 0)
{
#if PY_VERSION_HEX >= 0x030b0000
Py_SET_TYPE(&class_type_object, incref(class_metatype().get()));
#else
Py_TYPE(&class_type_object) = incref(class_metatype().get());
#endif
class_type_object.tp_base = &PyBaseObject_Type;
if (PyType_Ready(&class_type_object))
return type_handle();
Expand Down Expand Up @@ -739,7 +752,11 @@ void* instance_holder::allocate(PyObject* self_, std::size_t holder_offset, std:
assert(holder_offset >= offsetof(objects::instance<>,storage));

// Record the fact that the storage is occupied, noting where it starts
#if PY_VERSION_HEX >= 0x030b0000
Py_SET_SIZE(self, holder_offset);
#else
Py_SIZE(self) = holder_offset;
#endif
return (char*)self + holder_offset;
}
else
Expand Down
4 changes: 4 additions & 0 deletions pykd/boost.python/object/enum.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,11 @@ namespace
{
if (enum_type_object.tp_dict == 0)
{
#if PY_VERSION_HEX >= 0x030b0000
Py_SET_TYPE(&enum_type_object, incref(&PyType_Type));
#else
Py_TYPE(&enum_type_object) = incref(&PyType_Type);
#endif
#if PY_VERSION_HEX >= 0x03000000
enum_type_object.tp_base = &PyLong_Type;
#else
Expand Down
4 changes: 4 additions & 0 deletions pykd/boost.python/object/function.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,11 @@ function::function(
PyObject* p = this;
if (Py_TYPE(&function_type) == 0)
{
#if PY_VERSION_HEX >= 0x030b0000
Py_SET_TYPE(&function_type, &PyType_Type);
#else
Py_TYPE(&function_type) = &PyType_Type;
#endif
::PyType_Ready(&function_type);
}

Expand Down
4 changes: 4 additions & 0 deletions pykd/boost.python/object/life_support.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,11 @@ PyObject* make_nurse_and_patient(PyObject* nurse, PyObject* patient)

if (Py_TYPE(&life_support_type) == 0)
{
#if PY_VERSION_HEX >= 0x030b0000
Py_SET_TYPE(&life_support_type, &PyType_Type);
#else
Py_TYPE(&life_support_type) = &PyType_Type;
#endif
PyType_Ready(&life_support_type);
}

Expand Down
4 changes: 2 additions & 2 deletions pykd/packages.config
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
<package id="Python37" version="1.0.0.1" targetFramework="Native" />
<package id="Python38" version="3.8.0" targetFramework="Native" />
<package id="Python39" version="3.9.0" targetFramework="Native" />
<package id="python" version="3.10.10" allowedVersions="[3.10.0,3.11.0)" targetFramework="native" />
<package id="pythonx86" version="3.10.10" allowedVersions="[3.10.0,3.11.0)" targetFramework="native" />
<package id="python" version="3.11.2" allowedVersions="[3.10.0,3.12.0)" targetFramework="native" />
<package id="pythonx86" version="3.11.2" allowedVersions="[3.10.0,3.12.0)" targetFramework="native" />
<package id="clang-cmake" version="6.0.0.1" targetFramework="Native" />
<package id="llvm-cmake" version="6.0.0.1" targetFramework="Native" />
</packages>
Loading

0 comments on commit 5a7f0b0

Please sign in to comment.