6262{ TODO -oMMM : implement Attribute descriptor and subclassing stuff }
6363
6464{ $IFNDEF FPC}
65- { $IFNDEF DELPHI2010_OR_HIGHER }
66- Error! Delphi 2010 or higher is required!
65+ { $IFNDEF DELPHIXE2_OR_HIGHER }
66+ Error! Delphi XE2 or higher is required!
6767 { $ENDIF}
6868{ $ENDIF}
6969
@@ -116,7 +116,7 @@ TPythonVersionProp = record
116116 end ;
117117const
118118{ $IFDEF MSWINDOWS}
119- PYTHON_KNOWN_VERSIONS: array [1 ..8 ] of TPythonVersionProp =
119+ PYTHON_KNOWN_VERSIONS: array [1 ..9 ] of TPythonVersionProp =
120120 (
121121 (DllName: ' python33.dll' ; RegVersion: ' 3.3' ; APIVersion: 1013 ),
122122 (DllName: ' python34.dll' ; RegVersion: ' 3.4' ; APIVersion: 1013 ),
@@ -125,11 +125,12 @@ TPythonVersionProp = record
125125 (DllName: ' python37.dll' ; RegVersion: ' 3.7' ; APIVersion: 1013 ),
126126 (DllName: ' python38.dll' ; RegVersion: ' 3.8' ; APIVersion: 1013 ),
127127 (DllName: ' python39.dll' ; RegVersion: ' 3.9' ; APIVersion: 1013 ),
128- (DllName: ' python310.dll' ; RegVersion: ' 3.10' ; APIVersion: 1013 )
128+ (DllName: ' python310.dll' ; RegVersion: ' 3.10' ; APIVersion: 1013 ),
129+ (DllName: ' python311.dll' ; RegVersion: ' 3.11' ; APIVersion: 1013 )
129130 );
130131{ $ENDIF}
131132{ $IFDEF _so_files}
132- PYTHON_KNOWN_VERSIONS: array [1 ..8 ] of TPythonVersionProp =
133+ PYTHON_KNOWN_VERSIONS: array [1 ..9 ] of TPythonVersionProp =
133134 (
134135 (DllName: ' libpython3.3m.so' ; RegVersion: ' 3.3' ; APIVersion: 1013 ),
135136 (DllName: ' libpython3.4m.so' ; RegVersion: ' 3.4' ; APIVersion: 1013 ),
@@ -138,11 +139,12 @@ TPythonVersionProp = record
138139 (DllName: ' libpython3.7m.so' ; RegVersion: ' 3.7' ; APIVersion: 1013 ),
139140 (DllName: ' libpython3.8.so' ; RegVersion: ' 3.8' ; APIVersion: 1013 ),
140141 (DllName: ' libpython3.9.so' ; RegVersion: ' 3.9' ; APIVersion: 1013 ),
141- (DllName: ' libpython3.10.so' ; RegVersion: ' 3.10' ; APIVersion: 1013 )
142+ (DllName: ' libpython3.10.so' ; RegVersion: ' 3.10' ; APIVersion: 1013 ),
143+ (DllName: ' libpython3.11.so' ; RegVersion: ' 3.11' ; APIVersion: 1013 )
142144 );
143145{ $ENDIF}
144146{ $IFDEF DARWIN}
145- PYTHON_KNOWN_VERSIONS: array [1 ..8 ] of TPythonVersionProp =
147+ PYTHON_KNOWN_VERSIONS: array [1 ..9 ] of TPythonVersionProp =
146148 (
147149 (DllName: ' libpython3.3.dylib' ; RegVersion: ' 3.3' ; APIVersion: 1013 ),
148150 (DllName: ' libpython3.4.dylib' ; RegVersion: ' 3.4' ; APIVersion: 1013 ),
@@ -151,15 +153,17 @@ TPythonVersionProp = record
151153 (DllName: ' libpython3.7.dylib' ; RegVersion: ' 3.7' ; APIVersion: 1013 ),
152154 (DllName: ' libpython3.8.dylib' ; RegVersion: ' 3.8' ; APIVersion: 1013 ),
153155 (DllName: ' libpython3.9.dylib' ; RegVersion: ' 3.9' ; APIVersion: 1013 ),
154- (DllName: ' libpython3.10.dylib' ; RegVersion: ' 3.10' ; APIVersion: 1013 )
156+ (DllName: ' libpython3.10.dylib' ; RegVersion: ' 3.10' ; APIVersion: 1013 ),
157+ (DllName: ' libpython3.11.dylib' ; RegVersion: ' 3.11' ; APIVersion: 1013 )
155158 );
156159{ $ENDIF}
157160{ $IFDEF ANDROID}
158- PYTHON_KNOWN_VERSIONS: array [6 ..8 ] of TPythonVersionProp =
161+ PYTHON_KNOWN_VERSIONS: array [6 ..9 ] of TPythonVersionProp =
159162 (
160163 (DllName: ' libpython3.8.so' ; RegVersion: ' 3.8' ; APIVersion: 1013 ),
161164 (DllName: ' libpython3.9.so' ; RegVersion: ' 3.9' ; APIVersion: 1013 ),
162- (DllName: ' libpython3.10.so' ; RegVersion: ' 3.10' ; APIVersion: 1013 )
165+ (DllName: ' libpython3.10.so' ; RegVersion: ' 3.10' ; APIVersion: 1013 ),
166+ (DllName: ' libpython3.11.so' ; RegVersion: ' 3.11' ; APIVersion: 1013 )
163167 );
164168{ $ENDIF}
165169
@@ -1537,7 +1541,7 @@ TPythonInterface=class(TDynamicDll)
15371541 PyObject_Call:function (ob, args, kw:PPyObject):PPyObject; cdecl;
15381542 PyObject_GenericGetAttr:function (obj, name : PPyObject) : PPyObject; cdecl;
15391543 PyObject_GenericSetAttr:function (obj, name , value : PPyObject) : Integer; cdecl;
1540- PyObject_GC_Malloc :function (size:NativeUInt):PPyObject; cdecl;
1544+ PyObject_Malloc :function (size:NativeUInt):PPyObject; cdecl;
15411545 PyObject_GC_New:function (t:PPyTypeObject):PPyObject; cdecl;
15421546 PyObject_GC_NewVar:function (t:PPyTypeObject; size:NativeInt):PPyObject; cdecl;
15431547 PyObject_GC_Resize:function (t:PPyObject; newsize:NativeInt):PPyObject; cdecl;
@@ -2786,7 +2790,11 @@ implementation
27862790{ $ENDIF}
27872791{ $IFDEF MSWINDOWS}
27882792 Registry,
2793+ { $IFDEF FPC}
2794+ JwaPsApi,
2795+ { $ELSE}
27892796 PsAPI,
2797+ { $ENDIF}
27902798{ $ENDIF}
27912799 Math;
27922800
@@ -3723,7 +3731,7 @@ procedure TPythonInterface.MapDll;
37233731 PyObject_Call := Import (' PyObject_Call' );
37243732 PyObject_GenericGetAttr := Import (' PyObject_GenericGetAttr' );
37253733 PyObject_GenericSetAttr := Import (' PyObject_GenericSetAttr' );
3726- PyObject_GC_Malloc := Import (' _PyObject_GC_Malloc ' );
3734+ PyObject_Malloc := Import (' PyObject_Malloc ' );
37273735 PyObject_GC_New := Import (' _PyObject_GC_New' );
37283736 PyObject_GC_NewVar := Import (' _PyObject_GC_NewVar' );
37293737 PyObject_GC_Resize := Import (' _PyObject_GC_Resize' );
0 commit comments