From 979effcad4b7b6547a02c7a14208b38ed4c73505 Mon Sep 17 00:00:00 2001 From: Florian Angerer Date: Tue, 20 Oct 2026 15:38:05 +0200 Subject: [PATCH 01/11] Add explicit conversion parameters to CApiBuiltin --- .../builtins/modules/cext/PythonCextBuiltins.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBuiltins.java index 1ace10234d..5095d8b761 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBuiltins.java @@ -816,6 +816,19 @@ public boolean inherits(ABI candidate) { ArgDescriptor[] args() default {}; + /** + * Java-to-native return value conversion node class. A Java primitive class specifies + * pass-through conversion; {@code void.class} specifies no return value. + */ + Class retConversion() default long.class; + + /** + * Native-to-Java argument conversion node classes, in the same order as {@link #args()}. + * A Java primitive class specifies pass-through conversion for that argument. The empty + * default temporarily allows existing declarations to compile during migration. + */ + Class[] argConversions() default {}; + /** * This will generate a builtin with the name suffix "_Inlined" on the native side * ({@code capi_forwards.h}), which can be useful if a builtin needs a different From 43b152ccdd49b79d966e18e4ddc0b96a1a978515 Mon Sep 17 00:00:00 2001 From: Florian Angerer Date: Tue, 20 Oct 2026 16:35:38 +0200 Subject: [PATCH 02/11] Declare explicit conversions on C API builtins --- .../cext/PythonCextAbstractBuiltins.java | 130 +++++++++-------- .../modules/cext/PythonCextArrayBuiltins.java | 15 +- .../modules/cext/PythonCextBoolBuiltins.java | 4 +- .../modules/cext/PythonCextBuiltins.java | 62 ++++---- .../cext/PythonCextByteArrayBuiltins.java | 2 +- .../modules/cext/PythonCextBytesBuiltins.java | 33 +++-- .../modules/cext/PythonCextCEvalBuiltins.java | 21 +-- .../cext/PythonCextCapsuleBuiltins.java | 22 +-- .../modules/cext/PythonCextClassBuiltins.java | 4 +- .../modules/cext/PythonCextCodeBuiltins.java | 16 ++- .../modules/cext/PythonCextCodecBuiltins.java | 4 +- .../cext/PythonCextComplexBuiltins.java | 8 +- .../cext/PythonCextContextBuiltins.java | 20 +-- .../cext/PythonCextDateTimeBuiltins.java | 67 +++++---- .../modules/cext/PythonCextDescrBuiltins.java | 13 +- .../modules/cext/PythonCextDictBuiltins.java | 73 ++++++---- .../modules/cext/PythonCextErrBuiltins.java | 48 ++++--- .../modules/cext/PythonCextFileBuiltins.java | 3 +- .../modules/cext/PythonCextFloatBuiltins.java | 8 +- .../modules/cext/PythonCextFrameBuiltins.java | 18 +-- .../modules/cext/PythonCextFuncBuiltins.java | 48 ++++--- .../cext/PythonCextGenericAliasBuiltins.java | 5 +- .../modules/cext/PythonCextHashBuiltins.java | 8 +- .../cext/PythonCextImportBuiltins.java | 22 ++- .../modules/cext/PythonCextIterBuiltins.java | 7 +- .../modules/cext/PythonCextListBuiltins.java | 38 ++--- .../modules/cext/PythonCextLongBuiltins.java | 41 +++--- .../cext/PythonCextMemoryViewBuiltins.java | 7 +- .../cext/PythonCextMethodBuiltins.java | 7 +- .../cext/PythonCextModuleBuiltins.java | 47 ++++--- .../cext/PythonCextNamespaceBuiltins.java | 4 +- .../cext/PythonCextObjectBuiltins.java | 93 +++++++----- .../cext/PythonCextPickleBufferBuiltins.java | 4 +- .../cext/PythonCextPosixmoduleBuiltins.java | 4 +- .../cext/PythonCextPyLifecycleBuiltins.java | 2 +- .../cext/PythonCextPyStateBuiltins.java | 23 +-- .../cext/PythonCextPyThreadBuiltins.java | 2 +- .../cext/PythonCextPythonRunBuiltins.java | 16 ++- .../modules/cext/PythonCextSetBuiltins.java | 18 +-- .../modules/cext/PythonCextSliceBuiltins.java | 13 +- .../modules/cext/PythonCextSlotBuiltins.java | 82 +++++------ .../cext/PythonCextStructSeqBuiltins.java | 10 +- .../modules/cext/PythonCextSysBuiltins.java | 11 +- .../cext/PythonCextTracebackBuiltins.java | 7 +- .../modules/cext/PythonCextTupleBuiltins.java | 12 +- .../modules/cext/PythonCextTypeBuiltins.java | 35 +++-- .../cext/PythonCextUnicodeBuiltins.java | 132 +++++++++++------- .../modules/cext/PythonCextWarnBuiltins.java | 8 +- .../cext/PythonCextWeakrefBuiltins.java | 20 +-- 49 files changed, 760 insertions(+), 537 deletions(-) diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextAbstractBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextAbstractBuiltins.java index e4dbd04880..fcc3b96d28 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextAbstractBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextAbstractBuiltins.java @@ -83,7 +83,9 @@ import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.CharPtrToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.CharPtrToPythonStrictNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonInternalNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeInternalNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.dict.PDict; import com.oracle.graal.python.builtins.objects.function.PBuiltinFunction; import com.oracle.graal.python.builtins.objects.getsetdescriptor.GetSetDescriptor; @@ -179,7 +181,7 @@ public final class PythonCextAbstractBuiltins { /////// PyNumber /////// - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_PyNumber_Index(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); checkNonNullArgUncached(obj); @@ -202,14 +204,14 @@ static long GraalPyPrivate_PyNumber_Index(long objPtr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_PyNumber_IndexCopy(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); Object result = PyLongCopyNodeGen.getUncached().execute(null, obj); return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_PyNumber_Long(long objectPtr) { Object object = NativeToPythonInternalNode.executeUncached(objectPtr, false); Object result = PyNumberLongNode.executeUncached(object); @@ -217,7 +219,8 @@ static long GraalPyPrivate_PyNumber_Long(long objectPtr) { } // TODO(CAPI STATIC): uses nodes without @GenerateUncached - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Int}, call = Direct, acquireGil = false) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Int}, call = Direct, acquireGil = false, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + int.class}) protected abstract static class PyNumber_ToBase extends CApiBinaryBuiltinNode { @Specialization(guards = "base == 2") static Object toBase2(Object n, @SuppressWarnings("unused") int base, @@ -266,14 +269,14 @@ protected boolean checkBase(int base) { } } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_PyNumber_Float(long objectPtr) { Object object = NativeToPythonInternalNode.executeUncached(objectPtr, false); double result = PyNumberFloatNode.executeUncached(object); return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_Add(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -281,7 +284,7 @@ static long GraalPyPrivate_PyNumber_Add(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_Subtract(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -289,7 +292,7 @@ static long GraalPyPrivate_PyNumber_Subtract(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_Multiply(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -297,7 +300,7 @@ static long GraalPyPrivate_PyNumber_Multiply(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_Remainder(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -305,7 +308,7 @@ static long GraalPyPrivate_PyNumber_Remainder(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_TrueDivide(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -313,7 +316,7 @@ static long GraalPyPrivate_PyNumber_TrueDivide(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_FloorDivide(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -321,7 +324,7 @@ static long GraalPyPrivate_PyNumber_FloorDivide(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_Divmod(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -329,7 +332,7 @@ static long GraalPyPrivate_PyNumber_Divmod(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_And(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -337,7 +340,7 @@ static long GraalPyPrivate_PyNumber_And(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_Or(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -345,7 +348,7 @@ static long GraalPyPrivate_PyNumber_Or(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_Xor(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -353,7 +356,7 @@ static long GraalPyPrivate_PyNumber_Xor(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_Lshift(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -361,7 +364,7 @@ static long GraalPyPrivate_PyNumber_Lshift(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_Rshift(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -369,7 +372,7 @@ static long GraalPyPrivate_PyNumber_Rshift(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_MatrixMultiply(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -377,7 +380,7 @@ static long GraalPyPrivate_PyNumber_MatrixMultiply(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_InPlaceAdd(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -385,7 +388,7 @@ static long GraalPyPrivate_PyNumber_InPlaceAdd(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_InPlaceSubtract(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -393,7 +396,7 @@ static long GraalPyPrivate_PyNumber_InPlaceSubtract(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_InPlaceMultiply(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -401,7 +404,7 @@ static long GraalPyPrivate_PyNumber_InPlaceMultiply(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_InPlaceRemainder(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -409,7 +412,7 @@ static long GraalPyPrivate_PyNumber_InPlaceRemainder(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_InPlaceTrueDivide(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -417,7 +420,7 @@ static long GraalPyPrivate_PyNumber_InPlaceTrueDivide(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_InPlaceFloorDivide(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -425,7 +428,7 @@ static long GraalPyPrivate_PyNumber_InPlaceFloorDivide(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_InPlaceAnd(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -433,7 +436,7 @@ static long GraalPyPrivate_PyNumber_InPlaceAnd(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_InPlaceOr(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -441,7 +444,7 @@ static long GraalPyPrivate_PyNumber_InPlaceOr(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_InPlaceXor(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -449,7 +452,7 @@ static long GraalPyPrivate_PyNumber_InPlaceXor(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_InPlaceLshift(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -457,7 +460,7 @@ static long GraalPyPrivate_PyNumber_InPlaceLshift(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_InPlaceRshift(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -465,7 +468,7 @@ static long GraalPyPrivate_PyNumber_InPlaceRshift(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_InPlaceMatrixMultiply(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -473,7 +476,8 @@ static long GraalPyPrivate_PyNumber_InPlaceMatrixMultiply(long o1Ptr, long o2Ptr return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = { + long.class, long.class, long.class}) static long GraalPyPrivate_PyNumber_InPlacePower(long o1Ptr, long o2Ptr, long o3Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -482,7 +486,8 @@ static long GraalPyPrivate_PyNumber_InPlacePower(long o1Ptr, long o2Ptr, long o3 return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = { + long.class, long.class, long.class}) static long GraalPyPrivate_PyNumber_Power(long o1Ptr, long o2Ptr, long o3Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -493,7 +498,7 @@ static long GraalPyPrivate_PyNumber_Power(long o1Ptr, long o2Ptr, long o3Ptr) { /////// PySequence /////// - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Direct, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Direct, acquireGil = false, retConversion = long.class, argConversions = {long.class}) static long PySequence_Tuple(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); checkNonNullArgUncached(obj); @@ -501,14 +506,15 @@ static long PySequence_Tuple(long objPtr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Direct, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Direct, acquireGil = false, retConversion = long.class, argConversions = {long.class}) static long PySequence_List(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); Object result = ConstructListNode.getUncached().execute(null, obj); return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, Py_ssize_t, PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, Py_ssize_t, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = int.class, argConversions = {long.class, long.class, + long.class}) static int GraalPyPrivate_Sequence_SetItem(long objPtr, long key, long valuePtr) { if ((int) key != key) { throw PRaiseNode.raiseStatic(null, PythonErrorType.OverflowError, ErrorMessages.CANNOT_FIT_P_INTO_INDEXSIZED_INT, key); @@ -519,7 +525,8 @@ static int GraalPyPrivate_Sequence_SetItem(long objPtr, long key, long valuePtr) return 0; } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, Py_ssize_t, Py_ssize_t}, call = Direct, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, Py_ssize_t, Py_ssize_t}, call = Direct, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class, + long.class}) static long PySequence_GetSlice(long objPtr, long iLow, long iHigh) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); if (PySequenceCheckNode.executeUncached(obj)) { @@ -530,14 +537,14 @@ static long PySequence_GetSlice(long objPtr, long iLow, long iHigh) { throw PRaiseNode.raiseStatic(null, TypeError, ErrorMessages.OBJ_IS_UNSLICEABLE, obj); } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct, acquireGil = false) + @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct, acquireGil = false, retConversion = int.class, argConversions = {long.class, long.class}) static int PySequence_Contains(long haystackPtr, long needlePtr) { Object haystack = NativeToPythonInternalNode.executeUncached(haystackPtr, false); Object needle = NativeToPythonInternalNode.executeUncached(needlePtr, false); return PInt.intValue(PySequenceContainsNode.executeUncached(haystack, needle)); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, Py_ssize_t}, call = Direct) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, Py_ssize_t}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) static long PySequence_InPlaceRepeat(long objPtr, long n) { if (!PInt.isIntRange(n)) { throw PRaiseNode.raiseStatic(null, OverflowError); @@ -547,7 +554,7 @@ static long PySequence_InPlaceRepeat(long objPtr, long n) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) static long PySequence_Concat(long s1Ptr, long s2Ptr) { Object s1 = NativeToPythonInternalNode.executeUncached(s1Ptr, false); Object s2 = NativeToPythonInternalNode.executeUncached(s2Ptr, false); @@ -555,7 +562,7 @@ static long PySequence_Concat(long s1Ptr, long s2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) static long PySequence_InPlaceConcat(long s1Ptr, long s2Ptr) { Object s1 = NativeToPythonInternalNode.executeUncached(s1Ptr, false); Object s2 = NativeToPythonInternalNode.executeUncached(s2Ptr, false); @@ -563,7 +570,7 @@ static long PySequence_InPlaceConcat(long s1Ptr, long s2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, Py_ssize_t}, call = Ignored) + @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, Py_ssize_t}, call = Ignored, retConversion = int.class, argConversions = {long.class, long.class}) static int GraalPyPrivate_Sequence_DelItem(long oPtr, long i) { if ((int) i != i) { throw PRaiseNode.raiseStatic(null, PythonErrorType.OverflowError, ErrorMessages.CANNOT_FIT_P_INTO_INDEXSIZED_INT, i); @@ -573,7 +580,7 @@ static int GraalPyPrivate_Sequence_DelItem(long oPtr, long i) { return 0; } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, Py_ssize_t}, call = Ignored) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, Py_ssize_t}, call = Ignored, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_Sequence_GetItem(long delegatePtr, long position) { if ((int) position != position) { throw PRaiseNode.raiseStatic(null, PythonErrorType.OverflowError, ErrorMessages.CANNOT_FIT_P_INTO_INDEXSIZED_INT, position); @@ -583,13 +590,14 @@ static long GraalPyPrivate_Sequence_GetItem(long delegatePtr, long position) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = Py_ssize_t, args = {PyObjectRawPointer}, call = Ignored) + @CApiBuiltin(ret = Py_ssize_t, args = {PyObjectRawPointer}, call = Ignored, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_Sequence_Size(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); return PySequenceSizeNode.executeUncached(obj); } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, Py_ssize_t, Py_ssize_t, PyObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, Py_ssize_t, Py_ssize_t, PyObjectRawPointer}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class, long.class, + long.class}) static int PySequence_SetSlice(long sequencePtr, long iLow, long iHigh, long sPtr) { Object sequence = NativeToPythonInternalNode.executeUncached(sequencePtr, false); TpSlots slots = GetObjectSlotsNode.executeUncached(sequence); @@ -603,7 +611,7 @@ static int PySequence_SetSlice(long sequencePtr, long iLow, long iHigh, long sPt } } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, Py_ssize_t, Py_ssize_t}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, Py_ssize_t, Py_ssize_t}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class, long.class}) static int PySequence_DelSlice(long sequencePtr, long iLow, long iHigh) { Object sequence = NativeToPythonInternalNode.executeUncached(sequencePtr, false); TpSlots slots = GetObjectSlotsNode.executeUncached(sequence); @@ -616,14 +624,14 @@ static int PySequence_DelSlice(long sequencePtr, long iLow, long iHigh) { } } - @CApiBuiltin(ret = Py_ssize_t, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = Py_ssize_t, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) static long PySequence_Count(long haystackPtr, long needlePtr) { Object haystack = NativeToPythonInternalNode.executeUncached(haystackPtr, false); Object needle = NativeToPythonInternalNode.executeUncached(needlePtr, false); return PySequenceIterSearchNode.executeUncached(haystack, needle, PySequenceIterSearchNode.PY_ITERSEARCH_COUNT); } - @CApiBuiltin(ret = Py_ssize_t, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = Py_ssize_t, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) static long PySequence_Index(long haystackPtr, long needlePtr) { Object haystack = NativeToPythonInternalNode.executeUncached(haystackPtr, false); Object needle = NativeToPythonInternalNode.executeUncached(needlePtr, false); @@ -632,7 +640,7 @@ static long PySequence_Index(long haystackPtr, long needlePtr) { /////// PyObject /////// - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) static long PyObject_GetItem(long objPtr, long keyPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); Object key = NativeToPythonInternalNode.executeUncached(keyPtr, false); @@ -640,7 +648,8 @@ static long PyObject_GetItem(long objPtr, long keyPtr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(name = "GraalPyPrivate_Object_GetItemString", ret = PyObjectRawPointer, args = {PyObjectRawPointer, ConstCharPtr}, call = Ignored) + @CApiBuiltin(name = "GraalPyPrivate_Object_GetItemString", ret = PyObjectRawPointer, args = {PyObjectRawPointer, ConstCharPtr}, call = Ignored, retConversion = long.class, argConversions = { + long.class, long.class}) static long GraalPyPrivate_Object_GetItemString(long objPtr, long keyPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); Object key = CharPtrToPythonStrictNode.executeUncached(keyPtr); @@ -648,7 +657,8 @@ static long GraalPyPrivate_Object_GetItemString(long objPtr, long keyPtr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(name = "GraalPyPrivate_Mapping_GetOptionalItemString", ret = Int, args = {PyObjectRawPointer, ConstCharPtr, PyObjectPtr}, call = Ignored) + @CApiBuiltin(name = "GraalPyPrivate_Mapping_GetOptionalItemString", ret = Int, args = {PyObjectRawPointer, ConstCharPtr, PyObjectPtr}, call = Ignored, retConversion = int.class, argConversions = { + long.class, long.class, long.class}) static int GraalPyPrivate_Mapping_GetOptionalItemString(long objPtr, long keyPtr, long resultPtr) { NativeMemory.writePtr(resultPtr, NULLPTR); Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); @@ -664,7 +674,7 @@ static int GraalPyPrivate_Mapping_GetOptionalItemString(long objPtr, long keyPtr return 1; } - @CApiBuiltin(ret = Py_ssize_t, args = {PyObjectRawPointer}, call = Ignored) + @CApiBuiltin(ret = Py_ssize_t, args = {PyObjectRawPointer}, call = Ignored, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_Object_Size(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); // Native objects are handled in C @@ -674,7 +684,7 @@ static long GraalPyPrivate_Object_Size(long objPtr) { return PyObjectSizeNode.executeUncached(obj); } - @CApiBuiltin(ret = Py_ssize_t, args = {PyObjectRawPointer, Py_ssize_t}, call = Direct) + @CApiBuiltin(ret = Py_ssize_t, args = {PyObjectRawPointer, Py_ssize_t}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) static long PyObject_LengthHint(long objPtr, long defaultValue) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); int len = IteratorNodes.GetLength.executeUncached(obj); @@ -686,7 +696,7 @@ static long PyObject_LengthHint(long objPtr, long defaultValue) { /////// PyMapping /////// - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyMapping_Keys(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); checkNonNullArgUncached(obj); @@ -704,7 +714,7 @@ static long PyMapping_Keys(long objPtr) { return PythonToNativeInternalNode.executeNewRefUncached(listResult); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyMapping_Items(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); checkNonNullArgUncached(obj); @@ -722,7 +732,7 @@ static long PyMapping_Items(long objPtr) { return PythonToNativeInternalNode.executeNewRefUncached(listResult); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyMapping_Values(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); checkNonNullArgUncached(obj); @@ -740,7 +750,7 @@ static long PyMapping_Values(long objPtr) { return PythonToNativeInternalNode.executeNewRefUncached(listResult); } - @CApiBuiltin(ret = Py_ssize_t, args = {PyObjectRawPointer}, call = Ignored) + @CApiBuiltin(ret = Py_ssize_t, args = {PyObjectRawPointer}, call = Ignored, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_Mapping_Size(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); Object cls = GetClassNode.executeUncached(obj); @@ -754,7 +764,7 @@ static long GraalPyPrivate_Mapping_Size(long objPtr) { /////// PyIter /////// - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyIter_Next(long iteratorPtr) { Object iterator = NativeToPythonInternalNode.executeUncached(iteratorPtr, false); try { @@ -768,7 +778,7 @@ static long PyIter_Next(long iteratorPtr) { } } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_Iter_Send(long iterPtr, long argPtr) { Object iter = NativeToPythonInternalNode.executeUncached(iterPtr, false); Object arg = NativeToPythonInternalNode.executeUncached(argPtr, false); @@ -795,7 +805,7 @@ static long GraalPyPrivate_Iter_Send(long iterPtr, long argPtr) { } } - @CApiBuiltin(ret = ConstCharPtr, args = {PyObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = ConstCharPtr, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyObject_GetDoc(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); try { @@ -809,7 +819,7 @@ static long PyObject_GetDoc(long objPtr) { return NULLPTR; } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, ConstCharPtr}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, ConstCharPtr}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class}) static int PyObject_SetDoc(long objPtr, long valuePtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); Object value = CharPtrToPythonNode.executeUncached(valuePtr); diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextArrayBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextArrayBuiltins.java index bab0a60c19..ebc25b64cc 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextArrayBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextArrayBuiltins.java @@ -65,7 +65,9 @@ import com.oracle.graal.python.builtins.objects.array.PArray; import com.oracle.graal.python.builtins.objects.buffer.BufferFlags; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonInternalNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeInternalNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.cext.structs.CFields; import com.oracle.graal.python.builtins.objects.cext.structs.CStructAccess; import com.oracle.graal.python.builtins.objects.cext.structs.CStructAccess.WriteTruffleStringNode; @@ -80,7 +82,8 @@ public final class PythonCextArrayBuiltins { - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Py_ssize_t, Int}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Py_ssize_t, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, long.class, + int.class}) static long GraalPyPrivate_Array_New(long clsPtr, long size, int typeCode) { Object cls = NativeToPythonInternalNode.executeUncached(clsPtr, false); TruffleString typeCodeString = TruffleString.fromCodePointUncached(typeCode, TS_ENCODING); @@ -94,7 +97,7 @@ static long GraalPyPrivate_Array_New(long clsPtr, long size, int typeCode) { } } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer}, call = Ignored) + @CApiBuiltin(ret = Int, args = {PyObjectRawPointer}, call = Ignored, retConversion = int.class, argConversions = {long.class}) static int GraalPyPrivate_Array_TypeCode(long arrayPtr) { return expectArray(arrayPtr, "GraalPyArray_GetDescriptor").getFormatString().codePointAtIndexUncached(0, TS_ENCODING); } @@ -102,7 +105,7 @@ static int GraalPyPrivate_Array_TypeCode(long arrayPtr) { /** * Graalpy-specific function implemented for Cython */ - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, Py_ssize_t}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, Py_ssize_t}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class}) static int GraalPyArray_Resize(long arrayPtr, long newSize) { PArray array = expectArray(arrayPtr, "GraalPyArray_Resize"); ArrayNodes.EnsureCapacityNode.executeUncached(array, (int) newSize); @@ -110,7 +113,7 @@ static int GraalPyArray_Resize(long arrayPtr, long newSize) { return 0; } - @CApiBuiltin(ret = CHAR_PTR, args = {PyObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = CHAR_PTR, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long GraalPyArray_Data(long arrayPtr) { PArray array = expectArray(arrayPtr, "GraalPyArray_Data"); if (array.getBytesLength() > 0) { @@ -119,7 +122,7 @@ static long GraalPyArray_Data(long arrayPtr) { return NULLPTR; } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, PY_BUFFER_PTR, Int}, call = Ignored) + @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, PY_BUFFER_PTR, Int}, call = Ignored, retConversion = int.class, argConversions = {long.class, long.class, int.class}) static int GraalPyPrivate_Array_getbuffer(long arrayPtr, long pyBufferPtr, int flags) { PArray array = expectArray(arrayPtr, "GraalPyPrivate_Array_getbuffer"); long bufPtr = ArrayNodes.EnsureNativeStorageNode.executeUncached(array).getPtr(); @@ -159,7 +162,7 @@ static int GraalPyPrivate_Array_getbuffer(long arrayPtr, long pyBufferPtr, int f return 0; } - @CApiBuiltin(ret = Void, args = {PyObjectRawPointer, PY_BUFFER_PTR}, call = Ignored) + @CApiBuiltin(ret = Void, args = {PyObjectRawPointer, PY_BUFFER_PTR}, call = Ignored, retConversion = void.class, argConversions = {long.class, long.class}) static void GraalPyPrivate_Array_releasebuffer(long arrayPtr, long pyBufferPtr) { PArray array = expectArray(arrayPtr, "GraalPyPrivate_Array_releasebuffer"); array.getExports().decrementAndGet(); diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBoolBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBoolBuiltins.java index 9789c30947..8e9b9d5640 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBoolBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBoolBuiltins.java @@ -52,14 +52,14 @@ public final class PythonCextBoolBuiltins { // These two should only be used during C API initialization, so the performance hardly // matters, but keeping their codesize small still makes sense. - @CApiBuiltin(ret = PyObjectRawPointer, call = Ignored, acquireGil = false, canRaise = false) + @CApiBuiltin(ret = PyObjectRawPointer, call = Ignored, acquireGil = false, canRaise = false, retConversion = long.class, argConversions = {}) public static long GraalPyPrivate_True() { Object trueValue = PythonContext.get(null).getTrue(); assert EnsurePythonObjectNode.doesNotNeedPromotion(trueValue); return PythonToNativeInternalNode.executeUncached(trueValue, true); } - @CApiBuiltin(ret = PyObjectRawPointer, call = Ignored, acquireGil = false, canRaise = false) + @CApiBuiltin(ret = PyObjectRawPointer, call = Ignored, acquireGil = false, canRaise = false, retConversion = long.class, argConversions = {}) public static long GraalPyPrivate_False() { Object falseValue = PythonContext.get(null).getFalse(); assert EnsurePythonObjectNode.doesNotNeedPromotion(falseValue); diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBuiltins.java index 5095d8b761..1d603604ed 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBuiltins.java @@ -114,6 +114,7 @@ import com.oracle.graal.python.builtins.objects.cext.capi.PThreadState; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTiming; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonClassNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.CharPtrToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.GcNativePtrToPythonNode; @@ -864,7 +865,7 @@ public boolean inherits(ABI candidate) { ABI[] abi() default {ABI.GRAALPY}; } - @CApiBuiltin(ret = PyObjectRawPointer, call = Ignored) + @CApiBuiltin(ret = PyObjectRawPointer, call = Ignored, retConversion = long.class, argConversions = {}) static long GraalPyPrivate_FileSystemDefaultEncoding() { return PythonToNativeInternalNode.executeNewRefUncached(GetFileSystemEncodingNode.getFileSystemEncoding()); } @@ -874,7 +875,7 @@ static long GraalPyPrivate_FileSystemDefaultEncoding() { T_BUILTINS }; - @CApiBuiltin(ret = PyTypeObjectRawPointer, args = {ConstCharPtr}, call = Ignored) + @CApiBuiltin(ret = PyTypeObjectRawPointer, args = {ConstCharPtr}, call = Ignored, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_Type(long typeNamePtr) { TruffleString typeName = (TruffleString) CharPtrToPythonNode.executeUncached(typeNamePtr); Python3Core core = PythonContext.get(null).getCore(); @@ -892,7 +893,7 @@ static long GraalPyPrivate_Type(long typeNamePtr) { throw PRaiseNode.raiseStatic(null, PythonErrorType.KeyError, ErrorMessages.APOSTROPHE_S, typeName); } - @CApiBuiltin(ret = Void, args = {PyTypeObjectRawPointer}, call = Ignored) + @CApiBuiltin(ret = Void, args = {PyTypeObjectRawPointer}, call = Ignored, retConversion = void.class, argConversions = {long.class}) @TruffleBoundary static void GraalPyPrivate_AddInheritedSlots(long pythonClassPtr) { /** @@ -909,7 +910,7 @@ static void GraalPyPrivate_AddInheritedSlots(long pythonClassPtr) { pythonClass.setTpSlots(TpSlots.fromNative(pythonClass, PythonContext.get(null))); } - @CApiBuiltin(ret = Void, args = {PyTypeObject}, call = Ignored) + @CApiBuiltin(ret = Void, args = {PyTypeObject}, call = Ignored, retConversion = void.class, argConversions = {NativeToPythonClassNode.class}) public static void GraalPyPrivate_NotifyTypeReady(long pointer) { CompilerAsserts.neverPartOfCompilation(); Object object = NativeToPythonInternalNode.executeUncached(pointer, false); @@ -920,7 +921,8 @@ public static void GraalPyPrivate_NotifyTypeReady(long pointer) { } } - @CApiBuiltin(ret = PyFrameObjectRawPointer, args = {PyThreadState, PyCodeObjectRawPointer, PyObjectRawPointer, PyObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = PyFrameObjectRawPointer, args = {PyThreadState, PyCodeObjectRawPointer, PyObjectRawPointer, PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = { + long.class, long.class, long.class, long.class}) static long PyFrame_New(long threadState, long codePtr, long globalsPtr, long localsPtr) { PCode code = (PCode) NativeToPythonInternalNode.executeUncached(codePtr, false); PythonObject globals = (PythonObject) NativeToPythonInternalNode.executeUncached(globalsPtr, false); @@ -930,7 +932,9 @@ static long PyFrame_New(long threadState, long codePtr, long globalsPtr, long lo return PythonToNativeInternalNode.executeNewRefUncached(PFactory.createPFrame(language, threadState, code, globals, frameLocals)); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {Pointer, PyObjectRawPointer, Py_ssize_t, Int, Py_ssize_t, ConstCharPtr, Int, Pointer, Pointer, Pointer, Pointer}, call = Ignored) + @CApiBuiltin(ret = PyObjectRawPointer, args = {Pointer, PyObjectRawPointer, Py_ssize_t, Int, Py_ssize_t, ConstCharPtr, Int, Pointer, Pointer, Pointer, + Pointer}, call = Ignored, retConversion = long.class, argConversions = {long.class, long.class, long.class, int.class, long.class, long.class, int.class, long.class, long.class, + long.class, long.class}) static long GraalPyPrivate_MemoryViewFromBuffer(long bufferStructPointer, long ownerPtr, long lenArg, int readonlyArg, long itemsizeArg, long formatPtr, int ndim, long bufPointer, long shapePointer, long stridesPointer, long suboffsetsPointer) { int itemsize = CastToJavaIntExactNode.executeUncached(itemsizeArg); @@ -1023,26 +1027,26 @@ static PKeyword[] doKeywords(Node inliningTarget, Object kwargs, } } - @CApiBuiltin(ret = SIZE_T, args = {}, call = Ignored) + @CApiBuiltin(ret = SIZE_T, args = {}, call = Ignored, retConversion = long.class, argConversions = {}) @TruffleBoundary static long GraalPyPrivate_GetMaxNativeMemory() { return PythonOptions.MaxNativeMemory.getValue(PythonContext.get(null).getEnv().getOptions()); } - @CApiBuiltin(ret = SIZE_T, args = {}, call = Ignored) + @CApiBuiltin(ret = SIZE_T, args = {}, call = Ignored, retConversion = long.class, argConversions = {}) @TruffleBoundary static long GraalPyPrivate_GetInitialNativeMemory() { return PythonOptions.InitialNativeMemory.getValue(PythonContext.get(null).getEnv().getOptions()); } // doesn't need a GIL; just accessing thread-local data - @CApiBuiltin(ret = Int, args = {PyThreadState, SIZE_T}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = Int, args = {PyThreadState, SIZE_T}, call = Ignored, acquireGil = false, retConversion = int.class, argConversions = {long.class, long.class}) @TruffleBoundary static int GraalPyPrivate_DeallocStack_Grow(long threadStatePointer, long newCapacity) { return PThreadState.growDeallocatingStack(threadStatePointer, newCapacity); } - @CApiBuiltin(ret = Void, args = {SIZE_T}, call = Ignored) + @CApiBuiltin(ret = Void, args = {SIZE_T}, call = Ignored, retConversion = void.class, argConversions = {long.class}) @TruffleBoundary static void GraalPyPrivate_TriggerGC(long delay) { LOGGER.fine("full GC due to native memory"); @@ -1057,12 +1061,12 @@ static void GraalPyPrivate_TriggerGC(long delay) { PythonContext.triggerAsyncActions(EncapsulatingNodeReference.getCurrent().get()); } - @CApiBuiltin(ret = Void, args = {Pointer}, call = Ignored) + @CApiBuiltin(ret = Void, args = {Pointer}, call = Ignored, retConversion = void.class, argConversions = {long.class}) static void GraalPyPrivate_ManagedObject_GC_Del(long ptr) { PyObjectGCDelNode.executeUncached(ptr); } - @CApiBuiltin(ret = Void, args = {UNSIGNED_INT, UINTPTR_T, SIZE_T}, call = Ignored) + @CApiBuiltin(ret = Void, args = {UNSIGNED_INT, UINTPTR_T, SIZE_T}, call = Ignored, retConversion = void.class, argConversions = {int.class, long.class, long.class}) @TruffleBoundary static void GraalPyPrivate_TraceMalloc_Track(int domain, long ptrVal, long size) { // this will also be called if the allocation failed @@ -1071,18 +1075,18 @@ static void GraalPyPrivate_TraceMalloc_Track(int domain, long ptrVal, long size) } } - @CApiBuiltin(ret = Void, args = {UNSIGNED_INT, UINTPTR_T}, call = Ignored) + @CApiBuiltin(ret = Void, args = {UNSIGNED_INT, UINTPTR_T}, call = Ignored, retConversion = void.class, argConversions = {int.class, long.class}) @TruffleBoundary static void GraalPyPrivate_TraceMalloc_Untrack(int domain, long ptrVal) { LOGGER.fine(() -> PythonUtils.formatJString("Untracking memory (domain: %d): %s", domain, CApiContext.asHex(ptrVal))); } - @CApiBuiltin(ret = Void, args = {Pointer}, call = Ignored) + @CApiBuiltin(ret = Void, args = {Pointer}, call = Ignored, retConversion = void.class, argConversions = {long.class}) static void GraalPyPrivate_Object_GC_UnTrack(long ptr) { traceNativeGCObject(ptr, false); } - @CApiBuiltin(ret = Void, args = {Pointer}, call = Ignored) + @CApiBuiltin(ret = Void, args = {Pointer}, call = Ignored, retConversion = void.class, argConversions = {long.class}) static void GraalPyPrivate_Object_GC_Track(long ptr) { traceNativeGCObject(ptr, true); } @@ -1134,7 +1138,7 @@ private static void traceNativeGCObject(long ptr, boolean track) { */ private static final Level REPLICATE_NATIVE_REFERENCES_LEVEL = Level.FINER; - @CApiBuiltin(ret = Void, args = {Pointer, Pointer, Int}, call = Ignored) + @CApiBuiltin(ret = Void, args = {Pointer, Pointer, Int}, call = Ignored, retConversion = void.class, argConversions = {long.class, long.class, int.class}) static void GraalPyPrivate_Object_ReplicateNativeReferences(long lPointer, long listHead, int n) { assert PythonLanguage.get(null).getEngineOption(PythonOptions.PythonGC); @@ -1229,7 +1233,7 @@ private static boolean isListWithNativeStorage(Object object) { * handle table references} of the denoted objects weak. This is used to break reference cycles * that involve managed objects. */ - @CApiBuiltin(ret = Void, args = {Pointer}, call = Ignored) + @CApiBuiltin(ret = Void, args = {Pointer}, call = Ignored, retConversion = void.class, argConversions = {long.class}) static void GraalPyPrivate_Object_GC_EnsureWeak(long head) { assert PythonContext.get(null).isNativeAccessAllowed(); assert PythonLanguage.get(null).getEngineOption(PythonOptions.PythonGC); @@ -1287,7 +1291,7 @@ static void GraalPyPrivate_Object_GC_EnsureWeak(long head) { } } - @CApiBuiltin(ret = Int, args = {Pointer}, call = Ignored) + @CApiBuiltin(ret = Int, args = {Pointer}, call = Ignored, retConversion = int.class, argConversions = {long.class}) static int GraalPyPrivate_IsReferencedFromManaged(long lPointer) { assert PythonContext.get(null).isNativeAccessAllowed(); assert PythonLanguage.get(null).getEngineOption(PythonOptions.PythonGC); @@ -1299,14 +1303,14 @@ static int GraalPyPrivate_IsReferencedFromManaged(long lPointer) { return PInt.intValue(object != null); } - @CApiBuiltin(ret = Void, call = Ignored) + @CApiBuiltin(ret = Void, call = Ignored, retConversion = void.class, argConversions = {}) static void GraalPyPrivate_EnableReferenceQueuePolling() { assert PythonLanguage.get(null).getEngineOption(PythonOptions.PythonGC); HandleContext handleContext = PythonContext.get(null).handleContext; CApiTransitions.enableReferenceQueuePolling(handleContext); } - @CApiBuiltin(ret = Int, call = Ignored) + @CApiBuiltin(ret = Int, call = Ignored, retConversion = int.class, argConversions = {}) static int GraalPyPrivate_DisableReferenceQueuePolling() { assert PythonLanguage.get(null).getEngineOption(PythonOptions.PythonGC); HandleContext handleContext = PythonContext.get(null).handleContext; @@ -1340,7 +1344,7 @@ static int GraalPyPrivate_DisableReferenceQueuePolling() { * generally fine. In practice, this means that options should either be marked * with @EngineOption so they are sure to be the same, or that options differing is benign. */ - @CApiBuiltin(ret = Int, call = Ignored) + @CApiBuiltin(ret = Int, call = Ignored, retConversion = int.class, argConversions = {}) @TruffleBoundary static int GraalPyPrivate_Native_Options() { int options = 0; @@ -1378,7 +1382,7 @@ static int GraalPyPrivate_Native_Options() { return options; } - @CApiBuiltin(ret = Void, args = {Int, ConstCharPtr}, call = Ignored) + @CApiBuiltin(ret = Void, args = {Int, ConstCharPtr}, call = Ignored, retConversion = void.class, argConversions = {int.class, long.class}) @TruffleBoundary static void GraalPyPrivate_LogString(int level, long messagePtr) { TruffleString message = (TruffleString) CharPtrToPythonNode.executeUncached(messagePtr); @@ -1404,7 +1408,7 @@ static void GraalPyPrivate_LogString(int level, long messagePtr) { } } - @CApiBuiltin(ret = Void, args = {}, call = Direct) + @CApiBuiltin(ret = Void, args = {}, call = Direct, retConversion = void.class, argConversions = {}) @TruffleBoundary static void GraalPyPrivate_DebugTrace() { PythonContext context = PythonContext.get(null); @@ -1431,14 +1435,14 @@ public Void visitFrame(FrameInstance frame) { } } - @CApiBuiltin(ret = Int, args = {Pointer}, call = Direct) + @CApiBuiltin(ret = Int, args = {Pointer}, call = Direct, retConversion = int.class, argConversions = {long.class}) @TruffleBoundary static int GraalPyPrivate_Debug(long arg) { DebugNode.tdebug(PythonContext.get(null), new Object[]{arg}); return 0; } - @CApiBuiltin(ret = Int, args = {Pointer}, call = Direct) + @CApiBuiltin(ret = Int, args = {Pointer}, call = Direct, retConversion = int.class, argConversions = {long.class}) @TruffleBoundary static int GraalPyPrivate_ToNative(@SuppressWarnings("unused") long object) { PythonContext context = PythonContext.get(null); @@ -1490,7 +1494,7 @@ static int GraalPyPrivate_ToNative(@SuppressWarnings("unused") long object) { * } * */ - @CApiBuiltin(ret = Void, args = {Pointer}, call = Ignored) + @CApiBuiltin(ret = Void, args = {Pointer}, call = Ignored, retConversion = void.class, argConversions = {long.class}) @TruffleBoundary static void GraalPyPrivate_InitBuiltinTypesAndStructs(long builtinTypesArrayPointer) { List builtinTypes = new LinkedList<>(); @@ -1532,7 +1536,7 @@ static void GraalPyPrivate_InitBuiltinTypesAndStructs(long builtinTypesArrayPoin * these singletons may recursively create GC-tracked native wrappers, which are immediately * linked into generation 0 and therefore require initialized generation list heads. */ - @CApiBuiltin(ret = Void, args = {Pointer, Pointer}, call = Ignored) + @CApiBuiltin(ret = Void, args = {Pointer, Pointer}, call = Ignored, retConversion = void.class, argConversions = {long.class, long.class}) static void GraalPyPrivate_InitCharacterSingletons(long bytesCharactersAddr, long unicodeCharactersAddr) { CApiContext cApiContext = PythonContext.get(null).getCApiContext(); assert cApiContext.getGCState() != NULLPTR; @@ -1595,7 +1599,7 @@ private static PythonManagedClass lookupBuiltinTypeWithName(PythonContext contex return clazz; } - @CApiBuiltin(ret = CHAR_PTR, args = {PyObjectRawPointer}, call = Ignored) + @CApiBuiltin(ret = CHAR_PTR, args = {PyObjectRawPointer}, call = Ignored, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_GetMMapData(long objectPtr) { PMMap object = (PMMap) NativeToPythonInternalNode.executeUncached(objectPtr, false); PythonContext context = PythonContext.get(null); @@ -1606,7 +1610,7 @@ static long GraalPyPrivate_GetMMapData(long objectPtr) { } } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer}, call = Ignored) + @CApiBuiltin(ret = Int, args = {PyObjectRawPointer}, call = Ignored, retConversion = int.class, argConversions = {long.class}) static int GraalPyPrivate_MMap_IsReadonly(long objectPtr) { PMMap object = (PMMap) NativeToPythonInternalNode.executeUncached(objectPtr, false); return object.isWriteable() ? 0 : 1; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextByteArrayBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextByteArrayBuiltins.java index 5fad4c1e0c..27cdd96ec8 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextByteArrayBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextByteArrayBuiltins.java @@ -60,7 +60,7 @@ public final class PythonCextByteArrayBuiltins { - @CApiBuiltin(ret = CHAR_PTR, args = {PyObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = CHAR_PTR, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyByteArray_AsString(long bytesPtr) { Object obj = NativeToPythonInternalNode.executeUncached(bytesPtr, false); if (obj instanceof PByteArray bytes) { diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBytesBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBytesBuiltins.java index 2932059be8..60d2d8aa4c 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBytesBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBytesBuiltins.java @@ -72,9 +72,12 @@ import com.oracle.graal.python.builtins.objects.bytes.PBytesLike; import com.oracle.graal.python.builtins.objects.cext.PythonAbstractNativeObject; import com.oracle.graal.python.builtins.objects.cext.capi.PySequenceArrayWrapper; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.CharPtrToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonInternalNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeInternalNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.cext.structs.CFields; import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes.GetItemScalarNode; import com.oracle.graal.python.builtins.objects.ints.PInt; @@ -107,7 +110,7 @@ public final class PythonCextBytesBuiltins { /* * Moving this to native regresses median time by about 1.84x, so leaving it here. */ - @CApiBuiltin(ret = Py_ssize_t, args = {PyObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = Py_ssize_t, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyBytes_Size(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); if (obj instanceof PBytes bytes) { @@ -119,7 +122,7 @@ static long PyBytes_Size(long objPtr) { throw PRaiseNode.raiseStatic(null, TypeError, ErrorMessages.EXPECTED_BYTES_P_FOUND, obj); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_Bytes_Concat(long originalPtr, long newPartPtr) { Object original = NativeToPythonInternalNode.executeUncached(originalPtr, false); Object newPart = NativeToPythonInternalNode.executeUncached(newPartPtr, false); @@ -128,7 +131,8 @@ static long GraalPyPrivate_Bytes_Concat(long originalPtr, long newPartPtr) { } // TODO(CAPI STATIC): uses nodes without @GenerateUncached - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + NativeToPythonNode.class}) abstract static class _PyBytes_Join extends CApiBinaryBuiltinNode { @Specialization static Object join(Object original, Object newPart, @@ -138,7 +142,8 @@ static Object join(Object original, Object newPart, } // TODO(CAPI STATIC): uses nodes without @GenerateUncached - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, PyObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonNode.class, + NativeToPythonNode.class}) abstract static class GraalPyPrivate_Bytes_FromFormat extends CApiBinaryBuiltinNode { @Specialization static Object fromFormat(TruffleString fmt, Object args, @@ -150,7 +155,7 @@ static Object fromFormat(TruffleString fmt, Object args, } // TODO(CAPI STATIC): uses nodes without @GenerateUncached - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyBytes_FromObject extends CApiUnaryBuiltinNode { @Specialization(guards = "isBuiltinBytes(bytes)") static Object bytes(PBytes bytes) { @@ -166,7 +171,7 @@ static Object fromObject(Object obj, } } - @CApiBuiltin(ret = PyObjectRawPointer, args = {ConstCharPtr, Py_ssize_t}, call = Ignored) + @CApiBuiltin(ret = PyObjectRawPointer, args = {ConstCharPtr, Py_ssize_t}, call = Ignored, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_Bytes_FromStringAndSize(long nativePointer, long size) { try { byte[] bytes = getByteArray(nativePointer, size); @@ -177,7 +182,7 @@ static long GraalPyPrivate_Bytes_FromStringAndSize(long nativePointer, long size } } - @CApiBuiltin(ret = PyObjectRawPointer, args = {ConstCharPtr, Py_ssize_t}, call = Ignored) + @CApiBuiltin(ret = PyObjectRawPointer, args = {ConstCharPtr, Py_ssize_t}, call = Ignored, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_ByteArray_FromStringAndSize(long nativePointer, long size) { try { byte[] bytes = getByteArray(nativePointer, size); @@ -188,8 +193,8 @@ static long GraalPyPrivate_ByteArray_FromStringAndSize(long nativePointer, long } } - @CApiBuiltin(name = "PyByteArray_Resize", ret = Int, args = {PyObjectRawPointer, Py_ssize_t}, call = Direct) - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, Py_ssize_t}, call = Ignored) + @CApiBuiltin(name = "PyByteArray_Resize", ret = Int, args = {PyObjectRawPointer, Py_ssize_t}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, Py_ssize_t}, call = Ignored, retConversion = int.class, argConversions = {long.class, long.class}) static int GraalPyPrivate_Bytes_Resize(long selfPtr, long newSizeL) { Object self = NativeToPythonInternalNode.executeUncached(selfPtr, false); if (CompilerDirectives.injectBranchProbability(CompilerDirectives.SLOWPATH_PROBABILITY, !(self instanceof PBytesLike))) { @@ -208,7 +213,7 @@ static int GraalPyPrivate_Bytes_Resize(long selfPtr, long newSizeL) { return 0; } - @CApiBuiltin(ret = PyObjectRawPointer, args = {ArgDescriptor.Long}, call = Ignored) + @CApiBuiltin(ret = PyObjectRawPointer, args = {ArgDescriptor.Long}, call = Ignored, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_Bytes_EmptyWithCapacity(long size) { try { Object result = PFactory.createBytes(PythonLanguage.get(null), new byte[PInt.intValueExact(size)]); @@ -218,12 +223,12 @@ static long GraalPyPrivate_Bytes_EmptyWithCapacity(long size) { } } - @CApiBuiltin(ret = PyObjectRawPointer, call = Ignored) + @CApiBuiltin(ret = PyObjectRawPointer, call = Ignored, retConversion = long.class, argConversions = {}) static long GraalPyPrivate_Bytes_Empty() { return PythonToNativeInternalNode.executeNewRefUncached(PFactory.createEmptyBytes(PythonLanguage.get(null))); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {Py_ssize_t}, call = Ignored) + @CApiBuiltin(ret = PyObjectRawPointer, args = {Py_ssize_t}, call = Ignored, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_ByteArray_EmptyWithCapacity(long size) { try { Object result = PFactory.createByteArray(PythonLanguage.get(null), new byte[PInt.intValueExact(size)]); @@ -233,7 +238,7 @@ static long GraalPyPrivate_ByteArray_EmptyWithCapacity(long size) { } } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer}, call = CApiCallPath.Ignored) + @CApiBuiltin(ret = Int, args = {PyObjectRawPointer}, call = CApiCallPath.Ignored, retConversion = int.class, argConversions = {long.class}) static int GraalPyPrivate_Bytes_CheckEmbeddedNull(long bytesPtr) { Object bytes = NativeToPythonInternalNode.executeUncached(bytesPtr, false); SequenceStorage sequenceStorage = GetBytesStorage.executeUncached(bytes); @@ -250,7 +255,7 @@ static int GraalPyPrivate_Bytes_CheckEmbeddedNull(long bytesPtr) { return 0; } - @CApiBuiltin(ret = CHAR_PTR, args = {PyObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = CHAR_PTR, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyBytes_AsString(long bytesPtr) { Object obj = NativeToPythonInternalNode.executeUncached(bytesPtr, false); if (obj instanceof PBytes bytes) { diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCEvalBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCEvalBuiltins.java index ba9df964e7..48e72abd90 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCEvalBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCEvalBuiltins.java @@ -94,7 +94,7 @@ public final class PythonCextCEvalBuiltins { private static final TruffleLogger LOGGER = CApiContext.getLogger(PythonCextCEvalBuiltins.class); - @CApiBuiltin(ret = PyThreadState, args = {}, acquireGil = false, call = Direct) + @CApiBuiltin(ret = PyThreadState, args = {}, acquireGil = false, call = Direct, retConversion = long.class, argConversions = {}) static long PyEval_SaveThread() { PythonContext context = PythonContext.get(null); long threadState = context.getThreadState(context.getLanguage()).getNativePointer(); @@ -104,7 +104,7 @@ static long PyEval_SaveThread() { return threadState; } - @CApiBuiltin(ret = Void, args = {PyThreadState}, acquireGil = false, call = Direct) + @CApiBuiltin(ret = Void, args = {PyThreadState}, acquireGil = false, call = Direct, retConversion = void.class, argConversions = {long.class}) static void PyEval_RestoreThread(@SuppressWarnings("unused") long ptr) { PythonContext context = PythonContext.get(null); /* @@ -116,27 +116,28 @@ static void PyEval_RestoreThread(@SuppressWarnings("unused") long ptr) { GilNode.getUncached().acquire(context, null); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {}) static long PyEval_GetBuiltins() { PythonModule cext = PythonContext.get(null).getBuiltins(); return ToNativeBorrowedNode.executeUncached(GetDictIfExistsNode.getUncached().execute(cext)); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {}, call = Direct) + @CApiBuiltin(ret = PyObjectRawPointer, args = {}, call = Direct, retConversion = long.class, argConversions = {}) static long PyEval_GetFrameBuiltins() { PythonModule builtins = PythonContext.get(null).getBuiltins(); Object dict = GetDictIfExistsNode.getUncached().execute(builtins); return PythonToNativeInternalNode.executeNewRefUncached(dict); } - @CApiBuiltin(ret = PyFrameObjectBorrowed, args = {}, call = Direct) + @CApiBuiltin(ret = PyFrameObjectBorrowed, args = {}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {}) static long PyEval_GetFrame() { PFrame pFrame = ReadFrameNode.getUncached().getCurrentPythonFrame(null); return pFrame != null ? ToNativeBorrowedNode.executeUncached(pFrame) : NULLPTR; } @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer, PyObjectRawPointer, PyObjectConstPtr, Int, PyObjectConstPtr, Int, PyObjectConstPtr, Int, - PyObjectRawPointer, PyObjectRawPointer}, call = Ignored) + PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, retConversion = long.class, argConversions = {long.class, long.class, long.class, long.class, int.class, long.class, + int.class, long.class, int.class, long.class, long.class}) static long GraalPyPrivate_Eval_EvalCodeEx(long codePtr, long globalsPtr, long localsPtr, long argumentArrayPtr, int argumentCount, long kwsPtr, int kwsCount, long defaultValueArrayPtr, int defaultValueCount, long kwdefaultsWrapperPtr, long closureObjPtr) { @@ -180,13 +181,13 @@ static long GraalPyPrivate_Eval_EvalCodeEx(long codePtr, long globalsPtr, long l return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {}) static long PyEval_GetGlobals() { PythonObject globals = PyEvalGetGlobals.executeUncached(null); return globals != null ? ToNativeBorrowedNode.executeUncached(globals) : NULLPTR; } - @CApiBuiltin(ret = PyObjectBorrowed, args = {}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {}) static long PyEval_GetLocals() { PFrame frame = ReadFrameNode.getUncached().getCurrentPythonFrame(null, CallerFlags.NEEDS_LOCALS); if (frame == null) { @@ -207,13 +208,13 @@ static long PyEval_GetLocals() { return ToNativeBorrowedNode.executeUncached(localsCache); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {}, call = Direct) + @CApiBuiltin(ret = PyObjectRawPointer, args = {}, call = Direct, retConversion = long.class, argConversions = {}) static long PyEval_GetFrameGlobals() { PythonObject globals = PyEvalGetGlobals.executeUncached(null); return globals != null ? PythonToNativeInternalNode.executeNewRefUncached(globals) : NULLPTR; } - @CApiBuiltin(ret = PyObjectRawPointer, args = {}, call = Direct) + @CApiBuiltin(ret = PyObjectRawPointer, args = {}, call = Direct, retConversion = long.class, argConversions = {}) static long PyEval_GetFrameLocals() { PFrame frame = ReadFrameNode.getUncached().getCurrentPythonFrame(null, CallerFlags.NEEDS_LOCALS); if (frame == null) { diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCapsuleBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCapsuleBuiltins.java index 7219847e73..03a8fbce2b 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCapsuleBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCapsuleBuiltins.java @@ -82,7 +82,7 @@ public final class PythonCextCapsuleBuiltins { - @CApiBuiltin(ret = PyObjectRawPointer, args = {Pointer, ConstCharPtr, PY_CAPSULE_DESTRUCTOR}, call = Direct) + @CApiBuiltin(ret = PyObjectRawPointer, args = {Pointer, ConstCharPtr, PY_CAPSULE_DESTRUCTOR}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class, long.class}) static long PyCapsule_New(long pointer, long namePtr, long destructor) { PyCapsule capsule = PyCapsuleNewNode.executeUncached(pointer, namePtr, destructor); return PythonToNativeInternalNode.executeNewRefUncached(capsule); @@ -115,7 +115,7 @@ static PyCapsule doGeneric(Node inliningTarget, long pointer, long namePtr, long } } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, ConstCharPtr}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, ConstCharPtr}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class}) static int PyCapsule_IsValid(long oPtr, long namePtr) { Object obj = NativeToPythonInternalNode.executeUncached(oPtr, false); if (!(obj instanceof PyCapsule capsule)) { @@ -130,7 +130,7 @@ static int PyCapsule_IsValid(long oPtr, long namePtr) { return 1; } - @CApiBuiltin(ret = Pointer, args = {PyObjectRawPointer, ConstCharPtr}, call = Direct) + @CApiBuiltin(ret = Pointer, args = {PyObjectRawPointer, ConstCharPtr}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) static long PyCapsule_GetPointer(long oPtr, long namePtr) { Object capsule = NativeToPythonInternalNode.executeUncached(oPtr, false); return PyCapsuleGetPointerNode.executeUncached(capsule, namePtr); @@ -170,25 +170,25 @@ static long doError(Node inliningTarget, @SuppressWarnings("unused") Object o, @ } } - @CApiBuiltin(ret = ConstCharPtr, args = {PyObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = ConstCharPtr, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyCapsule_GetName(long oPtr) { PyCapsule capsule = expectCapsule(oPtr, "PyCapsule_GetName"); return capsule.getNamePtr(); } - @CApiBuiltin(ret = PY_CAPSULE_DESTRUCTOR, args = {PyObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = PY_CAPSULE_DESTRUCTOR, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyCapsule_GetDestructor(long oPtr) { PyCapsule capsule = expectCapsule(oPtr, "PyCapsule_GetDestructor"); return capsule.getDestructor(); } - @CApiBuiltin(ret = Pointer, args = {PyObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = Pointer, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyCapsule_GetContext(long oPtr) { PyCapsule capsule = expectCapsule(oPtr, "PyCapsule_GetContext"); return capsule.getContext(); } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, Pointer}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, Pointer}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class}) static int PyCapsule_SetPointer(long oPtr, long pointer) { if (pointer == NULLPTR) { throw PRaiseNode.raiseStatic(null, ValueError, CALLED_WITH_NULL_POINTER, "PyCapsule_SetPointer"); @@ -198,28 +198,28 @@ static int PyCapsule_SetPointer(long oPtr, long pointer) { return 0; } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, ConstCharPtr}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, ConstCharPtr}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class}) static int PyCapsule_SetName(long oPtr, long namePtr) { PyCapsule capsule = expectCapsule(oPtr, "PyCapsule_SetName"); capsule.setNamePtr(namePtr); return 0; } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, PY_CAPSULE_DESTRUCTOR}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, PY_CAPSULE_DESTRUCTOR}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class}) static int PyCapsule_SetDestructor(long oPtr, long destructor) { PyCapsule capsule = expectCapsule(oPtr, "PyCapsule_SetDestructor"); capsule.registerDestructor(destructor); return 0; } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, Pointer}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, Pointer}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class}) static int PyCapsule_SetContext(long oPtr, long context) { PyCapsule capsule = expectCapsule(oPtr, "PyCapsule_SetContext"); capsule.setContext(context); return 0; } - @CApiBuiltin(ret = Pointer, args = {ConstCharPtr, Int}, call = Direct) + @CApiBuiltin(ret = Pointer, args = {ConstCharPtr, Int}, call = Direct, retConversion = long.class, argConversions = {long.class, int.class}) static long PyCapsule_Import(long namePtr, @SuppressWarnings("unused") int noBlock) { TruffleString name = FromCharPointerNode.executeUncached(namePtr, true); TruffleString trace = name; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextClassBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextClassBuiltins.java index 37ba4ef181..7a251e6164 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextClassBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextClassBuiltins.java @@ -53,7 +53,7 @@ public final class PythonCextClassBuiltins { - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyInstanceMethod_New(long funcPtr) { Object func = NativeToPythonInternalNode.executeUncached(funcPtr, false); checkNonNullArgUncached(func); @@ -62,7 +62,7 @@ static long PyInstanceMethod_New(long funcPtr) { return PythonToNativeInternalNode.executeNewRefUncached(res); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) static long PyMethod_New(long funcPtr, long selfPtr) { Object func = NativeToPythonInternalNode.executeUncached(funcPtr, false); Object self = NativeToPythonInternalNode.executeUncached(selfPtr, false); diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCodeBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCodeBuiltins.java index b42bd711a7..599556c784 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCodeBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCodeBuiltins.java @@ -62,20 +62,22 @@ public final class PythonCextCodeBuiltins { - @CApiBuiltin(ret = Py_ssize_t, args = {PyCodeObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = Py_ssize_t, args = {PyCodeObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long GraalPyCode_GetNumFree(long codePtr) { PCode code = (PCode) NativeToPythonInternalNode.executeUncached(codePtr, false); return code.getFreeVars().length; } - @CApiBuiltin(ret = Int, args = {PyCodeObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyCodeObjectRawPointer}, call = Direct, retConversion = int.class, argConversions = {long.class}) static int GraalPyCode_GetFirstFree(long codePtr) { PCode code = (PCode) NativeToPythonInternalNode.executeUncached(codePtr, false); return code.getVarnames().length + code.getCellVars().length; } @CApiBuiltin(ret = PyCodeObjectRawPointer, args = {Int, Int, Int, Int, Int, Int, PyObjectRawPointer, PyObjectRawPointer, PyObjectRawPointer, PyObjectRawPointer, PyObjectRawPointer, - PyObjectRawPointer, PyObjectRawPointer, PyObjectRawPointer, PyObjectRawPointer, Int, PyObjectRawPointer, PyObjectRawPointer}, call = Direct) + PyObjectRawPointer, PyObjectRawPointer, PyObjectRawPointer, PyObjectRawPointer, Int, PyObjectRawPointer, + PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {int.class, int.class, int.class, int.class, int.class, int.class, long.class, long.class, + long.class, long.class, long.class, long.class, long.class, long.class, long.class, int.class, long.class, long.class}) static long PyUnstable_Code_NewWithPosOnlyArgs(int argcount, int posonlyargcount, int kwonlyargcount, int nlocals, int stacksize, int flags, long codePtr, long constsPtr, long namesPtr, long varnamesPtr, long freevarsPtr, long cellvarsPtr, long filenamePtr, long namePtr, long qualnamePtr, @@ -106,14 +108,14 @@ static long PyUnstable_Code_NewWithPosOnlyArgs(int argcount, int posonlyargcount return PythonToNativeInternalNode.executeNewRefUncached(CallNode.executeUncached(PythonBuiltinClassType.PCode, args)); } - @CApiBuiltin(ret = PyCodeObjectRawPointer, args = {ConstCharPtr, ConstCharPtr, Int}, call = Direct) + @CApiBuiltin(ret = PyCodeObjectRawPointer, args = {ConstCharPtr, ConstCharPtr, Int}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class, int.class}) static long PyCode_NewEmpty(long filenamePtr, long funcnamePtr, int lineno) { TruffleString filename = (TruffleString) CharPtrToPythonNode.executeUncached(filenamePtr); TruffleString funcname = (TruffleString) CharPtrToPythonNode.executeUncached(funcnamePtr); return PythonToNativeInternalNode.executeNewRefUncached(createCodeNewEmpty(filename, funcname, lineno)); } - @CApiBuiltin(ret = Int, args = {PyCodeObjectRawPointer, Int}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyCodeObjectRawPointer, Int}, call = Direct, retConversion = int.class, argConversions = {long.class, int.class}) static int PyCode_Addr2Line(long codePtr, int lasti) { PCode code = (PCode) NativeToPythonInternalNode.executeUncached(codePtr, false); if (lasti < 0) { @@ -122,13 +124,13 @@ static int PyCode_Addr2Line(long codePtr, int lasti) { return code.lastiToLine(lasti); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyCodeObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyCodeObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long GraalPyCode_GetName(long codePtr) { PCode code = (PCode) NativeToPythonInternalNode.executeUncached(codePtr, false); return PythonToNativeInternalNode.executeNewRefUncached(code.getName()); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyCodeObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyCodeObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long GraalPyCode_GetFileName(long codePtr) { PCode code = (PCode) NativeToPythonInternalNode.executeUncached(codePtr, false); return PythonToNativeInternalNode.executeNewRefUncached(code.getFilename()); diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCodecBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCodecBuiltins.java index 0f1ad26316..3a2d8dfdfc 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCodecBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCodecBuiltins.java @@ -54,14 +54,14 @@ public final class PythonCextCodecBuiltins { - @CApiBuiltin(ret = PyObjectRawPointer, args = {ConstCharPtr}, call = Direct) + @CApiBuiltin(ret = PyObjectRawPointer, args = {ConstCharPtr}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyCodec_Encoder(long encodingPtr) { TruffleString encoding = (TruffleString) CharPtrToPythonNode.executeUncached(encodingPtr); PTuple codecInfo = CodecsModuleBuiltins.PyCodecLookupNode.executeUncached(encoding); return PythonToNativeInternalNode.executeNewRefUncached(SequenceStorageNodes.GetItemScalarNode.executeUncached(codecInfo.getSequenceStorage(), 0)); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {ConstCharPtr}, call = Direct) + @CApiBuiltin(ret = PyObjectRawPointer, args = {ConstCharPtr}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyCodec_Decoder(long encodingPtr) { TruffleString encoding = (TruffleString) CharPtrToPythonNode.executeUncached(encodingPtr); PTuple codecInfo = CodecsModuleBuiltins.PyCodecLookupNode.executeUncached(encoding); diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextComplexBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextComplexBuiltins.java index 95f0dc0fa0..875f1685c1 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextComplexBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextComplexBuiltins.java @@ -63,7 +63,7 @@ public final class PythonCextComplexBuiltins { - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, Pointer}, call = Ignored) + @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, Pointer}, call = Ignored, retConversion = int.class, argConversions = {long.class, long.class}) static int GraalPyPrivate_Complex_AsCComplex(long objPtr, long out) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); double real, imag; @@ -87,7 +87,7 @@ static int GraalPyPrivate_Complex_AsCComplex(long objPtr, long out) { return 0; } - @CApiBuiltin(ret = ArgDescriptor.Double, args = {PyObjectRawPointer}, call = Ignored) + @CApiBuiltin(ret = ArgDescriptor.Double, args = {PyObjectRawPointer}, call = Ignored, retConversion = double.class, argConversions = {long.class}) static double GraalPyPrivate_Complex_RealAsDouble(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); if (PyComplexCheckNode.executeUncached(obj)) { @@ -101,7 +101,7 @@ static double GraalPyPrivate_Complex_RealAsDouble(long objPtr) { } } - @CApiBuiltin(ret = ArgDescriptor.Double, args = {PyObjectRawPointer}, call = Ignored) + @CApiBuiltin(ret = ArgDescriptor.Double, args = {PyObjectRawPointer}, call = Ignored, retConversion = double.class, argConversions = {long.class}) static double GraalPyPrivate_Complex_ImagAsDouble(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); if (PyComplexCheckNode.executeUncached(obj)) { @@ -115,7 +115,7 @@ static double GraalPyPrivate_Complex_ImagAsDouble(long objPtr) { return 0.0; } - @CApiBuiltin(ret = PyObjectRawPointer, args = {ArgDescriptor.Double, ArgDescriptor.Double}, call = Direct) + @CApiBuiltin(ret = PyObjectRawPointer, args = {ArgDescriptor.Double, ArgDescriptor.Double}, call = Direct, retConversion = long.class, argConversions = {double.class, double.class}) static long PyComplex_FromDoubles(double r, double i) { return PythonToNativeInternalNode.executeNewRefUncached(PFactory.createComplex(PythonLanguage.get(null), r, i)); } diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextContextBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextContextBuiltins.java index a014712426..fafe17c4ec 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextContextBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextContextBuiltins.java @@ -72,13 +72,13 @@ public final class PythonCextContextBuiltins { - @CApiBuiltin(ret = VoidNoReturn, args = {}, call = Ignored) + @CApiBuiltin(ret = VoidNoReturn, args = {}, call = Ignored, retConversion = void.class, argConversions = {}) @TruffleBoundary static void GraalPyPrivate_PrintStacktrace() { printPythonLikeStackTrace(); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {ConstCharPtr, PyObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = PyObjectRawPointer, args = {ConstCharPtr, PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) static long PyContextVar_New(long namePtr, long defPtr) { if (namePtr == NULLPTR) { return NULLPTR; @@ -88,7 +88,7 @@ static long PyContextVar_New(long namePtr, long defPtr) { return PythonToNativeInternalNode.executeNewRefUncached(CallNode.executeUncached(PythonBuiltinClassType.ContextVar, name, def)); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer, Pointer}, call = Ignored) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer, Pointer}, call = Ignored, retConversion = long.class, argConversions = {long.class, long.class, long.class}) static long GraalPyPrivate_ContextVar_Get(long varPtr, long defPtr, long marker) { Object var = NativeToPythonInternalNode.executeUncached(varPtr, false); if (!(var instanceof PContextVar pvar)) { @@ -107,7 +107,7 @@ static long GraalPyPrivate_ContextVar_Get(long varPtr, long defPtr, long marker) return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) static long PyContextVar_Set(long varPtr, long valPtr) { Object var = NativeToPythonInternalNode.executeUncached(varPtr, false); Object val = NativeToPythonInternalNode.executeUncached(valPtr, false); @@ -122,7 +122,7 @@ static long PyContextVar_Set(long varPtr, long valPtr) { return PythonToNativeInternalNode.executeNewRefUncached(PFactory.createContextVarsToken(language, pvar, threadState.getContextVarsContext(null), oldValue)); } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class}) static int PyContextVar_Reset(long varPtr, long tokenPtr) { Object var = NativeToPythonInternalNode.executeUncached(varPtr, false); if (!(var instanceof PContextVar pvar)) { @@ -138,23 +138,23 @@ static int PyContextVar_Reset(long varPtr, long tokenPtr) { return 0; } - @CApiBuiltin(ret = PyObjectRawPointer, call = Direct) + @CApiBuiltin(ret = PyObjectRawPointer, call = Direct, retConversion = long.class, argConversions = {}) static long PyContext_CopyCurrent() { return PythonToNativeInternalNode.executeNewRefUncached(PyContextCopyCurrent.executeUncached()); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyContext_Copy(long contextPtr) { PContextVarsContext context = (PContextVarsContext) NativeToPythonInternalNode.executeUncached(contextPtr, false); return PythonToNativeInternalNode.executeNewRefUncached(PFactory.copyContextVarsContext(PythonLanguage.get(null), context)); } - @CApiBuiltin(ret = PyObjectRawPointer, call = Direct) + @CApiBuiltin(ret = PyObjectRawPointer, call = Direct, retConversion = long.class, argConversions = {}) static long PyContext_New() { return PythonToNativeInternalNode.executeNewRefUncached(PFactory.createContextVarsContext(PythonLanguage.get(null))); } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObjectRawPointer}, call = Direct, retConversion = int.class, argConversions = {long.class}) static int PyContext_Enter(long contextPtr) { PContextVarsContext context = (PContextVarsContext) NativeToPythonInternalNode.executeUncached(contextPtr, false); PythonContext pythonContext = PythonContext.get(null); @@ -163,7 +163,7 @@ static int PyContext_Enter(long contextPtr) { return 0; } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObjectRawPointer}, call = Direct, retConversion = int.class, argConversions = {long.class}) static int PyContext_Exit(long contextPtr) { PContextVarsContext context = (PContextVarsContext) NativeToPythonInternalNode.executeUncached(contextPtr, false); PythonContext pythonContext = PythonContext.get(null); diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDateTimeBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDateTimeBuiltins.java index a09fe92ae2..8aa57b81c4 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDateTimeBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDateTimeBuiltins.java @@ -60,7 +60,11 @@ import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiQuaternaryBuiltinNode; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiTernaryBuiltinNode; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiUnaryBuiltinNode; +import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.ToNativeBorrowedNode; import com.oracle.graal.python.builtins.objects.cext.capi.PyDateTimeCAPIWrapper; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonClassNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.function.PKeyword; import com.oracle.graal.python.lib.PyNumberAsSizeNode; import com.oracle.graal.python.lib.PyObjectGetAttr; @@ -78,7 +82,8 @@ */ public final class PythonCextDateTimeBuiltins { - @CApiBuiltin(ret = PyObjectTransfer, args = {Int, Int, Int, PyTypeObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {Int, Int, Int, PyTypeObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {int.class, int.class, int.class, + NativeToPythonClassNode.class}) abstract static class GraalPyPrivate_DateTimeCAPI_Date_FromDate extends CApiQuaternaryBuiltinNode { @Specialization static Object values(int year, int month, int day, Object type, @@ -87,7 +92,8 @@ static Object values(int year, int month, int day, Object type, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {Int, Int, Int, Int, Int, Int, Int, PyObject, PyTypeObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {Int, Int, Int, Int, Int, Int, Int, PyObject, PyTypeObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { + int.class, int.class, int.class, int.class, int.class, int.class, int.class, NativeToPythonNode.class, NativeToPythonClassNode.class}) abstract static class GraalPyPrivate_DateTimeCAPI_DateTime_FromDateAndTime extends CApi9BuiltinNode { @Specialization static Object values(int year, int month, int day, int hour, int minute, int second, int usecond, Object tzinfo, Object type, @@ -96,7 +102,8 @@ static Object values(int year, int month, int day, int hour, int minute, int sec } } - @CApiBuiltin(ret = PyObjectTransfer, args = {Int, Int, Int, Int, PyObject, PyTypeObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {Int, Int, Int, Int, PyObject, PyTypeObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {int.class, int.class, + int.class, int.class, NativeToPythonNode.class, NativeToPythonClassNode.class}) abstract static class GraalPyPrivate_DateTimeCAPI_Time_FromTime extends CApi6BuiltinNode { @Specialization static Object values(int hour, int minute, int second, int usecond, Object tzinfo, Object type, @@ -105,7 +112,8 @@ static Object values(int hour, int minute, int second, int usecond, Object tzinf } } - @CApiBuiltin(ret = PyObjectTransfer, args = {Int, Int, Int, Int, PyTypeObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {Int, Int, Int, Int, PyTypeObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {int.class, int.class, int.class, + int.class, NativeToPythonClassNode.class}) abstract static class GraalPyPrivate_DateTimeCAPI_Delta_FromDelta extends CApi5BuiltinNode { @Specialization static Object values(int days, int seconds, int useconds, @SuppressWarnings("unused") int normalize, Object type, @@ -115,7 +123,8 @@ static Object values(int days, int seconds, int useconds, @SuppressWarnings("unu } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + NativeToPythonNode.class}) abstract static class GraalPyPrivate_DateTimeCAPI_TimeZone_FromTimeZone extends CApiBinaryBuiltinNode { @Specialization Object values(Object offset, Object name, @@ -124,7 +133,8 @@ Object values(Object offset, Object name, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject, PyObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject, PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class GraalPyPrivate_DateTimeCAPI_DateTime_FromTimestamp extends CApiTernaryBuiltinNode { @Specialization static Object values(Object type, Object args, Object kwargs, @@ -140,7 +150,8 @@ static Object values(Object type, Object args, Object kwargs, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + NativeToPythonNode.class}) abstract static class GraalPyPrivate_DateTimeCAPI_Date_FromTimestamp extends CApiBinaryBuiltinNode { @Specialization static Object values(Object type, Object args, @@ -154,7 +165,8 @@ static Object values(Object type, Object args, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {Int, Int, Int, Int, Int, Int, Int, PyObject, Int, PyTypeObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {Int, Int, Int, Int, Int, Int, Int, PyObject, Int, PyTypeObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { + int.class, int.class, int.class, int.class, int.class, int.class, int.class, NativeToPythonNode.class, int.class, NativeToPythonClassNode.class}) abstract static class GraalPyPrivate_DateTimeCAPI_DateTime_FromDateAndTimeAndFold extends CApi10BuiltinNode { @Specialization static Object values(int year, int month, int day, int hour, int minute, int second, int usecond, Object tzinfo, int fold, Object type, @@ -163,7 +175,8 @@ static Object values(int year, int month, int day, int hour, int minute, int sec } } - @CApiBuiltin(ret = PyObjectTransfer, args = {Int, Int, Int, Int, PyObject, Int, PyTypeObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {Int, Int, Int, Int, PyObject, Int, PyTypeObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {int.class, + int.class, int.class, int.class, NativeToPythonNode.class, int.class, NativeToPythonClassNode.class}) abstract static class GraalPyPrivate_DateTimeCAPI_Time_FromTimeAndFold extends CApi7BuiltinNode { @Specialization static Object values(int hour, int minute, int second, int usecond, Object tzinfo, int fold, Object type, @@ -172,7 +185,7 @@ static Object values(int hour, int minute, int second, int usecond, Object tzinf } } - @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyDateTime_GET_YEAR extends CApiUnaryBuiltinNode { @Specialization static Object get(Object obj, @@ -183,7 +196,7 @@ static Object get(Object obj, } } - @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyDateTime_GET_MONTH extends CApiUnaryBuiltinNode { @Specialization static Object get(Object obj, @@ -194,7 +207,7 @@ static Object get(Object obj, } } - @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyDateTime_GET_DAY extends CApiUnaryBuiltinNode { @Specialization static Object get(Object obj, @@ -205,7 +218,7 @@ static Object get(Object obj, } } - @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyDateTime_DATE_GET_HOUR extends CApiUnaryBuiltinNode { @Specialization static Object get(Object obj, @@ -216,7 +229,7 @@ static Object get(Object obj, } } - @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyDateTime_DATE_GET_MINUTE extends CApiUnaryBuiltinNode { @Specialization static Object get(Object obj, @@ -227,7 +240,7 @@ static Object get(Object obj, } } - @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyDateTime_DATE_GET_SECOND extends CApiUnaryBuiltinNode { @Specialization static Object get(Object obj, @@ -238,7 +251,7 @@ static Object get(Object obj, } } - @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyDateTime_DATE_GET_MICROSECOND extends CApiUnaryBuiltinNode { @Specialization static Object get(Object obj, @@ -249,7 +262,7 @@ static Object get(Object obj, } } - @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyDateTime_DATE_GET_FOLD extends CApiUnaryBuiltinNode { @Specialization static Object get(Object obj, @@ -260,7 +273,7 @@ static Object get(Object obj, } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyDateTime_DATE_GET_TZINFO extends CApiUnaryBuiltinNode { @Specialization static Object get(Object obj, @@ -270,7 +283,7 @@ static Object get(Object obj, } } - @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyDateTime_TIME_GET_HOUR extends CApiUnaryBuiltinNode { @Specialization static Object get(Object obj, @@ -281,7 +294,7 @@ static Object get(Object obj, } } - @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyDateTime_TIME_GET_MINUTE extends CApiUnaryBuiltinNode { @Specialization static Object get(Object obj, @@ -292,7 +305,7 @@ static Object get(Object obj, } } - @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyDateTime_TIME_GET_SECOND extends CApiUnaryBuiltinNode { @Specialization static Object get(Object obj, @@ -303,7 +316,7 @@ static Object get(Object obj, } } - @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyDateTime_TIME_GET_MICROSECOND extends CApiUnaryBuiltinNode { @Specialization static Object get(Object obj, @@ -314,7 +327,7 @@ static Object get(Object obj, } } - @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyDateTime_TIME_GET_FOLD extends CApiUnaryBuiltinNode { @Specialization static Object get(Object obj, @@ -325,7 +338,7 @@ static Object get(Object obj, } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyDateTime_TIME_GET_TZINFO extends CApiUnaryBuiltinNode { @Specialization static Object get(Object obj, @@ -335,7 +348,7 @@ static Object get(Object obj, } } - @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyDateTime_DELTA_GET_DAYS extends CApiUnaryBuiltinNode { @Specialization static Object get(Object obj, @@ -346,7 +359,7 @@ static Object get(Object obj, } } - @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyDateTime_DELTA_GET_SECONDS extends CApiUnaryBuiltinNode { @Specialization static Object get(Object obj, @@ -357,7 +370,7 @@ static Object get(Object obj, } } - @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyDateTime_DELTA_GET_MICROSECONDS extends CApiUnaryBuiltinNode { @Specialization static Object get(Object obj, diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDescrBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDescrBuiltins.java index f16fb9fae2..1d14c089a8 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDescrBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDescrBuiltins.java @@ -61,7 +61,10 @@ import com.oracle.graal.python.builtins.objects.cext.capi.MethodDescriptorWrapper; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.CharPtrToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonClassInternalNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonClassNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeInternalNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.function.PBuiltinFunction; import com.oracle.graal.python.builtins.objects.mappingproxy.MappingproxyBuiltins; import com.oracle.graal.python.builtins.objects.method.PDecoratedMethod; @@ -75,7 +78,7 @@ public final class PythonCextDescrBuiltins { - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyDictProxy_New extends CApiUnaryBuiltinNode { @Specialization static Object values(Object obj, @@ -84,7 +87,9 @@ static Object values(Object obj, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, PyTypeObject, Pointer, Pointer, ConstCharPtrAsTruffleString, Pointer}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, PyTypeObject, Pointer, Pointer, ConstCharPtrAsTruffleString, + Pointer}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonNode.class, NativeToPythonClassNode.class, long.class, long.class, + CharPtrToPythonNode.class, long.class}) abstract static class GraalPyPrivate_Descr_NewGetSet extends CApi6BuiltinNode { @Specialization @@ -94,7 +99,9 @@ static Object doNativeCallable(TruffleString name, Object cls, long getter, long } /** Implementation of {@code PyDescr_NewClassMethod}. */ - @CApiBuiltin(ret = PyObjectTransfer, args = {Pointer, ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString, Int, Pointer, PyTypeObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {Pointer, ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString, Int, Pointer, + PyTypeObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, CharPtrToPythonNode.class, CharPtrToPythonNode.class, int.class, + long.class, NativeToPythonClassNode.class}) public static long GraalPyPrivate_Descr_NewClassMethod(long methodDefPtr, long nameRaw, long docRaw, int flags, long methPtr, long typeRaw) { CompilerAsserts.neverPartOfCompilation(); PythonLanguage language = PythonLanguage.get(null); diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDictBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDictBuiltins.java index bcaf6b1404..43d852fb87 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDictBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDictBuiltins.java @@ -79,7 +79,10 @@ import com.oracle.graal.python.builtins.objects.PNone; import com.oracle.graal.python.builtins.objects.cext.capi.CApiContext; import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.EnsurePythonObjectNode; +import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.ToNativeBorrowedNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTiming; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.CharPtrToPythonStrictNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.GcNativePtrToPythonNode; @@ -156,13 +159,13 @@ public final class PythonCextDictBuiltins { private static final CApiTiming TIMING_PYDICT_NEW = CApiTiming.create(false, "PyDict_New"); - @CApiBuiltin(ret = Py_ssize_t, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Py_ssize_t, args = {PyObject}, call = Direct, retConversion = long.class, argConversions = {NativeToPythonNode.class}) static long GraalPyDict_GET_SIZE(long dictPtr) { PDict dict = (PDict) NativeToPythonInternalNode.executeUncached(dictPtr, false); return HashingStorageLen.executeUncached(dict.getDictStorage()); } - @CApiBuiltin(ret = PyObjectTransfer, args = {}, call = Direct, acquireGil = false) + @CApiBuiltin(ret = PyObjectTransfer, args = {}, call = Direct, acquireGil = false, retConversion = PythonToNativeNewRefNode.class, argConversions = {}) static long PyDict_New() { CApiTiming.enter(); try { @@ -174,7 +177,7 @@ static long PyDict_New() { } } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, PyObjectRawPointer, PyObjectPtr}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, PyObjectRawPointer, PyObjectPtr}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class, long.class}) static int PyDict_Pop(long dictPtr, long keyPtr, long resultPtr) { long result = NULLPTR; try { @@ -200,7 +203,8 @@ static int PyDict_Pop(long dictPtr, long keyPtr, long resultPtr) { } } - @CApiBuiltin(ret = Int, args = {PyObject, PY_SSIZE_T_PTR, PyObjectPtr, PyObjectPtr, PY_HASH_T_PTR}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, PY_SSIZE_T_PTR, PyObjectPtr, PyObjectPtr, PY_HASH_T_PTR}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, + long.class, long.class, long.class, long.class}) abstract static class _PyDict_Next extends CApi5BuiltinNode { @Specialization @@ -319,7 +323,8 @@ static int run(Object dict, Object posPtr, Object keyPtr, Object valuePtr, Objec } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class _PyDict_Pop extends CApiTernaryBuiltinNode { @Specialization static Object pop(PDict dict, Object key, Object defaultValue, @@ -333,7 +338,7 @@ public Object fallback(Object dict, @SuppressWarnings("unused") Object key, @Sup } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyDict_Copy extends CApiUnaryBuiltinNode { @Specialization static Object copy(PDict dict, @@ -387,7 +392,7 @@ static Object doOther(Node inliningTarget, @SuppressWarnings("unused") Object ob } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject, PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) public abstract static class PyDict_GetItem extends CApiBinaryBuiltinNode { @Specialization @@ -431,7 +436,7 @@ static Object doOther(Node inliningTarget, @SuppressWarnings("unused") Object ob } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject, PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class PyDict_GetItemWithError extends CApiBinaryBuiltinNode { @Specialization static Object doGeneric(Object dict, Object key, @@ -441,7 +446,7 @@ static Object doGeneric(Object dict, Object key, } } - @CApiBuiltin(ret = Int, args = {PyObject, PyObject, PyObjectPtr}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject, PyObjectPtr}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class, long.class}) abstract static class PyDict_GetItemRef extends CApiTernaryBuiltinNode { @Specialization static int getItem(PDict dict, Object key, long resultPtr, @@ -479,7 +484,7 @@ int fallback(Object dict, @SuppressWarnings("unused") Object key, Object resultP } } - @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtr, PyObjectPtr}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtr, PyObjectPtr}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, long.class, long.class}) abstract static class PyDict_GetItemStringRef extends CApiTernaryBuiltinNode { @Specialization static int getItemString(PDict dict, long keyPtr, long resultPtr, @@ -519,7 +524,7 @@ int fallback(Object dict, @SuppressWarnings("unused") Object key, Object resultP } } - @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtr, PyObjectPtr}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtr, PyObjectPtr}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, long.class, long.class}) abstract static class PyDict_PopString extends CApiTernaryBuiltinNode { @Specialization static int pop(PDict dict, long keyPtr, long resultPtr, @@ -560,7 +565,8 @@ int fallback(Object dict, @SuppressWarnings("unused") Object key, Object resultP } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject, ConstCharPtrAsTruffleStringStrict}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject, ConstCharPtrAsTruffleStringStrict}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class, + CharPtrToPythonStrictNode.class}) abstract static class _PyDict_GetItemStringWithError extends CApiBinaryBuiltinNode { @Specialization static Object doGeneric(Object dict, Object key, @@ -570,7 +576,8 @@ static Object doGeneric(Object dict, Object key, } } - @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtrAsTruffleStringStrict, PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtrAsTruffleStringStrict, PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, + CharPtrToPythonStrictNode.class, NativeToPythonNode.class}) @ImportStatic(PGuards.class) abstract static class PyDict_SetItemString extends CApiTernaryBuiltinNode { @Specialization @@ -590,7 +597,8 @@ static int doOther(Object dict, Object key, Object value, } } - @CApiBuiltin(ret = Int, args = {PyObject, PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject, PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class, + NativeToPythonNode.class}) @ImportStatic(PGuards.class) abstract static class PyDict_SetItem extends CApiTernaryBuiltinNode { @Specialization @@ -610,7 +618,8 @@ static int doOther(Object dict, Object key, Object value, } } - @CApiBuiltin(ret = Int, args = {PyObject, PyObject, PyObject, Py_hash_t}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject, PyObject, Py_hash_t}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class, + NativeToPythonNode.class, long.class}) abstract static class _PyDict_SetItem_KnownHash extends CApiQuaternaryBuiltinNode { @Specialization static int setItem(PDict dict, Object key, Object value, Object givenHash, @@ -635,7 +644,8 @@ int fallback(Object dict, Object key, Object value, Object givenHash) { } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject, PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject, PyObject, PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class, + NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class PyDict_SetDefault extends CApiTernaryBuiltinNode { @Specialization static Object setItem(PDict dict, Object key, Object value, @@ -659,7 +669,8 @@ public Object fallback(Object dict, @SuppressWarnings("unused") Object key, @Sup } } - @CApiBuiltin(ret = Int, args = {PyObject, PyObject, PyObject, PyObjectPtr}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject, PyObject, PyObjectPtr}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class, + NativeToPythonNode.class, long.class}) abstract static class PyDict_SetDefaultRef extends CApiQuaternaryBuiltinNode { @Specialization static int setDefault(PDict dict, Object key, Object defaultValue, long resultPtr, @@ -701,7 +712,8 @@ int fallback(Object dict, @SuppressWarnings("unused") Object key, @SuppressWarni } } - @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtrAsTruffleStringStrict}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtrAsTruffleStringStrict}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, + CharPtrToPythonStrictNode.class}) @ImportStatic(PGuards.class) abstract static class PyDict_DelItemString extends CApiBinaryBuiltinNode { @Specialization @@ -721,7 +733,7 @@ static int doOther(Object dict, Object key, } } - @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class PyDict_DelItem extends CApiBinaryBuiltinNode { @Specialization static int delItem(PDict dict, Object key, @@ -737,7 +749,7 @@ public int fallback(Object dict, @SuppressWarnings("unused") Object key) { } } - @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class PyDict_Update extends CApiBinaryBuiltinNode { @Specialization static int update(PDict dict, Object other, @@ -753,8 +765,9 @@ public int fallback(Object dict, @SuppressWarnings("unused") Object other) { } } - @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct) - @CApiBuiltin(name = "PyDict_ContainsString", ret = Int, args = {PyObject, ConstCharPtrAsTruffleStringStrict}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) + @CApiBuiltin(name = "PyDict_ContainsString", ret = Int, args = {PyObject, ConstCharPtrAsTruffleStringStrict}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, + CharPtrToPythonStrictNode.class}) abstract static class PyDict_Contains extends CApiBinaryBuiltinNode { @Specialization static int contains(PDict dict, Object key, @@ -769,7 +782,7 @@ public int fallback(Object dict, @SuppressWarnings("unused") Object key) { } } - @CApiBuiltin(ret = Void, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Void, args = {PyObject}, call = Direct, retConversion = void.class, argConversions = {NativeToPythonNode.class}) abstract static class PyDict_Clear extends CApiUnaryBuiltinNode { @Specialization static Object keys(PDict dict, @@ -783,7 +796,7 @@ public Object fallback(Object dict) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyDict_Keys extends CApiUnaryBuiltinNode { @Specialization static Object keys(PDict dict, @@ -798,7 +811,7 @@ Object fallback(Object dict) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyDict_Values extends CApiUnaryBuiltinNode { @Specialization static Object values(PDict dict, @@ -813,7 +826,7 @@ Object fallback(Object dict) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyDict_Items extends CApiUnaryBuiltinNode { @Specialization static Object items(PDict dict, @@ -828,7 +841,7 @@ Object fallback(Object dict) { } } - @CApiBuiltin(ret = Int, args = {PyObject, PyObject, Int}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject, Int}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class, int.class}) abstract static class PyDict_Merge extends CApiTernaryBuiltinNode { @Specialization(guards = {"override != 0"}) @@ -902,7 +915,7 @@ int fallback(Object dict, @SuppressWarnings("unused") Object b, @SuppressWarning } } - @CApiBuiltin(ret = Int, args = {PyObject}, call = Ignored) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Ignored, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Dict_MaybeUntrack extends CApiUnaryBuiltinNode { @Specialization @@ -963,7 +976,7 @@ static boolean isTracked(Object object) { } } - @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class _PyDict_HasOnlyStringKeys extends CApiUnaryBuiltinNode { @Specialization @@ -991,7 +1004,7 @@ static int check(PDict dict, } } - @CApiBuiltin(ret = Void, args = {Pointer}, call = Ignored) + @CApiBuiltin(ret = Void, args = {Pointer}, call = Ignored, retConversion = void.class, argConversions = {long.class}) abstract static class GraalPyPrivate_Dict_UnlinkNativePart extends CApiUnaryBuiltinNode { @Specialization diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextErrBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextErrBuiltins.java index 4d879a814f..11a28b0b75 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextErrBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextErrBuiltins.java @@ -76,6 +76,9 @@ import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiUnaryBuiltinNode; import com.oracle.graal.python.builtins.modules.cext.PythonCextFileBuiltins.PyFile_WriteObject; import com.oracle.graal.python.builtins.objects.PNone; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.CharPtrToPythonNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes.ReadAndClearNativeException; import com.oracle.graal.python.builtins.objects.common.HashingStorageNodes.HashingStorageGetItem; import com.oracle.graal.python.builtins.objects.dict.PDict; @@ -136,7 +139,7 @@ private static Object noneToNativeNull(Object obj) { return obj instanceof PNone ? NATIVE_NULL : obj; } - @CApiBuiltin(ret = Void, args = {PyObject, PyObject}, call = Ignored) + @CApiBuiltin(ret = Void, args = {PyObject, PyObject}, call = Ignored, retConversion = void.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class GraalPyPrivate_Err_SetTraceback extends CApiBinaryBuiltinNode { @Specialization @@ -156,7 +159,7 @@ static Object clear(Object exception, @SuppressWarnings("unused") PNone tb) { } } - @CApiBuiltin(ret = Void, args = {PyThreadState, PyObject}, call = Direct) + @CApiBuiltin(ret = Void, args = {PyThreadState, PyObject}, call = Direct, retConversion = void.class, argConversions = {long.class, NativeToPythonNode.class}) abstract static class _PyErr_SetHandledException extends CApiBinaryBuiltinNode { @Specialization @@ -184,7 +187,8 @@ static Object doFull(@SuppressWarnings("unused") long threadState, PBaseExceptio * Exceptions are usually printed using the traceback module or the hook function * {@code sys.excepthook}. This is the last resort if the hook function itself failed. */ - @CApiBuiltin(ret = Void, args = {PyObject, PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = Void, args = {PyObject, PyObject, PyObject}, call = Direct, retConversion = void.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class, + NativeToPythonNode.class}) abstract static class PyErr_Display extends CApiTernaryBuiltinNode { @Specialization @@ -197,7 +201,7 @@ Object run(Object typ, PBaseException val, Object tb) { } } - @CApiBuiltin(ret = Void, args = {PyObject, PyObject}, call = Ignored) + @CApiBuiltin(ret = Void, args = {PyObject, PyObject}, call = Ignored, retConversion = void.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class GraalPyPrivate_Err_CreateAndSetException extends CApiBinaryBuiltinNode { @Specialization(guards = "!isExceptionClass(inliningTarget, type, isTypeNode, isSubClassNode)") static Object create(Object type, @SuppressWarnings("unused") Object value, @@ -222,7 +226,8 @@ protected static boolean isExceptionClass(Node inliningTarget, Object obj, IsTyp } } - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { + CharPtrToPythonNode.class, NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class PyErr_NewException extends CApiTernaryBuiltinNode { @Specialization @@ -268,7 +273,9 @@ static Object newEx(TruffleString name, Object base, Object dict, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString, PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString, PyObject, + PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonNode.class, CharPtrToPythonNode.class, NativeToPythonNode.class, + NativeToPythonNode.class}) abstract static class PyErr_NewExceptionWithDoc extends CApiQuaternaryBuiltinNode { @Specialization @@ -290,7 +297,7 @@ static Object raise(TruffleString name, Object doc, Object base, Object dict, } } - @CApiBuiltin(ret = PyObjectTransfer, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {}) abstract static class GraalPyPrivate_Err_GetExcInfo extends CApiNullaryBuiltinNode { @Specialization Object info( @@ -313,7 +320,7 @@ Object info( } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyThreadState}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyThreadState}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class}) abstract static class _PyErr_GetHandledException extends CApiUnaryBuiltinNode { @Specialization @@ -330,7 +337,8 @@ static Object get(@SuppressWarnings("unused") long threadState, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + NativeToPythonNode.class}) abstract static class _Py_CalculateSuggestions extends CApiBinaryBuiltinNode { @Specialization @@ -340,7 +348,7 @@ static Object calculate(@SuppressWarnings("unused") Object dir, @SuppressWarning } } - @CApiBuiltin(ret = Void, args = {ConstCharPtrAsTruffleString, PyObject}, call = Ignored) + @CApiBuiltin(ret = Void, args = {ConstCharPtrAsTruffleString, PyObject}, call = Ignored, retConversion = void.class, argConversions = {CharPtrToPythonNode.class, NativeToPythonNode.class}) abstract static class GraalPyPrivate_WriteUnraisable extends CApiBinaryBuiltinNode { @Specialization static Object write(Object msg, Object obj, @@ -366,7 +374,7 @@ static Object write(Object msg, Object obj, } } - @CApiBuiltin(ret = Void, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Void, args = {PyObject}, call = Direct, retConversion = void.class, argConversions = {NativeToPythonNode.class}) abstract static class PyErr_WriteUnraisable extends CApiUnaryBuiltinNode { @Specialization static Object write(Object obj, @@ -385,7 +393,7 @@ static Object write(Object obj, } } - @CApiBuiltin(ret = Void, args = {Int}, call = Direct) + @CApiBuiltin(ret = Void, args = {Int}, call = Direct, retConversion = void.class, argConversions = {int.class}) abstract static class PyErr_PrintEx extends CApiUnaryBuiltinNode { @TruffleBoundary @@ -473,7 +481,7 @@ private static void handleSystemExit(Object currentException, SysModuleBuiltins } } - @CApiBuiltin(ret = Void, args = {PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = Void, args = {PyObject, PyObject}, call = Direct, retConversion = void.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class PyException_SetCause extends CApiBinaryBuiltinNode { @Specialization Object setCause(Object exc, Object cause, @@ -484,7 +492,7 @@ Object setCause(Object exc, Object cause, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyException_GetCause extends CApiUnaryBuiltinNode { @Specialization Object getCause(Object exc, @@ -494,7 +502,7 @@ Object getCause(Object exc, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyException_GetContext extends CApiUnaryBuiltinNode { @Specialization Object setCause(Object exc, @@ -504,7 +512,7 @@ Object setCause(Object exc, } } - @CApiBuiltin(ret = Void, args = {PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = Void, args = {PyObject, PyObject}, call = Direct, retConversion = void.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class PyException_SetContext extends CApiBinaryBuiltinNode { @Specialization Object setContext(Object exc, Object context, @@ -515,7 +523,7 @@ Object setContext(Object exc, Object context, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyException_GetTraceback extends CApiUnaryBuiltinNode { @Specialization @@ -526,7 +534,7 @@ Object getTraceback(Object exc, } } - @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class PyException_SetTraceback extends CApiBinaryBuiltinNode { @Specialization @@ -538,7 +546,7 @@ Object setTraceback(Object exc, Object traceback, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyException_GetArgs extends CApiUnaryBuiltinNode { @Specialization @@ -549,7 +557,7 @@ static Object get(Object exc, } } - @CApiBuiltin(ret = Void, args = {PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = Void, args = {PyObject, PyObject}, call = Direct, retConversion = void.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class PyException_SetArgs extends CApiBinaryBuiltinNode { @Specialization diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFileBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFileBuiltins.java index 3c2b9afd6e..6d604461ab 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFileBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFileBuiltins.java @@ -49,6 +49,7 @@ import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiTernaryBuiltinNode; import com.oracle.graal.python.builtins.objects.PNone; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; import com.oracle.graal.python.builtins.objects.str.StringBuiltins; import com.oracle.graal.python.lib.PyObjectGetAttr; import com.oracle.graal.python.nodes.PRaiseNode; @@ -61,7 +62,7 @@ public final class PythonCextFileBuiltins { - @CApiBuiltin(ret = Int, args = {PyObject, PyObject, Int}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject, Int}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class, int.class}) abstract static class PyFile_WriteObject extends CApiTernaryBuiltinNode { @Specialization diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFloatBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFloatBuiltins.java index a078f1a38c..9efaf40f1d 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFloatBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFloatBuiltins.java @@ -48,6 +48,8 @@ import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiUnaryBuiltinNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.lib.PyFloatAsDoubleNode; import com.oracle.graal.python.lib.PyFloatFromString; import com.oracle.truffle.api.dsl.Bind; @@ -57,7 +59,7 @@ public final class PythonCextFloatBuiltins { - @CApiBuiltin(ret = PyObjectTransfer, args = {ArgDescriptor.Double}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {ArgDescriptor.Double}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {double.class}) abstract static class GraalPyPrivate_Float_FromDouble extends CApiUnaryBuiltinNode { @Specialization static double fromDouble(double d) { @@ -65,7 +67,7 @@ static double fromDouble(double d) { } } - @CApiBuiltin(ret = ArgDescriptor.Double, args = {PyObject}, call = Ignored) + @CApiBuiltin(ret = ArgDescriptor.Double, args = {PyObject}, call = Ignored, retConversion = double.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Float_AsDouble extends CApiUnaryBuiltinNode { @Specialization static double doGenericErr(Object object, @@ -75,7 +77,7 @@ static double doGenericErr(Object object, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyFloat_FromString extends CApiUnaryBuiltinNode { @Specialization diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFrameBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFrameBuiltins.java index 8776470c07..01658e6630 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFrameBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFrameBuiltins.java @@ -54,6 +54,8 @@ import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiUnaryBuiltinNode; import com.oracle.graal.python.builtins.objects.PNone; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.frame.FrameBuiltins; import com.oracle.graal.python.builtins.objects.frame.PFrame; import com.oracle.graal.python.nodes.frame.ReadFrameNode; @@ -65,7 +67,7 @@ import com.oracle.truffle.api.nodes.Node; public final class PythonCextFrameBuiltins { - @CApiBuiltin(ret = PyCodeObjectTransfer, args = {PyFrameObject}, call = Direct) + @CApiBuiltin(ret = PyCodeObjectTransfer, args = {PyFrameObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyFrame_GetCode extends CApiUnaryBuiltinNode { @Specialization static Object get(PFrame frame, @@ -74,7 +76,7 @@ static Object get(PFrame frame, } } - @CApiBuiltin(ret = Int, args = {PyFrameObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyFrameObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class PyFrame_GetLineNumber extends CApiUnaryBuiltinNode { @Specialization static Object get(PFrame frame, @@ -83,7 +85,7 @@ static Object get(PFrame frame, } } - @CApiBuiltin(ret = Int, args = {PyFrameObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyFrameObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class PyFrame_GetLasti extends CApiUnaryBuiltinNode { @Specialization static Object get(PFrame frame, @@ -92,7 +94,7 @@ static Object get(PFrame frame, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyFrameObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyFrameObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyFrame_GetLocals extends CApiUnaryBuiltinNode { @Specialization static Object get(PFrame frame, @@ -106,7 +108,7 @@ static Object get(PFrame frame, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyFrameObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyFrameObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyFrame_GetGlobals extends CApiUnaryBuiltinNode { @Specialization static Object get(PFrame frame, @@ -115,7 +117,7 @@ static Object get(PFrame frame, } } - @CApiBuiltin(ret = PyFrameObjectTransfer, args = {PyFrameObject}, call = Direct) + @CApiBuiltin(ret = PyFrameObjectTransfer, args = {PyFrameObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyFrame_GetBack extends CApiUnaryBuiltinNode { @Specialization Object get(PFrame frame, @@ -128,7 +130,7 @@ Object get(PFrame frame, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyFrameObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyFrameObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyFrame_GetBuiltins extends CApiUnaryBuiltinNode { @Specialization static Object get(PFrame frame, @@ -137,7 +139,7 @@ static Object get(PFrame frame, } } - @CApiBuiltin(ret = ArgDescriptor.Void, args = {PyFrameObject, Int}, call = Direct) + @CApiBuiltin(ret = ArgDescriptor.Void, args = {PyFrameObject, Int}, call = Direct, retConversion = void.class, argConversions = {NativeToPythonNode.class, int.class}) abstract static class GraalPyFrame_SetLineNumber extends CApiBinaryBuiltinNode { @Specialization static Object set(PFrame frame, int value) { diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFuncBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFuncBuiltins.java index 7ffd7a0115..5a0c2aa511 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFuncBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFuncBuiltins.java @@ -61,9 +61,13 @@ import com.oracle.graal.python.builtins.objects.cell.PCell; import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.EnsurePythonObjectNode; import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.ToNativeBorrowedNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.CharPtrToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonInternalNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonTransferNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeInternalNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.common.HashingStorageNodes.HashingStorageGetItem; import com.oracle.graal.python.builtins.objects.dict.PDict; import com.oracle.graal.python.builtins.objects.function.PBuiltinFunction; @@ -110,27 +114,28 @@ private static void checkCell(long cellPtr) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) static long PyCell_Get(long cellPtr) { checkCell(cellPtr); Object ref = getPromotedCellRef(cellPtr); return ref == null ? NULLPTR : PythonToNativeInternalNode.executeNewRefUncached(ref); } - @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) static int PyCell_Set(long cellPtr, long valuePtr) { checkCell(cellPtr); getCell(cellPtr).setRef(valuePtr == NULLPTR ? null : NativeToPythonInternalNode.executeUncached(valuePtr, false)); return 0; } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long GraalPyCell_GET(long cellPtr) { Object ref = getPromotedCellRef(cellPtr); return ref == null ? NULLPTR : ToNativeBorrowedNode.executeUncached(ref); } - @CApiBuiltin(ret = ArgDescriptor.Void, args = {PyObject, PyObjectTransfer}, call = Direct) + @CApiBuiltin(ret = ArgDescriptor.Void, args = {PyObject, PyObjectTransfer}, call = Direct, retConversion = void.class, argConversions = {NativeToPythonNode.class, + NativeToPythonTransferNode.class}) static void GraalPyCell_SET(long cellPtr, long valuePtr) { getCell(cellPtr).setRef(valuePtr == NULLPTR ? null : NativeToPythonInternalNode.executeUncached(valuePtr, true)); } @@ -142,62 +147,62 @@ private static void checkFunction(long functionPtr) { } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long PyFunction_GetCode(long functionPtr) { checkFunction(functionPtr); return GraalPyFunction_GET_CODE(functionPtr); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long PyFunction_GetGlobals(long functionPtr) { checkFunction(functionPtr); return GraalPyFunction_GET_GLOBALS(functionPtr); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long PyFunction_GetModule(long functionPtr) { checkFunction(functionPtr); return GraalPyFunction_GET_MODULE(functionPtr); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long PyFunction_GetDefaults(long functionPtr) { checkFunction(functionPtr); return GraalPyFunction_GET_DEFAULTS(functionPtr); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long PyFunction_GetKwDefaults(long functionPtr) { checkFunction(functionPtr); return GraalPyFunction_GET_KW_DEFAULTS(functionPtr); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long PyFunction_GetClosure(long functionPtr) { checkFunction(functionPtr); return GraalPyFunction_GET_CLOSURE(functionPtr); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long PyFunction_GetAnnotations(long functionPtr) { checkFunction(functionPtr); return GraalPyFunction_GET_ANNOTATIONS(functionPtr); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long GraalPyFunction_GET_CODE(long functionPtr) { PFunction function = (PFunction) NativeToPythonInternalNode.executeUncached(functionPtr, false); return ToNativeBorrowedNode.executeUncached(function.getCode()); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long GraalPyFunction_GET_GLOBALS(long functionPtr) { PFunction function = (PFunction) NativeToPythonInternalNode.executeUncached(functionPtr, false); Object globals = function.getGlobals(); return ToNativeBorrowedNode.executeUncached(globals instanceof PythonModule ? GetOrCreateDictNode.executeUncached(globals) : globals); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long GraalPyFunction_GET_MODULE(long functionPtr) { PFunction function = (PFunction) NativeToPythonInternalNode.executeUncached(functionPtr, false); Object module = ReadAttributeFromObjectNode.getUncached().execute(function, T___MODULE__); @@ -222,35 +227,35 @@ static long GraalPyFunction_GET_MODULE(long functionPtr) { return ToNativeBorrowedNode.executeUncached(promotedModule); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long GraalPyFunction_GET_DEFAULTS(long functionPtr) { PFunction function = (PFunction) NativeToPythonInternalNode.executeUncached(functionPtr, false); Object[] defaults = function.getDefaults(); return defaults.length == 0 ? NULLPTR : ToNativeBorrowedNode.executeUncached(PFactory.createTuple(PythonLanguage.get(null), defaults)); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long GraalPyFunction_GET_KW_DEFAULTS(long functionPtr) { PFunction function = (PFunction) NativeToPythonInternalNode.executeUncached(functionPtr, false); Object defaults = function.getKwDefaultsDict(PythonLanguage.get(null)); return defaults == PNone.NONE ? NULLPTR : ToNativeBorrowedNode.executeUncached(defaults); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long GraalPyFunction_GET_CLOSURE(long functionPtr) { PFunction function = (PFunction) NativeToPythonInternalNode.executeUncached(functionPtr, false); PCell[] closure = function.getClosure(); return closure == null ? NULLPTR : ToNativeBorrowedNode.executeUncached(PFactory.createTuple(PythonLanguage.get(null), closure)); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long GraalPyFunction_GET_ANNOTATIONS(long functionPtr) { PFunction function = (PFunction) NativeToPythonInternalNode.executeUncached(functionPtr, false); Object annotations = ReadAttributeFromObjectNode.getUncached().execute(function, T___ANNOTATIONS__); return annotations != PNone.NO_VALUE ? ToNativeBorrowedNode.executeUncached(annotations) : NULLPTR; } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyStaticMethod_New extends CApiUnaryBuiltinNode { @Specialization static Object staticmethod(Object func, @@ -261,7 +266,7 @@ static Object staticmethod(Object func, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyClassMethod_New extends CApiUnaryBuiltinNode { @Specialization static Object staticmethod(Object callable, @@ -270,7 +275,8 @@ static Object staticmethod(Object callable, } } - @CApiBuiltin(ret = ArgDescriptor.Void, args = {PyObject, ConstCharPtrAsTruffleString}, call = Ignored) + @CApiBuiltin(ret = ArgDescriptor.Void, args = {PyObject, ConstCharPtrAsTruffleString}, call = Ignored, retConversion = void.class, argConversions = {NativeToPythonNode.class, + CharPtrToPythonNode.class}) abstract static class GraalPyPrivate_CFunction_SetDoc extends CApiBinaryBuiltinNode { @Specialization @TruffleBoundary diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextGenericAliasBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextGenericAliasBuiltins.java index 9baf679d5d..38812260ac 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextGenericAliasBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextGenericAliasBuiltins.java @@ -47,6 +47,8 @@ import com.oracle.graal.python.PythonLanguage; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBinaryBuiltinNode; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.tuple.PTuple; import com.oracle.graal.python.nodes.builtins.TupleNodes; import com.oracle.graal.python.runtime.object.PFactory; @@ -60,7 +62,8 @@ public final class PythonCextGenericAliasBuiltins { private PythonCextGenericAliasBuiltins() { } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + NativeToPythonNode.class}) abstract static class Py_GenericAlias extends CApiBinaryBuiltinNode { @Specialization static Object genericAlias(Object origin, Object args, diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextHashBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextHashBuiltins.java index 6e22401390..6dd2a96109 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextHashBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextHashBuiltins.java @@ -67,7 +67,7 @@ public final class PythonCextHashBuiltins { - @CApiBuiltin(ret = Void, args = {INT8_T_PTR}, call = Ignored) + @CApiBuiltin(ret = Void, args = {INT8_T_PTR}, call = Ignored, retConversion = void.class, argConversions = {long.class}) abstract static class GraalPyPrivate_Hash_InitSecret extends CApiUnaryBuiltinNode { @Specialization @TruffleBoundary @@ -78,7 +78,7 @@ Object get(long secretPtr) { } } - @CApiBuiltin(ret = ArgDescriptor.Long, args = {Int}, call = Ignored) + @CApiBuiltin(ret = ArgDescriptor.Long, args = {Int}, call = Ignored, retConversion = long.class, argConversions = {int.class}) abstract static class GraalPyPrivate_HashConstant extends CApiUnaryBuiltinNode { @Specialization @@ -98,7 +98,7 @@ static long doI(int idx) { } } - @CApiBuiltin(ret = Py_hash_t, args = {ArgDescriptor.Double}, call = Ignored) + @CApiBuiltin(ret = Py_hash_t, args = {ArgDescriptor.Double}, call = Ignored, retConversion = long.class, argConversions = {double.class}) abstract static class GraalPyPrivate_HashDouble extends CApiUnaryBuiltinNode { @Specialization @@ -108,7 +108,7 @@ long doFinite(double value) { } } - @CApiBuiltin(name = "_Py_HashBytes", ret = Py_hash_t, args = {CONST_VOID_PTR, Py_ssize_t}, call = Direct) + @CApiBuiltin(name = "_Py_HashBytes", ret = Py_hash_t, args = {CONST_VOID_PTR, Py_ssize_t}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) abstract static class _Py_HashBytes extends CApiBinaryBuiltinNode { @Specialization diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextImportBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextImportBuiltins.java index 43c3048a65..70115de83f 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextImportBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextImportBuiltins.java @@ -62,6 +62,11 @@ import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiNullaryBuiltinNode; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiUnaryBuiltinNode; import com.oracle.graal.python.builtins.objects.PNone; +import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.ToNativeBorrowedNode; +import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.ToPythonStringNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.CharPtrToPythonStrictNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.common.HashingCollectionNodes.SetItemNode; import com.oracle.graal.python.builtins.objects.common.HashingStorageNodes.HashingStorageGetItem; import com.oracle.graal.python.builtins.objects.dict.PDict; @@ -85,9 +90,11 @@ public final class PythonCextImportBuiltins { - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleStringStrict}, call = Direct) - @CApiBuiltin(name = "PyImport_Import", ret = PyObjectTransfer, args = {PyObjectAsTruffleString}, call = Direct) - @CApiBuiltin(name = "PyImport_ImportModuleNoBlock", ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleStringStrict}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleStringStrict}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonStrictNode.class}) + @CApiBuiltin(name = "PyImport_Import", ret = PyObjectTransfer, args = {PyObjectAsTruffleString}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { + ToPythonStringNode.class}) + @CApiBuiltin(name = "PyImport_ImportModuleNoBlock", ret = PyObjectTransfer, args = { + ConstCharPtrAsTruffleStringStrict}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonStrictNode.class}) abstract static class PyImport_ImportModule extends CApiUnaryBuiltinNode { @Specialization static Object imp(TruffleString name) { @@ -95,7 +102,7 @@ static Object imp(TruffleString name) { } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {}) abstract static class PyImport_GetModuleDict extends CApiNullaryBuiltinNode { @Specialization Object getModuleDict() { @@ -103,7 +110,7 @@ Object getModuleDict() { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleStringStrict}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleStringStrict}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonStrictNode.class}) abstract static class PyImport_AddModuleRef extends CApiUnaryBuiltinNode { @Specialization static Object addModule(TruffleString name, @@ -122,7 +129,8 @@ static Object addModule(TruffleString name, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObjectAsTruffleString, PyObject, PyObject, PyObject, Int}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObjectAsTruffleString, PyObject, PyObject, PyObject, Int}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { + ToPythonStringNode.class, NativeToPythonNode.class, NativeToPythonNode.class, NativeToPythonNode.class, int.class}) abstract static class PyImport_ImportModuleLevelObject extends CApi5BuiltinNode { @Specialization Object importModuleLevelObject(TruffleString name, Object globals, Object locals, Object fromlist, int level, @@ -139,7 +147,7 @@ Object importModuleLevelObject(TruffleString name, Object globals, Object locals } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyImport_GetModule extends CApiUnaryBuiltinNode { private static final TruffleString T__LOCK_UNLOCK_MODULE = tsLiteral("_lock_unlock_module"); diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextIterBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextIterBuiltins.java index 3072377989..d632d8d4b4 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextIterBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextIterBuiltins.java @@ -49,6 +49,8 @@ import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBinaryBuiltinNode; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiUnaryBuiltinNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.iterator.PSequenceIterator; import com.oracle.graal.python.runtime.object.PFactory; import com.oracle.truffle.api.dsl.Bind; @@ -57,7 +59,7 @@ public final class PythonCextIterBuiltins { - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PySeqIter_New extends CApiUnaryBuiltinNode { @Specialization static PSequenceIterator call(Object seq, @@ -66,7 +68,8 @@ static PSequenceIterator call(Object seq, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + NativeToPythonNode.class}) abstract static class PyCallIter_New extends CApiBinaryBuiltinNode { @Specialization static Object getItem(Object it, Object sentinel, diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextListBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextListBuiltins.java index 6ba585bbd5..4a052d1108 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextListBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextListBuiltins.java @@ -68,10 +68,13 @@ import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiUnaryBuiltinNode; import com.oracle.graal.python.builtins.objects.PNone; import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.EnsurePythonObjectNode; +import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.ToNativeBorrowedNode; import com.oracle.graal.python.builtins.objects.cext.capi.PySequenceArrayWrapper; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTiming; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonInternalNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeInternalNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes.GetItemScalarNode; import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes.ListGeneralizationNode; import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes.SetItemScalarNode; @@ -102,7 +105,7 @@ public final class PythonCextListBuiltins { private static final CApiTiming TIMING_PYLIST_NEW = CApiTiming.create(false, "PyList_New"); - @CApiBuiltin(ret = PyObjectTransfer, args = {Py_ssize_t}, call = Direct, acquireGil = false) + @CApiBuiltin(ret = PyObjectTransfer, args = {Py_ssize_t}, call = Direct, acquireGil = false, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class}) static long PyList_New(long size) { CApiTiming.enter(); try { @@ -128,7 +131,7 @@ static long PyList_New(long size) { } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject, Py_ssize_t}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject, Py_ssize_t}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class, long.class}) abstract static class PyList_GetItem extends CApiBinaryBuiltinNode { @Specialization @@ -164,7 +167,7 @@ Object fallback(Object list, @SuppressWarnings("unused") Object pos) { private static final CApiTiming TIMING_PYLIST_GETITEMREF = CApiTiming.create(false, "PyList_GetItemRef"); - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Py_ssize_t}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Py_ssize_t}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, long.class}) static long PyList_GetItemRef(long opPtr, long key) { CApiTiming.enter(); try { @@ -193,7 +196,7 @@ static long PyList_GetItemRef(long opPtr, long key) { private static final CApiTiming TIMING_PYLIST_APPEND = CApiTiming.create(false, "PyList_Append"); - @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) static int PyList_Append(long opPtr, long itemPtr) { CApiTiming.enter(); try { @@ -209,7 +212,7 @@ static int PyList_Append(long opPtr, long itemPtr) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyList_AsTuple extends CApiUnaryBuiltinNode { @Specialization @@ -224,7 +227,8 @@ Object fallback(Object list) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Py_ssize_t, Py_ssize_t}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Py_ssize_t, Py_ssize_t}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + long.class, long.class}) abstract static class PyList_GetSlice extends CApiTernaryBuiltinNode { @Specialization Object getSlice(PList list, Object iLow, Object iHigh, @@ -240,7 +244,8 @@ Object fallback(Object list, @SuppressWarnings("unused") Object iLow, @SuppressW } } - @CApiBuiltin(ret = Int, args = {PyObject, Py_ssize_t, Py_ssize_t, PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, Py_ssize_t, Py_ssize_t, PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, long.class, long.class, + NativeToPythonNode.class}) abstract static class PyList_SetSlice extends CApiQuaternaryBuiltinNode { @Specialization @@ -258,7 +263,7 @@ int fallback(Object list, @SuppressWarnings("unused") Object iLow, @SuppressWarn } } - @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class PyList_Extend extends CApiBinaryBuiltinNode { @Specialization @@ -274,7 +279,8 @@ int fallback(Object list, @SuppressWarnings("unused") Object iterable) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyListObject, PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyListObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + NativeToPythonNode.class}) abstract static class _PyList_Extend extends CApiBinaryBuiltinNode { @Specialization @@ -296,7 +302,7 @@ Object fallback(Object list, @SuppressWarnings("unused") Object iterable) { * A pure-C Py_SIZE implementation regressed mixed managed/native/list-subclass workload by * about 1.26x. */ - @CApiBuiltin(ret = Py_ssize_t, args = {PyObject}, call = Direct, acquireGil = false) + @CApiBuiltin(ret = Py_ssize_t, args = {PyObject}, call = Direct, acquireGil = false, retConversion = long.class, argConversions = {NativeToPythonNode.class}) static long PyList_Size(long opPtr) { CApiTiming.enter(); try { @@ -310,7 +316,7 @@ static long PyList_Size(long opPtr) { } } - @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class PyList_Sort extends CApiUnaryBuiltinNode { @Specialization @@ -326,7 +332,7 @@ int fallback(Object list) { } } - @CApiBuiltin(ret = Int, args = {PyObject, Py_ssize_t, PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, Py_ssize_t, PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, long.class, NativeToPythonNode.class}) abstract static class PyList_Insert extends CApiTernaryBuiltinNode { @Specialization @@ -342,7 +348,7 @@ int fallback(Object list, @SuppressWarnings("unused") Object i, @SuppressWarning } } - @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class PyList_Reverse extends CApiUnaryBuiltinNode { @Specialization static int reverse(PList self, @@ -358,7 +364,7 @@ static int error(@SuppressWarnings("unused") Object self, } } - @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class PyList_Clear extends CApiUnaryBuiltinNode { @Specialization @@ -374,7 +380,7 @@ static int error(@SuppressWarnings("unused") Object self, } } - @CApiBuiltin(ret = INT64_T, args = {PyObject, Pointer}, call = Ignored) + @CApiBuiltin(ret = INT64_T, args = {PyObject, Pointer}, call = Ignored, retConversion = long.class, argConversions = {NativeToPythonNode.class, long.class}) abstract static class GraalPyPrivate_List_TruncateNativeStorage extends CApiBinaryBuiltinNode { @Specialization @@ -390,7 +396,7 @@ static long doGeneric(PList self, long outItems) { } } - @CApiBuiltin(ret = INT64_T, args = {PyObject, Pointer}, call = Ignored) + @CApiBuiltin(ret = INT64_T, args = {PyObject, Pointer}, call = Ignored, retConversion = long.class, argConversions = {NativeToPythonNode.class, long.class}) abstract static class GraalPyPrivate_List_TryGetItems extends CApiBinaryBuiltinNode { @Specialization diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextLongBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextLongBuiltins.java index 9d003abbea..1e240ebbda 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextLongBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextLongBuiltins.java @@ -78,8 +78,11 @@ import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTiming; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.CharPtrToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonInternalNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeInternalNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes.TransformPExceptionToNativeCachedNode; import com.oracle.graal.python.builtins.objects.ints.IntBuiltins; import com.oracle.graal.python.builtins.objects.ints.IntNodes; @@ -112,7 +115,7 @@ public final class PythonCextLongBuiltins { private static final CApiTiming TIMING_PYLONG_GETINFO = CApiTiming.create(false, "PyLong_GetInfo"); - @CApiBuiltin(ret = PyObjectTransfer, args = {}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {}) static long PyLong_GetInfo() { CApiTiming.enter(); try { @@ -123,7 +126,7 @@ static long PyLong_GetInfo() { } } - @CApiBuiltin(ret = Py_ssize_t, args = {PyLongObject}, call = Ignored) + @CApiBuiltin(ret = Py_ssize_t, args = {PyLongObject}, call = Ignored, retConversion = long.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Long_DigitCount extends CApiUnaryBuiltinNode { @Specialization @@ -136,7 +139,7 @@ static long getDC(Object n, private static final CApiTiming TIMING_GRAALPYPRIVATE_LONG_FROMDOUBLE = CApiTiming.create(false, "GraalPyPrivate_Long_FromDouble"); - @CApiBuiltin(ret = PyObjectRawPointer, args = {ArgDescriptor.Double}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {ArgDescriptor.Double}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {double.class}) static long GraalPyPrivate_Long_FromDouble(double d) { CApiTiming.enter(); try { @@ -147,7 +150,8 @@ static long GraalPyPrivate_Long_FromDouble(double d) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, Int}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonNode.class, + int.class}) abstract static class GraalPyPrivate_Long_FromString extends CApiBinaryBuiltinNode { @Specialization @@ -158,7 +162,8 @@ Object fromString(Object s, int base, } } - @CApiBuiltin(ret = LONG_LONG, args = {PyObject, SIZE_T, Pointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = LONG_LONG, args = {PyObject, SIZE_T, Pointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {NativeToPythonNode.class, long.class, + long.class}) abstract static class GraalPyPrivate_Long_AsPrimitiveAndOverflow extends CApiTernaryBuiltinNode { @Specialization static long doGeneric(Object object, long targetTypeSize, long overflow, @@ -194,7 +199,7 @@ private static void writeOverflow(Object value, long overflow) { } } - @CApiBuiltin(ret = LONG_LONG, args = {PyObject, Int, SIZE_T}, call = Ignored) + @CApiBuiltin(ret = LONG_LONG, args = {PyObject, Int, SIZE_T}, call = Ignored, retConversion = long.class, argConversions = {NativeToPythonNode.class, int.class, long.class}) abstract static class GraalPyPrivate_Long_AsPrimitiveWithCoercion extends CApiTernaryBuiltinNode { @Specialization static long doGeneric(Object object, int mode, long targetTypeSize, @@ -212,7 +217,7 @@ static long doGeneric(Object object, int mode, long targetTypeSize, } } - @CApiBuiltin(ret = LONG_LONG, args = {PyObject, Int, SIZE_T}, call = Ignored) + @CApiBuiltin(ret = LONG_LONG, args = {PyObject, Int, SIZE_T}, call = Ignored, retConversion = long.class, argConversions = {NativeToPythonNode.class, int.class, long.class}) abstract static class GraalPyPrivate_Long_AsPrimitive extends CApiTernaryBuiltinNode { @Specialization @@ -297,7 +302,7 @@ private static PException raiseNegativeValue(Node inliningTarget) { private static final CApiTiming TIMING_GRAALPYPRIVATE_LONG_FROMLONGLONG = CApiTiming.create(false, "GraalPyPrivate_Long_FromLongLong"); - @CApiBuiltin(ret = PyObjectTransfer, args = {LONG_LONG}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {LONG_LONG}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class}) static long GraalPyPrivate_Long_FromLongLong(long n) { CApiTiming.enter(); try { @@ -309,7 +314,7 @@ static long GraalPyPrivate_Long_FromLongLong(long n) { private static final CApiTiming TIMING_GRAALPYPRIVATE_LONG_FROMUNSIGNEDLONGLONG = CApiTiming.create(false, "GraalPyPrivate_Long_FromUnsignedLongLong"); - @CApiBuiltin(ret = PyObjectRawPointer, args = {UNSIGNED_LONG_LONG}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {UNSIGNED_LONG_LONG}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_Long_FromUnsignedLongLong(long n) { CApiTiming.enter(); try { @@ -322,7 +327,7 @@ static long GraalPyPrivate_Long_FromUnsignedLongLong(long n) { private static final CApiTiming TIMING_GRAALPYPRIVATE_LONG_NUMBITS = CApiTiming.create(false, "GraalPyPrivate_Long_NumBits"); - @CApiBuiltin(ret = SIZE_T, args = {PyObjectRawPointer}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = SIZE_T, args = {PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_Long_NumBits(long objPtr) { CApiTiming.enter(); try { @@ -342,7 +347,7 @@ static long GraalPyPrivate_Long_NumBits(long objPtr) { } } - @CApiBuiltin(ret = Pointer, args = {PyObject}, call = Ignored) + @CApiBuiltin(ret = Pointer, args = {PyObject}, call = Ignored, retConversion = long.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Long_AsVoidPtr extends CApiUnaryBuiltinNode { @Child private TransformPExceptionToNativeCachedNode transformExceptionToNativeNode; @@ -407,7 +412,8 @@ private TransformPExceptionToNativeCachedNode ensureTransformExcNode() { } } - @CApiBuiltin(ret = Int, args = {PyLongObject, UNSIGNED_CHAR_PTR, SIZE_T, Int, Int, Int}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyLongObject, UNSIGNED_CHAR_PTR, SIZE_T, Int, Int, Int}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, long.class, + long.class, int.class, int.class, int.class}) abstract static class _PyLong_AsByteArray extends CApi6BuiltinNode { private static void checkSign(Node inliningTarget, boolean negative, int isSigned, int withExceptions, PRaiseNode raiseNode) { if (negative) { @@ -453,7 +459,7 @@ static Object get(PInt value, long bytes, long n, int littleEndian, int isSigned } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Int}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Int}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, int.class}) abstract static class PyLong_FromUnicodeObject extends CApiBinaryBuiltinNode { @Specialization static Object convert(Object s, int base, @@ -463,7 +469,8 @@ static Object convert(Object s, int base, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {CONST_UNSIGNED_CHAR_PTR, SIZE_T, Int, Int}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {CONST_UNSIGNED_CHAR_PTR, SIZE_T, Int, Int}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, long.class, + int.class, int.class}) abstract static class _PyLong_FromByteArray extends CApiQuaternaryBuiltinNode { @Specialization static Object convert(long charPtr, long size, int littleEndian, int signed, @@ -487,7 +494,7 @@ static Object convert(long charPtr, long size, int littleEndian, int signed, private static final CApiTiming TIMING_PYLONG_ASNATIVEBYTES = CApiTiming.create(false, "PyLong_AsNativeBytes"); - @CApiBuiltin(ret = Py_ssize_t, args = {PyObjectRawPointer, Pointer, Py_ssize_t, Int}, call = Direct) + @CApiBuiltin(ret = Py_ssize_t, args = {PyObjectRawPointer, Pointer, Py_ssize_t, Int}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class, long.class, int.class}) static long PyLong_AsNativeBytes(long objectPtr, long buffer, long size, int flags) { CApiTiming.enter(); try { @@ -571,7 +578,7 @@ private static long requiredNativeBytesSize(BigInteger value, long size, int fla private static final CApiTiming TIMING_PYLONG_FROMNATIVEBYTES = CApiTiming.create(false, "PyLong_FromNativeBytes"); - @CApiBuiltin(ret = PyObjectTransfer, args = {CONST_VOID_PTR, SIZE_T, Int}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {CONST_VOID_PTR, SIZE_T, Int}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, long.class, int.class}) static long PyLong_FromNativeBytes(long buffer, long size, int flags) { CApiTiming.enter(); try { @@ -593,7 +600,7 @@ static long PyLong_FromNativeBytes(long buffer, long size, int flags) { private static final CApiTiming TIMING_PYLONG_FROMUNSIGNEDNATIVEBYTES = CApiTiming.create(false, "PyLong_FromUnsignedNativeBytes"); - @CApiBuiltin(ret = PyObjectTransfer, args = {CONST_VOID_PTR, SIZE_T, Int}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {CONST_VOID_PTR, SIZE_T, Int}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, long.class, int.class}) static long PyLong_FromUnsignedNativeBytes(long buffer, long size, int flags) { CApiTiming.enter(); try { diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMemoryViewBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMemoryViewBuiltins.java index 7f4f9cbbaf..54387e8d46 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMemoryViewBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMemoryViewBuiltins.java @@ -55,6 +55,8 @@ import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiTernaryBuiltinNode; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiUnaryBuiltinNode; import com.oracle.graal.python.builtins.objects.PNone; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.memoryview.MemoryViewBuiltins.CastNode; import com.oracle.graal.python.builtins.objects.memoryview.MemoryViewBuiltins.ContiguousNode; import com.oracle.graal.python.builtins.objects.memoryview.MemoryViewBuiltins.ToBytesNode; @@ -73,7 +75,8 @@ public final class PythonCextMemoryViewBuiltins { public static final int PY_BUF_READ = 0x100; public static final int PY_BUF_WRITE = 0x200; - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Int, CHAR}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Int, CHAR}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, int.class, + byte.class}) abstract static class PyMemoryView_GetContiguous extends CApiTernaryBuiltinNode { @Specialization() static Object get(Object obj, int buffertype, byte orderByte, @@ -121,7 +124,7 @@ static Object get(Object obj, int buffertype, byte orderByte, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyMemoryView_FromObject extends CApiUnaryBuiltinNode { @Specialization static Object wrap(Object object, diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMethodBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMethodBuiltins.java index 108856cc77..29b4a8144e 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMethodBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMethodBuiltins.java @@ -63,8 +63,11 @@ import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.FromCharPointerNode; import com.oracle.graal.python.builtins.objects.cext.capi.MethodDescriptorWrapper; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.CharPtrToPythonNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonClassNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonInternalNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeInternalNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.cext.structs.CFields; import com.oracle.graal.python.builtins.objects.cext.structs.CStructs; import com.oracle.graal.python.builtins.objects.function.PBuiltinFunction; @@ -126,7 +129,9 @@ public static void addMethodsToObject(PythonLanguage language, long methods, Obj } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyMethodDef, ConstCharPtrAsTruffleString, Pointer, Int, PyObject, PyObject, PyTypeObject, ConstCharPtrAsTruffleString}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyMethodDef, ConstCharPtrAsTruffleString, Pointer, Int, PyObject, PyObject, PyTypeObject, + ConstCharPtrAsTruffleString}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, CharPtrToPythonNode.class, long.class, int.class, + NativeToPythonNode.class, NativeToPythonNode.class, NativeToPythonClassNode.class, CharPtrToPythonNode.class}) public static long GraalPyPrivate_CMethod_NewEx(long methodDefPtr, long nameRaw, long methPtr, int flags, long selfRaw, long moduleRaw, long clsRaw, long docRaw) { // errors are expected to be thrown already in native code assert verifyFlags(flags, clsRaw); diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextModuleBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextModuleBuiltins.java index fbfba567f4..3e47bdd71c 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextModuleBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextModuleBuiltins.java @@ -85,13 +85,16 @@ import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.EnsurePythonObjectNode; import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodesFactory.PRaiseNativeNodeGen; import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionInvoker; +import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.ToPythonStringNode; import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodesFactory.CheckPrimitiveFunctionResultNodeGen; import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionSignature; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTiming; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.CharPtrToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonInternalNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeInternalNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.module.PythonModule; import com.oracle.graal.python.builtins.objects.object.ObjectBuiltins; import com.oracle.graal.python.builtins.objects.str.StringBuiltins.PrefixSuffixNode; @@ -125,7 +128,7 @@ public final class PythonCextModuleBuiltins { - @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtrAsTruffleString}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtrAsTruffleString}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, CharPtrToPythonNode.class}) abstract static class PyModule_SetDocString extends CApiBinaryBuiltinNode { @Specialization static int run(PythonModule module, Object doc, @@ -135,8 +138,9 @@ static int run(PythonModule module, Object doc, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObjectAsTruffleString}, call = Direct) - @CApiBuiltin(name = "PyModule_New", ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObjectAsTruffleString}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {ToPythonStringNode.class}) + @CApiBuiltin(name = "PyModule_New", ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { + CharPtrToPythonNode.class}) abstract static class PyModule_NewObject extends CApiUnaryBuiltinNode { @Specialization @@ -146,7 +150,7 @@ static Object run(TruffleString name, } } - @CApiBuiltin(ret = PyModuleObjectTransfer, args = {ConstCharPtrAsTruffleString}, call = Ignored) + @CApiBuiltin(ret = PyModuleObjectTransfer, args = {ConstCharPtrAsTruffleString}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonNode.class}) abstract static class GraalPyPrivate_Module_CreateInitialized_PyModule_New extends CApiUnaryBuiltinNode { @Specialization @@ -181,7 +185,7 @@ Object run(TruffleString name, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyModule_GetNameObject extends CApiUnaryBuiltinNode { @Specialization static Object getName(PythonModule module, @@ -216,7 +220,8 @@ static boolean isModuleSubtype(Node inliningTarget, Object obj, GetClassNode get return isSubtypeNode.execute(getClassNode.execute(inliningTarget, obj), PythonBuiltinClassType.PythonModule); } - @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtrAsTruffleString, PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtrAsTruffleString, PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, CharPtrToPythonNode.class, + NativeToPythonNode.class}) @ImportStatic(PythonCextModuleBuiltins.class) abstract static class PyModule_AddObjectRef extends CApiTernaryBuiltinNode { @Specialization(guards = "isModuleSubtype(inliningTarget, m, getClassNode, isSubtypeNode)") @@ -239,7 +244,8 @@ static Object pop(Object m, Object key, Object defaultValue, } } - @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtrAsTruffleString, ArgDescriptor.Long}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtrAsTruffleString, ArgDescriptor.Long}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, + CharPtrToPythonNode.class, long.class}) @ImportStatic(PythonCextModuleBuiltins.class) abstract static class PyModule_AddIntConstant extends CApiTernaryBuiltinNode { @Specialization(guards = "isModuleSubtype(inliningTarget, m, getClassNode, isSubtypeNode)") @@ -261,7 +267,7 @@ static Object pop(@SuppressWarnings("unused") Object m, @SuppressWarnings("unuse } } - @CApiBuiltin(ret = Int, args = {PyObject, PyMethodDef}, call = Ignored) + @CApiBuiltin(ret = Int, args = {PyObject, PyMethodDef}, call = Ignored, retConversion = int.class, argConversions = {NativeToPythonNode.class, long.class}) public static int GraalPyPrivate_Module_AddFunctions(long moduleRaw, long functions) { CompilerAsserts.neverPartOfCompilation(); Object module = NativeToPythonInternalNode.executeUncached(moduleRaw, false); @@ -277,7 +283,7 @@ public static int GraalPyPrivate_Module_AddFunctions(long moduleRaw, long functi return 0; } - @CApiBuiltin(ret = Int, args = {PyObject, PyObject, PyMethodDef}, call = Ignored) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject, PyMethodDef}, call = Ignored, retConversion = int.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class, long.class}) public static int GraalPyPrivate_AddMethodsToObject(long moduleRaw, long nameRaw, long functions) { CompilerAsserts.neverPartOfCompilation(); Object module = NativeToPythonInternalNode.executeUncached(moduleRaw, false); @@ -286,7 +292,8 @@ public static int GraalPyPrivate_AddMethodsToObject(long moduleRaw, long nameRaw return 0; } - @CApiBuiltin(ret = PyObjectTransfer, args = {CONST_PY_SLOT_PTR, PyObject}, call = Direct, abi = ABI.ABI3T) + @CApiBuiltin(ret = PyObjectTransfer, args = {CONST_PY_SLOT_PTR, PyObject}, call = Direct, abi = ABI.ABI3T, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, + NativeToPythonNode.class}) public static long PyModule_FromSlotsAndSpec(long slots, long specPtr) { if (slots == NULLPTR) { throw PRaiseNode.raiseStatic(null, SystemError, ErrorMessages.PYMODULE_FROMSLOTS_NULL_SLOTS); @@ -298,7 +305,7 @@ public static long PyModule_FromSlotsAndSpec(long slots, long specPtr) { return PythonToNativeInternalNode.executeNewRefUncached(module); } - @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct, abi = ABI.ABI3T) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct, abi = ABI.ABI3T, retConversion = int.class, argConversions = {NativeToPythonNode.class}) public static int PyModule_Exec(long modulePtr) { Object object = NativeToPythonInternalNode.executeUncached(modulePtr, false); if (object instanceof PythonModule module) { @@ -307,7 +314,7 @@ public static int PyModule_Exec(long modulePtr) { throw PRaiseNode.raiseStatic(null, TypeError, ErrorMessages.EXPECTED_MODULE_GOT_T, object); } - @CApiBuiltin(ret = Int, args = {PyObject, PY_SSIZE_T_PTR}, call = Direct, abi = ABI.ABI3T) + @CApiBuiltin(ret = Int, args = {PyObject, PY_SSIZE_T_PTR}, call = Direct, abi = ABI.ABI3T, retConversion = int.class, argConversions = {NativeToPythonNode.class, long.class}) public static int PyModule_GetStateSize(long modulePtr, long result) { Object object = NativeToPythonInternalNode.executeUncached(modulePtr, false); if (object instanceof PythonModule module) { @@ -318,7 +325,7 @@ public static int PyModule_GetStateSize(long modulePtr, long result) { throw PRaiseNode.raiseStatic(null, TypeError, ErrorMessages.EXPECTED_MODULE_GOT_T, object); } - @CApiBuiltin(ret = Int, args = {PyObject, VOID_PTR_LIST}, call = Direct, abi = ABI.ABI3T) + @CApiBuiltin(ret = Int, args = {PyObject, VOID_PTR_LIST}, call = Direct, abi = ABI.ABI3T, retConversion = int.class, argConversions = {NativeToPythonNode.class, long.class}) public static int PyModule_GetToken(long modulePtr, long result) { Object object = NativeToPythonInternalNode.executeUncached(modulePtr, false); if (object instanceof PythonModule module) { @@ -329,7 +336,7 @@ public static int PyModule_GetToken(long modulePtr, long result) { throw PRaiseNode.raiseStatic(null, TypeError, ErrorMessages.EXPECTED_MODULE_GOT_T, object); } - @CApiBuiltin(ret = Int, args = {PyObject, VOID_PTR_LIST}, call = Direct, abi = ABI.ABI3T) + @CApiBuiltin(ret = Int, args = {PyObject, VOID_PTR_LIST}, call = Direct, abi = ABI.ABI3T, retConversion = int.class, argConversions = {NativeToPythonNode.class, long.class}) public static int PyModule_GetToken_DuringGC(long modulePtr, long result) { Object object = NativeToPythonInternalNode.executeUncached(modulePtr, false); if (object instanceof PythonModule module) { @@ -340,7 +347,7 @@ public static int PyModule_GetToken_DuringGC(long modulePtr, long result) { return -1; } - @CApiBuiltin(ret = Pointer, args = {PyObject}, call = Direct, abi = ABI.ABI3T) + @CApiBuiltin(ret = Pointer, args = {PyObject}, call = Direct, abi = ABI.ABI3T, retConversion = long.class, argConversions = {NativeToPythonNode.class}) public static long PyModule_GetState_DuringGC(long modulePtr) { Object object = NativeToPythonInternalNode.executeUncached(modulePtr, false); if (object instanceof PythonModule module) { @@ -349,7 +356,7 @@ public static long PyModule_GetState_DuringGC(long modulePtr) { return NULLPTR; } - @CApiBuiltin(ret = Int, args = {PY_ABI_INFO_PTR, ConstCharPtr}, call = Direct, abi = ABI.ABI3T) + @CApiBuiltin(ret = Int, args = {PY_ABI_INFO_PTR, ConstCharPtr}, call = Direct, abi = ABI.ABI3T, retConversion = int.class, argConversions = {long.class, long.class}) public static int PyABIInfo_Check(long info, long moduleName) { TruffleString name = moduleName == NULLPTR ? T_EMPTY_STRING : (TruffleString) CharPtrToPythonNode.executeUncached(moduleName); return CExtNodes.checkAbiInfo(null, info, name); @@ -357,7 +364,7 @@ public static int PyABIInfo_Check(long info, long moduleName) { private static final CApiTiming TIMING_INVOKE_TRAVERSE_PROC = CApiTiming.create(true, "invokeTraverseProc"); - @CApiBuiltin(ret = Int, args = {PyObject, Pointer, Pointer}, call = Ignored) + @CApiBuiltin(ret = Int, args = {PyObject, Pointer, Pointer}, call = Ignored, retConversion = int.class, argConversions = {NativeToPythonNode.class, long.class, long.class}) public static int GraalPyPrivate_Module_Traverse(long selfPtr, long visitFun, long arg) { PythonModule self = (PythonModule) NativeToPythonInternalNode.executeUncached(selfPtr, false); @@ -376,7 +383,7 @@ public static int GraalPyPrivate_Module_Traverse(long selfPtr, long visitFun, lo return 0; } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyModule_GetFilenameObject extends CApiUnaryBuiltinNode { @Specialization static Object getFilename(PythonModule module, @@ -398,13 +405,13 @@ static Object error(@SuppressWarnings("unused") Object module, } } - @CApiBuiltin(ret = ArgDescriptor.Void, args = {PyModuleObject, PyModuleDef}, call = Ignored) + @CApiBuiltin(ret = ArgDescriptor.Void, args = {PyModuleObject, PyModuleDef}, call = Ignored, retConversion = void.class, argConversions = {NativeToPythonNode.class, long.class}) public static void GraalPyPrivate_Module_SetDef(long object, long value) { PythonModule module = (PythonModule) NativeToPythonInternalNode.executeUncached(object, false); module.setNativeModuleDef(value); } - @CApiBuiltin(ret = ArgDescriptor.Void, args = {PyModuleObject, Pointer}, call = Ignored) + @CApiBuiltin(ret = ArgDescriptor.Void, args = {PyModuleObject, Pointer}, call = Ignored, retConversion = void.class, argConversions = {NativeToPythonNode.class, long.class}) public static void GraalPyPrivate_Module_SetState(long object, long value) { PythonModule module = (PythonModule) NativeToPythonInternalNode.executeUncached(object, false); module.setNativeModuleState(value); diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextNamespaceBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextNamespaceBuiltins.java index e771cc71f5..c3842c39dd 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextNamespaceBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextNamespaceBuiltins.java @@ -48,7 +48,9 @@ import com.oracle.graal.python.PythonLanguage; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonInternalNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeInternalNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.common.HashingStorage; import com.oracle.graal.python.builtins.objects.common.HashingStorageNodes.HashingStorageGetIterator; import com.oracle.graal.python.builtins.objects.common.HashingStorageNodes.HashingStorageIterator; @@ -64,7 +66,7 @@ public final class PythonCextNamespaceBuiltins { - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) static long _PyNamespace_New(long dictPtr) { PythonLanguage language = PythonLanguage.get(null); PSimpleNamespace namespace = PFactory.createSimpleNamespace(language); diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextObjectBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextObjectBuiltins.java index 0719aa213a..cbee2c0826 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextObjectBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextObjectBuiltins.java @@ -94,7 +94,12 @@ import com.oracle.graal.python.builtins.objects.cext.PythonAbstractNativeObject; import com.oracle.graal.python.builtins.objects.cext.capi.CApiContext; import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.EnsurePythonObjectNode; +import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.ToPythonStringNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTiming; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.CharPtrToPythonNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.CharPtrToPythonStrictNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.HandleContext; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.HandlePointerConverter; @@ -184,7 +189,7 @@ private PythonCextObjectBuiltins() { private static final CApiTiming TIMING_GRAALPYPRIVATE_NOTIFYREFCOUNT = CApiTiming.create(false, "GraalPyPrivate_NotifyRefCount"); - @CApiBuiltin(ret = Void, args = {Pointer, Py_ssize_t}, call = Ignored, acquireGil = false, canRaise = false) + @CApiBuiltin(ret = Void, args = {Pointer, Py_ssize_t}, call = Ignored, acquireGil = false, canRaise = false, retConversion = void.class, argConversions = {long.class, long.class}) static void GraalPyPrivate_NotifyRefCount(long pointer, long refCount) { assert PythonContext.get(null).ownsGil(); CApiTiming.enter(); @@ -212,7 +217,7 @@ static void GraalPyPrivate_NotifyRefCount(long pointer, long refCount) { } } - @CApiBuiltin(ret = Void, args = {Pointer, Int}, call = Ignored) + @CApiBuiltin(ret = Void, args = {Pointer, Int}, call = Ignored, retConversion = void.class, argConversions = {long.class, int.class}) abstract static class GraalPyPrivate_BulkNotifyRefCount extends CApiBinaryBuiltinNode { @Specialization @@ -260,7 +265,8 @@ static Object doLong(long arrayPointer, int len, } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject, PyObject, Int}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject, PyObject, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + NativeToPythonNode.class, NativeToPythonNode.class, int.class}) abstract static class GraalPyPrivate_Object_Call1 extends CApiQuaternaryBuiltinNode { @Specialization static Object doGeneric(Object callable, Object argsObj, Object kwargsObj, int singleArg, @@ -280,7 +286,8 @@ static Object doGeneric(Object callable, Object argsObj, Object kwargsObj, int s } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject, PyObjectConstPtr, Py_ssize_t}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject, PyObjectConstPtr, Py_ssize_t}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { + NativeToPythonNode.class, NativeToPythonNode.class, long.class, long.class}) abstract static class GraalPyPrivate_Object_CallMethodObjArgs extends CApiQuaternaryBuiltinNode { @Specialization @@ -296,7 +303,8 @@ static Object doMethod(Object receiver, Object methodName, long argsArray, long } } - @CApiBuiltin(ret = Int, args = {PyObjectAsTruffleString, PyObject, PyObjectConstPtr, Py_ssize_t, PyObject, PyObjectPtr}, call = Ignored) + @CApiBuiltin(ret = Int, args = {PyObjectAsTruffleString, PyObject, PyObjectConstPtr, Py_ssize_t, PyObject, PyObjectPtr}, call = Ignored, retConversion = int.class, argConversions = { + ToPythonStringNode.class, NativeToPythonNode.class, long.class, long.class, NativeToPythonNode.class, long.class}) static int GraalPyPrivate_Object_VectorcallMethod(long methodNamePtr, long receiverPtr, long argsArray, long nargs, long kwnamesPtr, long resultPointer) { TruffleString methodName = CastToTruffleStringNode.castKnownStringUncached(NativeToPythonInternalNode.executeUncached(methodNamePtr, false)); Object receiver = NativeToPythonInternalNode.executeUncached(receiverPtr, false); @@ -351,7 +359,8 @@ private static Object[] readArguments(long argsArray, int nargs, return args; } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, ConstCharPtrAsTruffleString, PyObject, Int}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, ConstCharPtrAsTruffleString, PyObject, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { + NativeToPythonNode.class, CharPtrToPythonNode.class, NativeToPythonNode.class, int.class}) abstract static class GraalPyPrivate_Object_CallMethod1 extends CApiQuaternaryBuiltinNode { @Specialization static Object doGeneric(Object receiver, TruffleString methodName, Object argsObj, int singleArg, @@ -370,7 +379,8 @@ static Object doGeneric(Object receiver, TruffleString methodName, Object argsOb } // directly called without landing function - @CApiBuiltin(ret = PyObjectTransfer, args = {PyThreadState, PyObject, PyObjectConstPtr, Py_ssize_t, PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyThreadState, PyObject, PyObjectConstPtr, Py_ssize_t, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { + long.class, NativeToPythonNode.class, long.class, long.class, NativeToPythonNode.class}) abstract static class _PyObject_MakeTpCall extends CApi5BuiltinNode { private static final TruffleLogger LOGGER = CApiContext.getLogger(_PyObject_MakeTpCall.class); @@ -426,7 +436,7 @@ private static void logCallableType(Object callable) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyObject_Str extends CApiUnaryBuiltinNode { @Specialization(guards = "!isNoValue(obj)") Object doGeneric(Object obj, @@ -441,7 +451,7 @@ static TruffleString asciiNone(@SuppressWarnings("unused") PNone obj) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyObject_Repr extends CApiUnaryBuiltinNode { @Specialization(guards = "!isNoValue(obj)") Object doGeneric(Object obj, @@ -456,7 +466,7 @@ static TruffleString asciiNone(@SuppressWarnings("unused") PNone obj) { } } - @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class PyObject_DelItem extends CApiBinaryBuiltinNode { @Specialization static Object doGeneric(Object obj, Object k, @@ -467,7 +477,8 @@ static Object doGeneric(Object obj, Object k, } } - @CApiBuiltin(ret = Int, args = {PyObject, PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject, PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class, + NativeToPythonNode.class}) abstract static class PyObject_SetItem extends CApiTernaryBuiltinNode { @Specialization static Object doGeneric(Object obj, Object k, Object v, @@ -478,7 +489,7 @@ static Object doGeneric(Object obj, Object k, Object v, } } - @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class PyObject_IsInstance extends CApiBinaryBuiltinNode { @Specialization static int doGeneric(Object obj, Object typ, @@ -487,7 +498,7 @@ static int doGeneric(Object obj, Object typ, } } - @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class PyObject_IsSubclass extends CApiBinaryBuiltinNode { @Specialization static int doGeneric(Object obj, Object typ, @@ -496,7 +507,7 @@ static int doGeneric(Object obj, Object typ, } } - @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class PyObject_AsFileDescriptor extends CApiUnaryBuiltinNode { @Specialization static Object asFileDescriptor(Object obj, @@ -519,7 +530,8 @@ static Object asFileDescriptor(Object obj, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + NativeToPythonNode.class}) abstract static class GraalPyPrivate_Object_GenericGetAttr extends CApiBinaryBuiltinNode { @Specialization static Object getAttr(Object obj, Object attr, @@ -528,7 +540,8 @@ static Object getAttr(Object obj, Object attr, } } - @CApiBuiltin(ret = Int, args = {PyObject, PyObject, PyObject}, call = Ignored) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject, PyObject}, call = Ignored, retConversion = int.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class, + NativeToPythonNode.class}) abstract static class GraalPyPrivate_Object_GenericSetAttr extends CApiTernaryBuiltinNode { @Specialization static int setAttr(Object obj, Object attr, Object value, @@ -538,7 +551,7 @@ static int setAttr(Object obj, Object attr, Object value, } } - @CApiBuiltin(ret = Int, args = {PyObject, PyObject, PyObjectPtr}, call = Ignored) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject, PyObjectPtr}, call = Ignored, retConversion = int.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class, long.class}) abstract static class GraalPyPrivate_Object_GetOptionalAttr extends CApiTernaryBuiltinNode { @Specialization static int getOptionalAttr(Object obj, Object attr, long resultPointer, @@ -561,7 +574,8 @@ static int getOptionalAttr(Object obj, Object attr, long resultPointer, } } - @CApiBuiltin(ret = Int, args = {PyObject, PyObjectAsTruffleString, PyObjectPtr}, call = Ignored) + @CApiBuiltin(ret = Int, args = {PyObject, PyObjectAsTruffleString, PyObjectPtr}, call = Ignored, retConversion = int.class, argConversions = {NativeToPythonNode.class, ToPythonStringNode.class, + long.class}) abstract static class GraalPyPrivate_Object_GetMethod extends CApiTernaryBuiltinNode { @Specialization static int getMethod(Object receiver, TruffleString name, long resultPointer, @@ -587,7 +601,7 @@ static int getMethod(Object receiver, TruffleString name, long resultPointer, } } - @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtr, PyObjectPtr}, call = Ignored) + @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtr, PyObjectPtr}, call = Ignored, retConversion = int.class, argConversions = {NativeToPythonNode.class, long.class, long.class}) abstract static class GraalPyPrivate_Object_GetOptionalAttrString extends CApiTernaryBuiltinNode { @Specialization static int getOptionalAttr(Object obj, long attrPointer, long resultPointer, @@ -616,7 +630,7 @@ static int getOptionalAttr(Object obj, long attrPointer, long resultPointer, * Moving this to pure-C regresses, because creating the TypeError through the C error API is * slower than upcalling and raising from Java. */ - @CApiBuiltin(ret = Py_hash_t, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Py_hash_t, args = {PyObject}, call = Direct, retConversion = long.class, argConversions = {NativeToPythonNode.class}) abstract static class PyObject_HashNotImplemented extends CApiUnaryBuiltinNode { @Specialization static long unhashable(Object obj, @@ -625,13 +639,13 @@ static long unhashable(Object obj, } } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer}, call = Ignored) + @CApiBuiltin(ret = Int, args = {PyObjectRawPointer}, call = Ignored, retConversion = int.class, argConversions = {long.class}) static int GraalPyPrivate_Object_IsTrue(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); return PyObjectIsTrueNode.executeUncached(obj) ? 1 : 0; } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyObject_Bytes extends CApiUnaryBuiltinNode { @Specialization(guards = "isBuiltinBytes(bytes)") static Object bytes(PBytes bytes) { @@ -672,7 +686,7 @@ static Object doGeneric(Object obj, } } - @CApiBuiltin(ret = PyObjectTransfer, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {}) abstract static class GraalPyPrivate_NotImplemented extends CApiNullaryBuiltinNode { @Specialization static Object run() { @@ -680,7 +694,7 @@ static Object run() { } } - @CApiBuiltin(ret = PyObjectTransfer, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {}) abstract static class GraalPyPrivate_NoValue extends CApiNullaryBuiltinNode { @Specialization static PNone doNoValue() { @@ -688,7 +702,7 @@ static PNone doNoValue() { } } - @CApiBuiltin(ret = PyObjectTransfer, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {}) abstract static class GraalPyPrivate_None extends CApiNullaryBuiltinNode { @Specialization static PNone doNativeNone() { @@ -696,7 +710,7 @@ static PNone doNativeNone() { } } - @CApiBuiltin(ret = Void, args = {PyVarObject, Py_ssize_t}, call = Ignored) + @CApiBuiltin(ret = Void, args = {PyVarObject, Py_ssize_t}, call = Ignored, retConversion = void.class, argConversions = {NativeToPythonNode.class, long.class}) abstract static class GraalPyPrivate_SET_SIZE extends CApiBinaryBuiltinNode { @Specialization static PNone set(PSequence obj, long size, @@ -723,7 +737,7 @@ static PNone set(PSequence obj, long size, } } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer}, call = Ignored) + @CApiBuiltin(ret = Int, args = {PyObjectRawPointer}, call = Ignored, retConversion = int.class, argConversions = {long.class}) abstract static class GraalPyPrivate_Object_IsFreed extends CApiUnaryBuiltinNode { @Specialization static int doLong(long pointer, @@ -743,7 +757,7 @@ static int doLong(long pointer, } } - @CApiBuiltin(ret = Void, args = {Pointer}, call = Ignored) + @CApiBuiltin(ret = Void, args = {Pointer}, call = Ignored, retConversion = void.class, argConversions = {long.class}) abstract static class GraalPyPrivate_Object_Dump extends CApiUnaryBuiltinNode { @Specialization @@ -791,7 +805,7 @@ static int doGeneric(long pointer) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyObject_ASCII extends CApiUnaryBuiltinNode { @Specialization(guards = "!isNoValue(obj)") static Object ascii(Object obj, @@ -806,7 +820,8 @@ static TruffleString asciiNone(@SuppressWarnings("unused") PNone obj) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + NativeToPythonNode.class}) abstract static class PyObject_Format extends CApiBinaryBuiltinNode { @Specialization static Object ascii(Object obj, Object spec, @@ -815,14 +830,14 @@ static Object ascii(Object obj, Object spec, } } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Ignored) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Ignored, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_Object_GetAIter(long objectPtr) { Object object = NativeToPythonInternalNode.executeUncached(objectPtr, false); Object result = PyObjectGetAIter.executeUncached(object); return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Ignored) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Ignored, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_Object_GetIter(long objectPtr) { Object object = NativeToPythonInternalNode.executeUncached(objectPtr, false); Object result = PyObjectGetIter.executeUncached(object); @@ -833,7 +848,7 @@ static long GraalPyPrivate_Object_GetIter(long objectPtr) { * Moving this to pure C is much faster (100x) for true native tp_hash, but hashing managed * objects (e.g. Strings) regresses (also by ~100x). */ - @CApiBuiltin(ret = Py_hash_t, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Py_hash_t, args = {PyObject}, call = Direct, retConversion = long.class, argConversions = {NativeToPythonNode.class}) abstract static class PyObject_Hash extends CApiUnaryBuiltinNode { @Specialization static long hash(Object object, @@ -843,7 +858,7 @@ static long hash(Object object, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyObject_Dir extends CApiUnaryBuiltinNode { @Specialization static Object dir(Object object, @@ -853,7 +868,7 @@ static Object dir(Object object, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Object_GenericGetDict extends CApiUnaryBuiltinNode { @Specialization static Object getDict(Object object, @@ -863,7 +878,7 @@ static Object getDict(Object object, } } - @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Ignored) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Ignored, retConversion = int.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class GraalPyPrivate_Is extends CApiBinaryBuiltinNode { @Specialization static int isTrue(Object a, Object b, @@ -872,7 +887,8 @@ static int isTrue(Object a, Object b, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, ConstCharPtrAsTruffleStringStrict}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, ConstCharPtrAsTruffleStringStrict}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { + NativeToPythonNode.class, CharPtrToPythonStrictNode.class}) abstract static class GraalPyPrivate_Object_GetAttrString extends CApiBinaryBuiltinNode { @Specialization static Object doGeneric(Object v, TruffleString name, @@ -882,7 +898,8 @@ static Object doGeneric(Object v, TruffleString name, } } - @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtrAsTruffleStringStrict, PyObject}, call = Ignored) + @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtrAsTruffleStringStrict, PyObject}, call = Ignored, retConversion = int.class, argConversions = {NativeToPythonNode.class, + CharPtrToPythonStrictNode.class, NativeToPythonNode.class}) abstract static class GraalPyPrivate_Object_SetAttrString extends CApiTernaryBuiltinNode { @Specialization static int doGeneric(Object v, TruffleString name, Object w, diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPickleBufferBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPickleBufferBuiltins.java index 9f9aaa0e67..1c12825697 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPickleBufferBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPickleBufferBuiltins.java @@ -49,6 +49,8 @@ import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiUnaryBuiltinNode; import com.oracle.graal.python.builtins.modules.pickle.PPickleBuffer; import com.oracle.graal.python.builtins.objects.buffer.PythonBufferAccessLibrary; +import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.ToNativeBorrowedNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; import com.oracle.graal.python.nodes.ErrorMessages; import com.oracle.graal.python.nodes.PRaiseNode; import com.oracle.truffle.api.dsl.Bind; @@ -59,7 +61,7 @@ public final class PythonCextPickleBufferBuiltins { - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_PickleBuffer_viewobj extends CApiUnaryBuiltinNode { @Specialization static Object getviewobj(PPickleBuffer object, diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPosixmoduleBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPosixmoduleBuiltins.java index cde0bb10df..ebb80711b9 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPosixmoduleBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPosixmoduleBuiltins.java @@ -46,6 +46,8 @@ import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiUnaryBuiltinNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.lib.PyOSFSPathNode; import com.oracle.truffle.api.dsl.Bind; import com.oracle.truffle.api.dsl.Cached; @@ -54,7 +56,7 @@ public final class PythonCextPosixmoduleBuiltins { - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyOS_FSPath extends CApiUnaryBuiltinNode { @Specialization static Object doit(Object path, diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyLifecycleBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyLifecycleBuiltins.java index 2d10e11f19..02b27a576e 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyLifecycleBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyLifecycleBuiltins.java @@ -51,7 +51,7 @@ public final class PythonCextPyLifecycleBuiltins { - @CApiBuiltin(ret = Int, args = {func_voidvoid}, call = Direct) + @CApiBuiltin(ret = Int, args = {func_voidvoid}, call = Direct, retConversion = int.class, argConversions = {long.class}) abstract static class Py_AtExit extends CApiUnaryBuiltinNode { @Specialization diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyStateBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyStateBuiltins.java index 58800a65ea..0da63705c3 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyStateBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyStateBuiltins.java @@ -59,8 +59,11 @@ import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiUnaryBuiltinNode; import com.oracle.graal.python.builtins.objects.PNone; import com.oracle.graal.python.builtins.objects.cext.capi.CApiContext; +import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.ToNativeBorrowedNode; import com.oracle.graal.python.builtins.objects.cext.capi.PThreadState; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.dict.PDict; import com.oracle.graal.python.builtins.objects.frame.PFrame; import com.oracle.graal.python.builtins.objects.ints.PInt; @@ -87,7 +90,7 @@ public final class PythonCextPyStateBuiltins { private static final TruffleLogger LOGGER = CApiContext.getLogger(PythonCextPyStateBuiltins.class); - @CApiBuiltin(ret = Int, args = {}, acquireGil = false, call = Ignored) + @CApiBuiltin(ret = Int, args = {}, acquireGil = false, call = Ignored, retConversion = int.class, argConversions = {}) static int GraalPyPrivate_GILState_Check() { return PythonContext.get(null).ownsGil() ? 1 : 0; } @@ -99,7 +102,7 @@ static int GraalPyPrivate_GILState_Check() { * state back in is equivalent to PyEval_RestoreThread(). Unlike CPython, GraalPy cannot install * an arbitrary native thread-state pointer independently of the Java thread state. */ - @CApiBuiltin(ret = PyThreadState, args = {PyThreadState}, acquireGil = false, call = Direct) + @CApiBuiltin(ret = PyThreadState, args = {PyThreadState}, acquireGil = false, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyThreadState_Swap(long newThreadState) { long oldThreadState = PythonContext.get(null).ownsGil() ? PythonCextCEvalBuiltins.PyEval_SaveThread() : NULLPTR; if (newThreadState != NULLPTR) { @@ -108,13 +111,13 @@ static long PyThreadState_Swap(long newThreadState) { return oldThreadState; } - @CApiBuiltin(ret = Int, args = {}, acquireGil = false, call = Ignored) + @CApiBuiltin(ret = Int, args = {}, acquireGil = false, call = Ignored, retConversion = int.class, argConversions = {}) static int GraalPyPrivate_GILState_Ensure() { boolean acquired = GilNode.getUncached().acquire(); return acquired ? 1 : 0; } - @CApiBuiltin(ret = Void, args = {}, acquireGil = false, call = Ignored) + @CApiBuiltin(ret = Void, args = {}, acquireGil = false, call = Ignored, retConversion = void.class, argConversions = {}) static void GraalPyPrivate_GILState_Release() { GilNode.getUncached().release(true); } @@ -124,7 +127,7 @@ static void GraalPyPrivate_GILState_Release() { * the C API, but were blocked at that time and therefore could not process the thread-local * action that eagerly initializes their native 'tstate_current' TLS slot. */ - @CApiBuiltin(ret = PyThreadState, args = {Pointer}, acquireGil = false, call = Ignored) + @CApiBuiltin(ret = PyThreadState, args = {Pointer}, acquireGil = false, call = Ignored, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_ThreadState_Get(long tstateCurrentPtr) { PythonContext context = PythonContext.get(null); @@ -150,7 +153,7 @@ static long GraalPyPrivate_ThreadState_Get(long tstateCurrentPtr) { return nativeThreadState; } - @CApiBuiltin(ret = Void, args = {}, call = Ignored) + @CApiBuiltin(ret = Void, args = {}, call = Ignored, retConversion = void.class, argConversions = {}) static Object GraalPyPrivate_BeforeThreadDetach() { /* * This is the PyGILState_Release path for native-created threads. CPython clears its own @@ -164,7 +167,7 @@ static Object GraalPyPrivate_BeforeThreadDetach() { return PNone.NO_VALUE; } - @CApiBuiltin(ret = PyObjectBorrowed, args = {}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {}) abstract static class PyThreadState_GetDict extends CApiNullaryBuiltinNode { @Specialization @@ -177,7 +180,7 @@ static PDict get( } } - @CApiBuiltin(ret = Int, args = {ArgDescriptor.UNSIGNED_LONG, PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {ArgDescriptor.UNSIGNED_LONG, PyObject}, call = Direct, retConversion = int.class, argConversions = {long.class, NativeToPythonNode.class}) abstract static class PyThreadState_SetAsyncExc extends CApiBinaryBuiltinNode { public static final TruffleLogger LOGGER = CApiContext.getLogger(PyThreadState_SetAsyncExc.class); @@ -229,7 +232,7 @@ protected void perform(Access access) { } } - @CApiBuiltin(ret = PyFrameObjectTransfer, args = {PyThreadState}, call = Direct) + @CApiBuiltin(ret = PyFrameObjectTransfer, args = {PyThreadState}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class}) abstract static class PyThreadState_GetFrame extends CApiUnaryBuiltinNode { @Specialization Object get(@SuppressWarnings("unused") long threadState, @@ -239,7 +242,7 @@ Object get(@SuppressWarnings("unused") long threadState, } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {Py_ssize_t}, call = Ignored) + @CApiBuiltin(ret = PyObjectBorrowed, args = {Py_ssize_t}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {long.class}) abstract static class GraalPyPrivate_State_FindModule extends CApiUnaryBuiltinNode { @Specialization diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyThreadBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyThreadBuiltins.java index 31941ae8bb..19c5570906 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyThreadBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyThreadBuiltins.java @@ -47,7 +47,7 @@ public final class PythonCextPyThreadBuiltins { - @CApiBuiltin(ret = UNSIGNED_LONG, args = {}, call = Direct, acquireGil = false, canRaise = false) + @CApiBuiltin(ret = UNSIGNED_LONG, args = {}, call = Direct, acquireGil = false, canRaise = false, retConversion = long.class, argConversions = {}) public static long PyThread_get_thread_ident() { return Thread.currentThread().threadId(); } diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPythonRunBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPythonRunBuiltins.java index b9739c3c26..753a2e20a0 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPythonRunBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPythonRunBuiltins.java @@ -60,6 +60,9 @@ import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApi5BuiltinNode; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiTernaryBuiltinNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.CharPtrToPythonNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.module.PythonModule; import com.oracle.graal.python.lib.PyMappingCheckNode; import com.oracle.graal.python.lib.PyObjectLookupAttr; @@ -80,7 +83,9 @@ public final class PythonCextPythonRunBuiltins { private static final int Py_file_input = 257; private static final int Py_eval_input = 258; - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, Int, PyObject, PyObject, PY_COMPILER_FLAGS}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, Int, PyObject, PyObject, + PY_COMPILER_FLAGS}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonNode.class, int.class, NativeToPythonNode.class, + NativeToPythonNode.class, long.class}) abstract static class PyRun_StringFlags extends CApi5BuiltinNode { @Specialization(guards = "checkArgs(source, globals, locals, inliningTarget, isMapping)", limit = "1") @@ -127,7 +132,8 @@ protected static boolean checkArgs(Object source, Object globals, Object locals, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString, Int}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString, Int}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { + CharPtrToPythonNode.class, CharPtrToPythonNode.class, int.class}) abstract static class Py_CompileString extends CApiTernaryBuiltinNode { @Specialization(guards = {"isString(source)", "isString(filename)"}) static Object compile(Object source, Object filename, int type, @@ -146,7 +152,8 @@ static Object fail(Object source, Object filename, Object type, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString, Int, PY_COMPILER_FLAGS, Int}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString, Int, PY_COMPILER_FLAGS, + Int}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonNode.class, CharPtrToPythonNode.class, int.class, long.class, int.class}) abstract static class Py_CompileStringExFlags extends CApi5BuiltinNode { @Specialization(guards = {"isString(source)", "isString(filename)"}) static Object compile(Object source, Object filename, int type, @@ -180,7 +187,8 @@ static Object fail(Object source, Object filename, Object type, long flags, Obje } } - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, PyObject, Int, PY_COMPILER_FLAGS, Int}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, PyObject, Int, PY_COMPILER_FLAGS, Int}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { + CharPtrToPythonNode.class, NativeToPythonNode.class, int.class, long.class, int.class}) abstract static class Py_CompileStringObject extends CApi5BuiltinNode { @Specialization(guards = "isString(source)") static Object compile(Object source, Object filename, int type, diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSetBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSetBuiltins.java index 387e38818f..0b8b838a0e 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSetBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSetBuiltins.java @@ -58,7 +58,9 @@ import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.EnsurePythonObjectNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTiming; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonInternalNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeInternalNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.common.HashingCollectionNodes; import com.oracle.graal.python.builtins.objects.common.HashingStorage; import com.oracle.graal.python.builtins.objects.common.HashingStorageNodes.HashingStorageGetItem; @@ -85,7 +87,7 @@ public final class PythonCextSetBuiltins { private static final CApiTiming TIMING_PYSET_NEW = CApiTiming.create(false, "PySet_New"); - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, acquireGil = false) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, acquireGil = false, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) static long PySet_New(long iterablePtr) { CApiTiming.enter(); try { @@ -103,7 +105,7 @@ static long PySet_New(long iterablePtr) { } } - @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class PySet_Contains extends CApiBinaryBuiltinNode { @Specialization static int contains(PSet anyset, Object item, @@ -129,7 +131,7 @@ int fallback(@SuppressWarnings("unused") Object anyset, @SuppressWarnings("unuse } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PySet_Pop extends CApiUnaryBuiltinNode { @Specialization static Object pop(PSet set, @@ -143,7 +145,7 @@ Object fallback(Object set) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyFrozenSet_New extends CApiUnaryBuiltinNode { @Specialization(guards = {"!isNone(iterable)", "!isNoValue(iterable)"}) static Object newFrozenSet(Object iterable, @@ -159,7 +161,7 @@ static Object newFrozenSet(PNone iterable, } } - @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class PySet_Discard extends CApiBinaryBuiltinNode { @Specialization(guards = {"!isNone(s)", "!isNoValue(s)"}) @@ -174,7 +176,7 @@ int fallback(Object set, @SuppressWarnings("unused") Object key) { } } - @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class PySet_Clear extends CApiUnaryBuiltinNode { @Specialization(guards = {"!isNone(s)", "!isNoValue(s)"}) @@ -190,7 +192,7 @@ int fallback(Object set) { } } - @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class PySet_Add extends CApiBinaryBuiltinNode { @Specialization @@ -212,7 +214,7 @@ static int add(Object self, @SuppressWarnings("unused") Object o, * A pure-C implementation regressed a mixed managed/native set/frozenset workload by about * 1.16x. */ - @CApiBuiltin(ret = Py_ssize_t, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = Py_ssize_t, args = {PyObject}, call = Direct, retConversion = long.class, argConversions = {NativeToPythonNode.class}) abstract static class PySet_Size extends CApiUnaryBuiltinNode { @Specialization static long get(PBaseSet object, diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSliceBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSliceBuiltins.java index abc911b5a3..6c6b7eb36d 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSliceBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSliceBuiltins.java @@ -51,6 +51,8 @@ import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiTernaryBuiltinNode; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiUnaryBuiltinNode; import com.oracle.graal.python.builtins.objects.PNone; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.ellipsis.PEllipsis; import com.oracle.graal.python.builtins.objects.slice.PIntSlice; import com.oracle.graal.python.builtins.objects.slice.PObjectSlice; @@ -65,7 +67,8 @@ public final class PythonCextSliceBuiltins { - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class PySlice_New extends CApiTernaryBuiltinNode { @Specialization static Object slice(Object start, Object stop, Object step, @@ -82,7 +85,7 @@ private static Object prepare(Object obj) { } } - @CApiBuiltin(ret = PyObjectTransfer, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {}) abstract static class GraalPyPrivate_Ellipsis extends CApiNullaryBuiltinNode { @Specialization static Object run() { @@ -90,7 +93,7 @@ static Object run() { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPySlice_Start extends CApiUnaryBuiltinNode { @Specialization static Object get(PIntSlice slice) { @@ -109,7 +112,7 @@ static Object error(Object slice, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPySlice_Stop extends CApiUnaryBuiltinNode { @Specialization static Object get(PIntSlice slice) { @@ -128,7 +131,7 @@ static Object error(Object slice, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPySlice_Step extends CApiUnaryBuiltinNode { @Specialization static Object get(PIntSlice slice) { diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSlotBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSlotBuiltins.java index 7f30dc2894..60e2400d26 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSlotBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSlotBuiltins.java @@ -89,8 +89,10 @@ import com.oracle.graal.python.builtins.objects.cext.capi.CApiContext; import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes; import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.ObSizeNode; +import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.ToNativeBorrowedNode; import com.oracle.graal.python.builtins.objects.cext.capi.PyMethodDefHelper; import com.oracle.graal.python.builtins.objects.cext.capi.PySequenceArrayWrapper; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.HandlePointerConverter; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonInternalNode; @@ -128,21 +130,21 @@ public final class PythonCextSlotBuiltins { - @CApiBuiltin(ret = PyObjectPtr, args = {PyListObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectPtr, args = {PyListObject}, call = Ignored, retConversion = long.class, argConversions = {NativeToPythonNode.class}) public static long GraalPyPrivate_Get_PyListObject_ob_item(long ptr) { PList object = (PList) NativeToPythonInternalNode.executeUncached(ptr, false); assert !(object.getSequenceStorage() instanceof NativeByteSequenceStorage); return PySequenceArrayWrapper.ensureNativeSequence(object); } - @CApiBuiltin(ret = PyObjectPtr, args = {PyTupleObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectPtr, args = {PyTupleObject}, call = Ignored, retConversion = long.class, argConversions = {NativeToPythonNode.class}) public static long GraalPyPrivate_Get_PyTupleObject_ob_item(long ptr) { PTuple object = (PTuple) NativeToPythonInternalNode.executeUncached(ptr, false); assert !(object.getSequenceStorage() instanceof NativeByteSequenceStorage); return PySequenceArrayWrapper.ensureNativeSequence(object); } - @CApiBuiltin(ret = PyTypeObjectBorrowed, args = {PyCMethodObject}, call = Ignored) + @CApiBuiltin(ret = PyTypeObjectBorrowed, args = {PyCMethodObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyCMethodObject_mm_class extends CApiUnaryBuiltinNode { @Specialization static Object get(PBuiltinMethod object) { @@ -150,7 +152,7 @@ static Object get(PBuiltinMethod object) { } } - @CApiBuiltin(ret = PyMethodDef, args = {PyCFunctionObject}, call = Ignored) + @CApiBuiltin(ret = PyMethodDef, args = {PyCFunctionObject}, call = Ignored, retConversion = long.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyCFunctionObject_m_ml extends CApiUnaryBuiltinNode { @Specialization static long get(PythonBuiltinObject object, @@ -174,7 +176,7 @@ static long get(PythonBuiltinObject object, } } - @CApiBuiltin(ret = PyMethodDef, args = {PyCFunctionObject, PyMethodDef}, call = Ignored) + @CApiBuiltin(ret = PyMethodDef, args = {PyCFunctionObject, PyMethodDef}, call = Ignored, retConversion = long.class, argConversions = {NativeToPythonNode.class, long.class}) abstract static class GraalPyPrivate_Set_PyCFunctionObject_m_ml extends CApiBinaryBuiltinNode { @Specialization static long get(PythonBuiltinObject object, long methodDefPtr, @@ -194,7 +196,7 @@ static long get(PythonBuiltinObject object, long methodDefPtr, } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyCFunctionObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyCFunctionObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyCFunctionObject_m_module extends CApiUnaryBuiltinNode { @Specialization Object get(Object object, @@ -205,7 +207,7 @@ Object get(Object object, } } - @CApiBuiltin(ret = Void, args = {PyCFunctionObject, PyObjectBorrowed}, call = Ignored) + @CApiBuiltin(ret = Void, args = {PyCFunctionObject, PyObjectBorrowed}, call = Ignored, retConversion = void.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class GraalPyPrivate_Set_PyCFunctionObject_m_module extends CApiBinaryBuiltinNode { @Specialization Object set(Object object, Object value, @@ -216,7 +218,7 @@ Object set(Object object, Object value, } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyCFunctionObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyCFunctionObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyCFunctionObject_m_self extends CApiUnaryBuiltinNode { @Specialization static Object get(PBuiltinMethod object) { @@ -229,7 +231,7 @@ static Object get(PMethod object) { } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyCFunctionObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyCFunctionObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyCFunctionObject_m_weakreflist extends CApiUnaryBuiltinNode { @Specialization static int get(@SuppressWarnings("unused") Object object) { @@ -237,7 +239,7 @@ static int get(@SuppressWarnings("unused") Object object) { } } - @CApiBuiltin(ret = vectorcallfunc, args = {PyCFunctionObject}, call = Ignored) + @CApiBuiltin(ret = vectorcallfunc, args = {PyCFunctionObject}, call = Ignored, retConversion = long.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyCFunctionObject_vectorcall extends CApiUnaryBuiltinNode { @Specialization static long get(@SuppressWarnings("unused") Object object) { @@ -245,7 +247,7 @@ static long get(@SuppressWarnings("unused") Object object) { } } - @CApiBuiltin(ret = Pointer, args = {PyByteArrayObject}, call = Ignored) + @CApiBuiltin(ret = Pointer, args = {PyByteArrayObject}, call = Ignored, retConversion = long.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyByteArrayObject_ob_start extends CApiUnaryBuiltinNode { @Specialization @@ -255,7 +257,7 @@ static long doObStart(PByteArray object) { } } - @CApiBuiltin(ret = Py_ssize_t, args = {PyByteArrayObject}, call = Ignored) + @CApiBuiltin(ret = Py_ssize_t, args = {PyByteArrayObject}, call = Ignored, retConversion = long.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyByteArrayObject_ob_exports extends CApiUnaryBuiltinNode { @Specialization @@ -264,7 +266,7 @@ static long get(PByteArray object) { } } - @CApiBuiltin(ret = Void, args = {PyByteArrayObject, Int}, call = Ignored) + @CApiBuiltin(ret = Void, args = {PyByteArrayObject, Int}, call = Ignored, retConversion = void.class, argConversions = {NativeToPythonNode.class, int.class}) abstract static class GraalPyPrivate_Set_PyByteArrayObject_ob_exports extends CApiBinaryBuiltinNode { @Specialization @@ -274,7 +276,7 @@ static Object set(PByteArray object, int value) { } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyDescrObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyDescrObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyDescrObject_d_name extends CApiUnaryBuiltinNode { @Specialization @@ -288,7 +290,7 @@ static Object get(GetSetDescriptor object) { } } - @CApiBuiltin(ret = PyTypeObjectBorrowed, args = {PyDescrObject}, call = Ignored) + @CApiBuiltin(ret = PyTypeObjectBorrowed, args = {PyDescrObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyDescrObject_d_type extends CApiUnaryBuiltinNode { @Specialization @@ -303,7 +305,7 @@ static Object get(GetSetDescriptor object) { } } - @CApiBuiltin(ret = Int, args = {PyFrameObject}, call = Ignored) + @CApiBuiltin(ret = Int, args = {PyFrameObject}, call = Ignored, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyFrameObject_f_lineno extends CApiUnaryBuiltinNode { @Specialization static Object get(PFrame frame, @@ -312,7 +314,7 @@ static Object get(PFrame frame, } } - @CApiBuiltin(ret = Pointer, args = {PyGetSetDef}, call = Ignored) + @CApiBuiltin(ret = Pointer, args = {PyGetSetDef}, call = Ignored, retConversion = long.class, argConversions = {long.class}) abstract static class GraalPyPrivate_Get_PyGetSetDef_closure extends CApiUnaryBuiltinNode { @Specialization static long get(@SuppressWarnings("unused") long object) { @@ -320,7 +322,7 @@ static long get(@SuppressWarnings("unused") long object) { } } - @CApiBuiltin(ret = ConstCharPtrAsTruffleString, args = {PyGetSetDef}, call = Ignored) + @CApiBuiltin(ret = ConstCharPtrAsTruffleString, args = {PyGetSetDef}, call = Ignored, retConversion = long.class, argConversions = {long.class}) abstract static class GraalPyPrivate_Get_PyGetSetDef_doc extends CApiUnaryBuiltinNode { @Specialization long get(@SuppressWarnings("unused") long object) { @@ -328,7 +330,7 @@ long get(@SuppressWarnings("unused") long object) { } } - @CApiBuiltin(ret = getter, args = {PyGetSetDef}, call = Ignored) + @CApiBuiltin(ret = getter, args = {PyGetSetDef}, call = Ignored, retConversion = long.class, argConversions = {long.class}) abstract static class GraalPyPrivate_Get_PyGetSetDef_get extends CApiUnaryBuiltinNode { @Specialization static long get(@SuppressWarnings("unused") long object) { @@ -336,7 +338,7 @@ static long get(@SuppressWarnings("unused") long object) { } } - @CApiBuiltin(ret = ConstCharPtrAsTruffleString, args = {PyGetSetDef}, call = Ignored) + @CApiBuiltin(ret = ConstCharPtrAsTruffleString, args = {PyGetSetDef}, call = Ignored, retConversion = long.class, argConversions = {long.class}) abstract static class GraalPyPrivate_Get_PyGetSetDef_name extends CApiUnaryBuiltinNode { @Specialization long get(@SuppressWarnings("unused") long object) { @@ -344,7 +346,7 @@ long get(@SuppressWarnings("unused") long object) { } } - @CApiBuiltin(ret = setter, args = {PyGetSetDef}, call = Ignored) + @CApiBuiltin(ret = setter, args = {PyGetSetDef}, call = Ignored, retConversion = long.class, argConversions = {long.class}) abstract static class GraalPyPrivate_Get_PyGetSetDef_set extends CApiUnaryBuiltinNode { @Specialization static long get(@SuppressWarnings("unused") long object) { @@ -352,7 +354,7 @@ static long get(@SuppressWarnings("unused") long object) { } } - @CApiBuiltin(ret = PyMethodDef, args = {PyMethodDescrObject}, call = Ignored) + @CApiBuiltin(ret = PyMethodDef, args = {PyMethodDescrObject}, call = Ignored, retConversion = long.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyMethodDescrObject_d_method extends CApiUnaryBuiltinNode { @Specialization @@ -371,7 +373,7 @@ static long get(PBuiltinFunction builtinFunction, } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyInstanceMethodObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyInstanceMethodObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyInstanceMethodObject_func extends CApiUnaryBuiltinNode { @Specialization static Object get(PDecoratedMethod object) { @@ -379,7 +381,7 @@ static Object get(PDecoratedMethod object) { } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyMethodObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyMethodObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyMethodObject_im_func extends CApiUnaryBuiltinNode { @Specialization static Object get(PBuiltinMethod object) { @@ -392,7 +394,7 @@ static Object get(PMethod object) { } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyMethodObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyMethodObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyMethodObject_im_self extends CApiUnaryBuiltinNode { @Specialization @@ -406,7 +408,7 @@ static Object get(PMethod object) { } } - @CApiBuiltin(ret = ConstCharPtrAsTruffleString, args = {PyModuleDef}, call = Ignored) + @CApiBuiltin(ret = ConstCharPtrAsTruffleString, args = {PyModuleDef}, call = Ignored, retConversion = long.class, argConversions = {long.class}) abstract static class GraalPyPrivate_Get_PyModuleDef_m_doc extends CApiUnaryBuiltinNode { @Specialization static int get(@SuppressWarnings("unused") Object object) { @@ -414,7 +416,7 @@ static int get(@SuppressWarnings("unused") Object object) { } } - @CApiBuiltin(ret = PyMethodDef, args = {PyModuleDef}, call = Ignored) + @CApiBuiltin(ret = PyMethodDef, args = {PyModuleDef}, call = Ignored, retConversion = long.class, argConversions = {long.class}) abstract static class GraalPyPrivate_Get_PyModuleDef_m_methods extends CApiUnaryBuiltinNode { @Specialization static int get(@SuppressWarnings("unused") long object) { @@ -422,7 +424,7 @@ static int get(@SuppressWarnings("unused") long object) { } } - @CApiBuiltin(ret = ConstCharPtrAsTruffleString, args = {PyModuleDef}, call = Ignored) + @CApiBuiltin(ret = ConstCharPtrAsTruffleString, args = {PyModuleDef}, call = Ignored, retConversion = long.class, argConversions = {long.class}) abstract static class GraalPyPrivate_Get_PyModuleDef_m_name extends CApiUnaryBuiltinNode { @Specialization static int get(@SuppressWarnings("unused") long object) { @@ -430,7 +432,7 @@ static int get(@SuppressWarnings("unused") long object) { } } - @CApiBuiltin(ret = Py_ssize_t, args = {PyModuleDef}, call = Ignored) + @CApiBuiltin(ret = Py_ssize_t, args = {PyModuleDef}, call = Ignored, retConversion = long.class, argConversions = {long.class}) abstract static class GraalPyPrivate_Get_PyModuleDef_m_size extends CApiUnaryBuiltinNode { @Specialization static long get(@SuppressWarnings("unused") long object) { @@ -438,7 +440,7 @@ static long get(@SuppressWarnings("unused") long object) { } } - @CApiBuiltin(ret = PyModuleDef, args = {PyModuleObject}, call = Ignored) + @CApiBuiltin(ret = PyModuleDef, args = {PyModuleObject}, call = Ignored, retConversion = long.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyModuleObject_md_def extends CApiUnaryBuiltinNode { @Specialization static long get(PythonModule object) { @@ -446,7 +448,7 @@ static long get(PythonModule object) { } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyModuleObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyModuleObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyModuleObject_md_dict extends CApiUnaryBuiltinNode { @Specialization static Object get(Object object, @@ -455,7 +457,7 @@ static Object get(Object object, } } - @CApiBuiltin(ret = Pointer, args = {PyModuleObject}, call = Ignored) + @CApiBuiltin(ret = Pointer, args = {PyModuleObject}, call = Ignored, retConversion = long.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyModuleObject_md_state extends CApiUnaryBuiltinNode { @Specialization static Object get(PythonModule object) { @@ -463,7 +465,7 @@ static Object get(PythonModule object) { } } - @CApiBuiltin(ret = Py_ssize_t, args = {Pointer}, call = Ignored) + @CApiBuiltin(ret = Py_ssize_t, args = {Pointer}, call = Ignored, retConversion = long.class, argConversions = {long.class}) abstract static class GraalPyPrivate_Get_PyObject_ob_refcnt extends CApiUnaryBuiltinNode { @Specialization @@ -480,7 +482,7 @@ static long get(long pointer) { } } - @CApiBuiltin(ret = PyTypeObjectBorrowed, args = {PyObject}, call = Ignored) + @CApiBuiltin(ret = PyTypeObjectBorrowed, args = {PyObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyObject_ob_type extends CApiUnaryBuiltinNode { @Specialization @@ -498,7 +500,7 @@ static Object get(Object object, } } - @CApiBuiltin(ret = Py_ssize_t, args = {PySetObject}, call = Ignored) + @CApiBuiltin(ret = Py_ssize_t, args = {PySetObject}, call = Ignored, retConversion = long.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PySetObject_used extends CApiUnaryBuiltinNode { @Specialization @@ -532,7 +534,7 @@ static Object get(Node inliningTarget, PSlice object, HiddenAttr key, Object val } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PySliceObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PySliceObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PySliceObject_start extends CApiUnaryBuiltinNode { @Specialization @@ -543,7 +545,7 @@ static Object doStart(PSlice object, } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PySliceObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PySliceObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PySliceObject_step extends CApiUnaryBuiltinNode { @Specialization @@ -554,7 +556,7 @@ static Object doStep(PSlice object, } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PySliceObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PySliceObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PySliceObject_stop extends CApiUnaryBuiltinNode { @Specialization @@ -565,7 +567,7 @@ static Object doStop(PSlice object, } } - @CApiBuiltin(ret = Py_ssize_t, args = {PyVarObject}, call = Ignored) + @CApiBuiltin(ret = Py_ssize_t, args = {PyVarObject}, call = Ignored, retConversion = long.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyVarObject_ob_size extends CApiUnaryBuiltinNode { @Specialization @@ -578,7 +580,7 @@ static long get(Object object, } } - @CApiBuiltin(ret = UINTPTR_T, args = {PyLongObject}, call = Ignored) + @CApiBuiltin(ret = UINTPTR_T, args = {PyLongObject}, call = Ignored, retConversion = long.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyLongObject_long_value_lv_tag extends CApiUnaryBuiltinNode { @Specialization diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextStructSeqBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextStructSeqBuiltins.java index a6e08c511b..3b17d39135 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextStructSeqBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextStructSeqBuiltins.java @@ -64,6 +64,9 @@ import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiUnaryBuiltinNode; import com.oracle.graal.python.builtins.objects.PNone; import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.FromCharPointerNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.CharPtrToPythonNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonClassNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.dict.PDict; import com.oracle.graal.python.builtins.objects.function.PKeyword; import com.oracle.graal.python.builtins.objects.tuple.PTuple; @@ -94,7 +97,7 @@ public final class PythonCextStructSeqBuiltins { - @CApiBuiltin(ret = Int, args = {PyTypeObject, Pointer, Int}, call = Ignored) + @CApiBuiltin(ret = Int, args = {PyTypeObject, Pointer, Int}, call = Ignored, retConversion = int.class, argConversions = {NativeToPythonClassNode.class, long.class, int.class}) abstract static class GraalPyPrivate_StructSequence_InitType2 extends CApiTernaryBuiltinNode { @Specialization @@ -127,7 +130,8 @@ static int doGeneric(PythonAbstractClass klass, long fields, int nInSequence) { } } - @CApiBuiltin(ret = PyTypeObjectTransfer, args = {ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString, Pointer, Int}, call = Ignored) + @CApiBuiltin(ret = PyTypeObjectTransfer, args = {ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString, Pointer, + Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonNode.class, CharPtrToPythonNode.class, long.class, int.class}) abstract static class GraalPyPrivate_StructSequence_NewType extends CApiQuaternaryBuiltinNode { @Specialization @@ -150,7 +154,7 @@ Object doGeneric(TruffleString typeName, TruffleString typeDoc, long fields, int } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyTypeObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyTypeObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonClassNode.class}) abstract static class PyStructSequence_New extends CApiUnaryBuiltinNode { @Specialization diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSysBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSysBuiltins.java index e32485a23a..77077b4b19 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSysBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSysBuiltins.java @@ -57,7 +57,10 @@ import com.oracle.graal.python.builtins.objects.PNone; import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.FromCharPointerNode; import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.EnsurePythonObjectNode; +import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.ToNativeBorrowedNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.CharPtrToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonInternalNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; import com.oracle.graal.python.builtins.objects.module.PythonModule; import com.oracle.graal.python.lib.PyObjectCallMethodObjArgs; import com.oracle.graal.python.lib.PyObjectLookupAttr; @@ -75,7 +78,7 @@ public final class PythonCextSysBuiltins { - @CApiBuiltin(ret = PyObjectBorrowed, args = {ConstCharPtrAsTruffleString}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {ConstCharPtrAsTruffleString}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {CharPtrToPythonNode.class}) abstract static class PySys_GetObject extends CApiUnaryBuiltinNode { @Specialization @@ -118,7 +121,7 @@ private static Object selectOut(int fd) { } /** similar to {@code sys_pyfile_write} */ - @CApiBuiltin(ret = Int, args = {Int, ConstCharPtr}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = Int, args = {Int, ConstCharPtr}, call = Ignored, acquireGil = false, retConversion = int.class, argConversions = {int.class, long.class}) @TruffleBoundary public static int GraalPyPrivate_Sys_WriteStd(int fd, long msgPtr) { TruffleString msg = FromCharPointerNode.executeUncached(msgPtr); @@ -127,7 +130,7 @@ public static int GraalPyPrivate_Sys_WriteStd(int fd, long msgPtr) { } /** similar to {@code sys_pyfile_write_unicode} */ - @CApiBuiltin(ret = Int, args = {Int, PyObject}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = Int, args = {Int, PyObject}, call = Ignored, acquireGil = false, retConversion = int.class, argConversions = {int.class, NativeToPythonNode.class}) @TruffleBoundary public static int GraalPyPrivate_Sys_PyFileWriteUnicode(int fd, long unicodePtr) { Object msg = NativeToPythonInternalNode.executeUncached(unicodePtr, false); @@ -135,7 +138,7 @@ public static int GraalPyPrivate_Sys_PyFileWriteUnicode(int fd, long unicodePtr) return 0; } - @CApiBuiltin(ret = Int, args = {ConstCharPtr, PyObject}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = Int, args = {ConstCharPtr, PyObject}, call = Ignored, acquireGil = false, retConversion = int.class, argConversions = {long.class, NativeToPythonNode.class}) @TruffleBoundary public static int GraalPyPrivate_Sys_Audit(long eventPtr, long argsPtr) { TruffleString event = FromCharPointerNode.executeUncached(eventPtr); diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTracebackBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTracebackBuiltins.java index ce8ffd0192..6a6e5ba62c 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTracebackBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTracebackBuiltins.java @@ -52,6 +52,8 @@ import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiTernaryBuiltinNode; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiUnaryBuiltinNode; import com.oracle.graal.python.builtins.objects.PNone; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.CharPtrToPythonNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes; import com.oracle.graal.python.builtins.objects.exception.ExceptionNodes; import com.oracle.graal.python.builtins.objects.exception.PBaseException; @@ -69,7 +71,8 @@ public final class PythonCextTracebackBuiltins { - @CApiBuiltin(ret = Void, args = {ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString, Int}, call = Direct) + @CApiBuiltin(ret = Void, args = {ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString, Int}, call = Direct, retConversion = void.class, argConversions = {CharPtrToPythonNode.class, + CharPtrToPythonNode.class, int.class}) abstract static class _PyTraceback_Add extends CApiTernaryBuiltinNode { @Specialization static Object tbHere(TruffleString funcname, TruffleString filename, int lineno, @@ -82,7 +85,7 @@ static Object tbHere(TruffleString funcname, TruffleString filename, int lineno, } } - @CApiBuiltin(ret = Int, args = {PyFrameObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyFrameObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class PyTraceBack_Here extends CApiUnaryBuiltinNode { @Specialization static int tbHere(PFrame frame, diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTupleBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTupleBuiltins.java index c820355956..1b96eae321 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTupleBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTupleBuiltins.java @@ -59,7 +59,10 @@ import com.oracle.graal.python.builtins.objects.PNone; import com.oracle.graal.python.builtins.objects.cext.PythonAbstractNativeObject; import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.EnsurePythonObjectNode; +import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.ToNativeBorrowedNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeInternalNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes; import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes.EnsureCapacityNode; import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes.GetItemNode; @@ -86,12 +89,12 @@ public final class PythonCextTupleBuiltins { - @CApiBuiltin(ret = PyObjectRawPointer, call = Ignored) + @CApiBuiltin(ret = PyObjectRawPointer, call = Ignored, retConversion = long.class, argConversions = {}) static long GraalPyPrivate_Tuple_Empty() { return PythonToNativeInternalNode.executeNewRefUncached(PFactory.createEmptyTuple(PythonLanguage.get(null))); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject, Py_ssize_t}, call = Ignored) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject, Py_ssize_t}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class, long.class}) public abstract static class GraalPyPrivate_Tuple_GetItem extends CApiBinaryBuiltinNode { public abstract Object execute(PTuple tuple, long key); @@ -155,7 +158,8 @@ private static int checkIndex(Node inliningTarget, long key, SequenceStorage seq } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Py_ssize_t, Py_ssize_t}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Py_ssize_t, Py_ssize_t}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + long.class, long.class}) abstract static class PyTuple_GetSlice extends CApiTernaryBuiltinNode { @Specialization static Object getSlice(PTuple tuple, Object iLow, Object iHigh, @@ -184,7 +188,7 @@ private static Object doGetSlice(SequenceStorage storage, Node inliningTarget, O } } - @CApiBuiltin(ret = PyObjectPtr, args = {PyObject, Py_ssize_t, PyObjectPtr}, call = Ignored) + @CApiBuiltin(ret = PyObjectPtr, args = {PyObject, Py_ssize_t, PyObjectPtr}, call = Ignored, retConversion = long.class, argConversions = {NativeToPythonNode.class, long.class, long.class}) abstract static class GraalPyPrivate_Tuple_Resize extends CApiTernaryBuiltinNode { @Specialization public static long size(PTuple tuple, long size, long obItemsPtr, diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTypeBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTypeBuiltins.java index 691e893535..99795d8d9d 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTypeBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTypeBuiltins.java @@ -77,6 +77,7 @@ import com.oracle.graal.python.builtins.objects.cext.capi.CApiMemberAccessNodes.ReadMemberNode; import com.oracle.graal.python.builtins.objects.cext.capi.CApiMemberAccessNodes.WriteMemberNode; import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.EnsurePythonObjectNode; +import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.ToNativeBorrowedNode; import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes; import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.GetterRoot; import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.PExternalFunctionWrapper; @@ -85,6 +86,9 @@ import com.oracle.graal.python.builtins.objects.cext.capi.PyMethodFlags; import com.oracle.graal.python.builtins.objects.cext.capi.WrapperDescriptorRootNodesGen; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonClassNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.CharPtrToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonClassInternalNode; @@ -142,8 +146,10 @@ public final class PythonCextTypeBuiltins { - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyTypeObject, PyObject}, call = Direct) - @CApiBuiltin(name = "_PyType_LookupRef", ret = PyObjectTransfer, args = {PyTypeObject, PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectBorrowed, args = {PyTypeObject, PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonClassNode.class, + NativeToPythonNode.class}) + @CApiBuiltin(name = "_PyType_LookupRef", ret = PyObjectTransfer, args = {PyTypeObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { + NativeToPythonClassNode.class, NativeToPythonNode.class}) abstract static class _PyType_Lookup extends CApiBinaryBuiltinNode { @Specialization Object doGeneric(Object type, Object name, @@ -201,7 +207,8 @@ Object doGeneric(Object type, Object name, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyTypeObject, ConstCharPtrAsTruffleString}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyTypeObject, ConstCharPtrAsTruffleString}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { + NativeToPythonClassNode.class, CharPtrToPythonNode.class}) abstract static class GraalPyPrivate_Compute_Mro extends CApiBinaryBuiltinNode { @Specialization @@ -219,7 +226,7 @@ public NativeTypeDictStorage(Shape shape) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyTypeObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyTypeObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonClassNode.class}) abstract static class GraalPyPrivate_NewTypeDict extends CApiUnaryBuiltinNode { @Specialization @@ -233,7 +240,7 @@ static PDict doGeneric(PythonNativeClass nativeClass) { } } - @CApiBuiltin(ret = ArgDescriptor.Void, args = {PyTypeObject}, call = Direct) + @CApiBuiltin(ret = ArgDescriptor.Void, args = {PyTypeObject}, call = Direct, retConversion = void.class, argConversions = {NativeToPythonClassNode.class}) abstract static class PyType_Modified extends CApiUnaryBuiltinNode { @TruffleBoundary @Specialization @@ -277,7 +284,7 @@ public static void invalidateMroLookup(PythonAbstractClass klass) { } - @CApiBuiltin(ret = Int, args = {Pointer}, call = Ignored) + @CApiBuiltin(ret = Int, args = {Pointer}, call = Ignored, retConversion = int.class, argConversions = {long.class}) abstract static class GraalPyPrivate_Trace_Type extends CApiUnaryBuiltinNode { private static final TruffleLogger LOGGER = CApiContext.getLogger(GraalPyPrivate_Trace_Type.class); @@ -329,7 +336,9 @@ private static PythonBuiltinObject typeAddMethod(PythonLanguage language, long m return func; } - @CApiBuiltin(ret = Int, args = {Pointer, PyTypeObject, PyObject, ConstCharPtrAsTruffleString, Pointer, Int, ConstCharPtrAsTruffleString}, call = Ignored) + @CApiBuiltin(ret = Int, args = {Pointer, PyTypeObject, PyObject, ConstCharPtrAsTruffleString, Pointer, Int, + ConstCharPtrAsTruffleString}, call = Ignored, retConversion = int.class, argConversions = {long.class, NativeToPythonClassNode.class, NativeToPythonNode.class, + CharPtrToPythonNode.class, long.class, int.class, CharPtrToPythonNode.class}) public static int GraalPyPrivate_Type_AddFunctionToType(long methodDefPtr, long typeRaw, long dictRaw, long nameRaw, long cfunc, int flags, long docRaw) { CompilerAsserts.neverPartOfCompilation(); try { @@ -347,7 +356,7 @@ public static int GraalPyPrivate_Type_AddFunctionToType(long methodDefPtr, long } } - @CApiBuiltin(ret = Int, args = {PyTypeObject}, call = Ignored) + @CApiBuiltin(ret = Int, args = {PyTypeObject}, call = Ignored, retConversion = int.class, argConversions = {NativeToPythonClassNode.class}) public static int GraalPyPrivate_Type_AddOperators(long type) { CompilerAsserts.neverPartOfCompilation(); try { @@ -362,7 +371,8 @@ public static int GraalPyPrivate_Type_AddOperators(long type) { return -1; } - @CApiBuiltin(ret = Int, args = {PyTypeObjectRawPointer, PyObjectRawPointer, ConstCharPtr, Int, Py_ssize_t, Int, ConstCharPtr}, call = CApiCallPath.Ignored) + @CApiBuiltin(ret = Int, args = {PyTypeObjectRawPointer, PyObjectRawPointer, ConstCharPtr, Int, Py_ssize_t, Int, + ConstCharPtr}, call = CApiCallPath.Ignored, retConversion = int.class, argConversions = {long.class, long.class, long.class, int.class, long.class, int.class, long.class}) @TruffleBoundary public static int GraalPyPrivate_Type_AddMember(long clazzPtr, long tpDictPtr, long memberNamePtr, int memberType, long offset, int canSet, long memberDocPtr) { Object clazz = NativeToPythonClassInternalNode.executeUncached(clazzPtr); @@ -392,7 +402,8 @@ public static int addMember(Object clazz, PDict tpDict, TruffleString memberName return 0; } - @CApiBuiltin(ret = Int, args = {PyTypeObjectRawPointer, PyObjectRawPointer, ConstCharPtr, Pointer, Pointer, ConstCharPtr, Pointer}, call = Ignored) + @CApiBuiltin(ret = Int, args = {PyTypeObjectRawPointer, PyObjectRawPointer, ConstCharPtr, Pointer, Pointer, ConstCharPtr, Pointer}, call = Ignored, retConversion = int.class, argConversions = { + long.class, long.class, long.class, long.class, long.class, long.class, long.class}) static int GraalPyPrivate_Type_AddGetSet(long clsPtr, long dictPtr, long namePtr, long getter, long setter, long docPtr, long closure) { Object cls = NativeToPythonClassInternalNode.executeUncached(clsPtr); PDict dict = (PDict) NativeToPythonInternalNode.executeUncached(dictPtr, false); @@ -443,7 +454,7 @@ private static PRootNode setterRootNode(TruffleString name, PythonLanguage lang) return lang.createCachedExternalFunWrapperRootNode(rootNodeFunction, SetterRoot.class, PExternalFunctionWrapper.SETTER, name, true, false); } - @CApiBuiltin(ret = ArgDescriptor.Void, args = {PyTypeObject, PyBufferProcs}, call = Ignored) + @CApiBuiltin(ret = ArgDescriptor.Void, args = {PyTypeObject, PyBufferProcs}, call = Ignored, retConversion = void.class, argConversions = {NativeToPythonClassNode.class, long.class}) abstract static class GraalPyPrivate_Type_SetBufferProcs extends CApiBinaryBuiltinNode { @Specialization @@ -464,7 +475,7 @@ static Object set(PythonAbstractObject object, long bufferProcs, } - @CApiBuiltin(ret = ArgDescriptor.Void, args = {Pointer, Int}, call = Ignored) + @CApiBuiltin(ret = ArgDescriptor.Void, args = {Pointer, Int}, call = Ignored, retConversion = void.class, argConversions = {long.class, int.class}) public static void GraalPyPrivate_Type_NotifyDealloc(long ptr, int typeLookupIdx) { assert CStructAccess.readIntField(ptr, CFields.PyTypeObject__tp_version_tag) == typeLookupIdx; if (typeLookupIdx != 0) { diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextUnicodeBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextUnicodeBuiltins.java index 7e67ff7c82..4978524eda 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextUnicodeBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextUnicodeBuiltins.java @@ -119,14 +119,20 @@ import com.oracle.graal.python.builtins.objects.cext.PythonAbstractNativeObject; import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.EnsurePythonObjectNode; import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.FromCharPointerNode; +import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.ToPythonStringNode; import com.oracle.graal.python.builtins.objects.cext.capi.PySequenceArrayWrapper; import com.oracle.graal.python.builtins.objects.cext.capi.UnicodeObjectNodes.UnicodeAsWideCharNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTiming; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.AllocateNativeObjectStubNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.CharPtrToPythonNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.CharPtrToPythonStrictNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.FirstToNativeNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.HandlePointerConverter; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonInternalNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeInternalNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.GraalPyUnicodeObjectUtil; import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes.EncodeNativeStringNode; import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes.ReadUnicodeArrayNode; @@ -221,7 +227,7 @@ static boolean isAnyString(Node inliningTarget, Object obj, GetClassNode getClas return PGuards.isString(obj) || isStringSubtype(inliningTarget, obj, getClassNode, isSubtypeNode); } - @CApiBuiltin(ret = PyObjectTransfer, args = {PY_UCS4}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {PY_UCS4}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {int.class}) abstract static class GraalPyPrivate_Unicode_FromOrdinal extends CApiUnaryBuiltinNode { @Specialization static Object chr(int value, @@ -233,7 +239,7 @@ static Object chr(int value, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleStringStrict}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleStringStrict}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonStrictNode.class}) abstract static class PyUnicode_FromString extends CApiUnaryBuiltinNode { @Specialization static TruffleString fromString(TruffleString value) { @@ -241,7 +247,7 @@ static TruffleString fromString(TruffleString value) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) @ImportStatic(PythonCextUnicodeBuiltins.class) abstract static class PyUnicode_FromObject extends CApiUnaryBuiltinNode { @Specialization @@ -278,14 +284,15 @@ protected boolean isPStringType(Node inliningTarget, Object obj, GetClassNode ge } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObjectAsTruffleString}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObjectAsTruffleString}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {ToPythonStringNode.class}) public static long _PyUnicode_Copy(long unicodePtr) { Object unicode = NativeToPythonInternalNode.executeUncached(unicodePtr, false); Object copy = PFactory.createString(PythonLanguage.get(null), CastToTruffleStringNode.castKnownStringUncached(unicode)); return PythonToNativeInternalNode.executeUncached(copy, true); } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + NativeToPythonNode.class}) @ImportStatic(PythonCextUnicodeBuiltins.class) abstract static class PyUnicode_Concat extends CApiBinaryBuiltinNode { @@ -316,7 +323,8 @@ static Object rightNotString(@SuppressWarnings("unused") Object left, Object rig } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { + NativeToPythonNode.class, CharPtrToPythonNode.class, CharPtrToPythonNode.class}) @ImportStatic(PythonCextUnicodeBuiltins.class) abstract static class PyUnicode_FromEncodedObject extends CApiTernaryBuiltinNode { @@ -353,7 +361,7 @@ static Object doGeneric(Object obj, Object encodingObj, Object errorsObj, private static final CApiTiming TIMING_GRAALPYPRIVATE_UNICODE_LOOKUPANDINTERN = CApiTiming.create(false, "GraalPyPrivate_Unicode_LookupAndIntern"); - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) static long GraalPyPrivate_Unicode_LookupAndIntern(long objPtr) { CApiTiming.enter(); try { @@ -387,7 +395,7 @@ static long GraalPyPrivate_Unicode_LookupAndIntern(long objPtr) { } } - @CApiBuiltin(ret = Int, args = {PyObject}, call = Ignored) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Ignored, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Unicode_CheckInterned extends CApiUnaryBuiltinNode { @Specialization static int withPString(PString str) { @@ -400,7 +408,8 @@ static int nil(@SuppressWarnings("unused") Object obj) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Int, Int, Int}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Int, Int, Int}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, int.class, + int.class, int.class}) @ImportStatic(PythonCextUnicodeBuiltins.class) abstract static class _PyUnicode_FormatLong extends CApiQuaternaryBuiltinNode { @@ -517,7 +526,8 @@ static Object formatLong(Object val, int alt, int prec, int type, } - @CApiBuiltin(ret = Py_ssize_t, args = {PyObject, PY_UCS4, Py_ssize_t, Py_ssize_t, Int}, call = Direct) + @CApiBuiltin(ret = Py_ssize_t, args = {PyObject, PY_UCS4, Py_ssize_t, Py_ssize_t, Int}, call = Direct, retConversion = long.class, argConversions = {NativeToPythonNode.class, int.class, + long.class, long.class, int.class}) @ImportStatic(PythonCextUnicodeBuiltins.class) abstract static class PyUnicode_FindChar extends CApi5BuiltinNode { @Specialization(guards = {"isString(string) || isStringSubtype(inliningTarget, string, getClassNode, isSubtypeNode)", "direction > 0"}) @@ -550,7 +560,8 @@ static long find(Object string, @SuppressWarnings("unused") Object c, @SuppressW } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Py_ssize_t, Py_ssize_t}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Py_ssize_t, Py_ssize_t}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + long.class, long.class}) @ImportStatic(PythonCextUnicodeBuiltins.class) abstract static class PyUnicode_Substring extends CApiTernaryBuiltinNode { @Specialization(guards = {"isString(s) || isStringSubtype(s, inliningTarget, getClassNode, isSubtypeNode)"}, limit = "1") @@ -582,7 +593,8 @@ protected static boolean isStringSubtype(Object obj, Node n, GetClassNode getCla } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + NativeToPythonNode.class}) @ImportStatic(PythonCextUnicodeBuiltins.class) abstract static class PyUnicode_Join extends CApiBinaryBuiltinNode { @Specialization(guards = {"isString(separator) || isStringSubtype(inliningTarget, separator, getClassNode, isSubtypeNode)"}) @@ -603,7 +615,7 @@ static Object find(Object separator, @SuppressWarnings("unused") Object seq, } } - @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtrAsTruffleString}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtrAsTruffleString}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, CharPtrToPythonNode.class}) @ImportStatic(PythonCextUnicodeBuiltins.class) abstract static class _PyUnicode_EqualToASCIIString extends CApiBinaryBuiltinNode { @@ -628,7 +640,7 @@ static Object compare(Object left, Object right, private static final CApiTiming TIMING_PYUNICODE_COMPAREWITHASCIISTRING = CApiTiming.create(false, "PyUnicode_CompareWithASCIIString"); - @CApiBuiltin(ret = Int, args = {PyObjectAsTruffleString, ConstCharPtr}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObjectAsTruffleString, ConstCharPtr}, call = Direct, retConversion = int.class, argConversions = {ToPythonStringNode.class, long.class}) public static int PyUnicode_CompareWithASCIIString(long uniPtr, long str) { /* * This method cannot throw Python exceptions and doesn't need a GIL since both, the unicode @@ -676,7 +688,7 @@ private static class InvalidStringException extends ControlFlowException { static final InvalidStringException INSTANCE = new InvalidStringException(); } - @CApiBuiltin(ret = Int, args = {PyObjectAsTruffleString, ConstCharPtr, Py_ssize_t}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObjectAsTruffleString, ConstCharPtr, Py_ssize_t}, call = Direct, retConversion = int.class, argConversions = {ToPythonStringNode.class, long.class, long.class}) public static int PyUnicode_EqualToUTF8AndSize(long unicodePtr, long str, long size) { if (size < 0) { return 0; @@ -695,7 +707,7 @@ public static int PyUnicode_EqualToUTF8AndSize(long unicodePtr, long str, long s } } - @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) @ImportStatic(PythonCextUnicodeBuiltins.class) abstract static class PyUnicode_Compare extends CApiBinaryBuiltinNode { @@ -721,7 +733,8 @@ static Object compare(Object left, Object right, } } - @CApiBuiltin(ret = Py_ssize_t, args = {PyObject, PyObject, Py_ssize_t, Py_ssize_t, Int}, call = Direct) + @CApiBuiltin(ret = Py_ssize_t, args = {PyObject, PyObject, Py_ssize_t, Py_ssize_t, Int}, call = Direct, retConversion = long.class, argConversions = {NativeToPythonNode.class, + NativeToPythonNode.class, long.class, long.class, int.class}) @ImportStatic(PythonCextUnicodeBuiltins.class) abstract static class PyUnicode_Tailmatch extends CApi5BuiltinNode { @Specialization(guards = {"isAnyString(inliningTarget, string, getClassNode, isSubtypeNode)", "isAnyString(inliningTarget, substring, getClassNode, isSubtypeNode)", "direction > 0"}) @@ -762,7 +775,8 @@ static long find(Object string, Object substring, Object start, Object end, Obje } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { + NativeToPythonNode.class, CharPtrToPythonNode.class, CharPtrToPythonNode.class}) @ImportStatic(PythonCextUnicodeBuiltins.class) abstract static class PyUnicode_AsEncodedString extends CApiTernaryBuiltinNode { @Specialization(guards = "isString(obj) || isStringSubtype(inliningTarget, obj, getClassNode, isSubtypeNode)") @@ -783,7 +797,8 @@ static Object encode(@SuppressWarnings("unused") Object obj, @SuppressWarnings(" } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject, PyObject, Py_ssize_t}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject, PyObject, Py_ssize_t}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + NativeToPythonNode.class, NativeToPythonNode.class, long.class}) @ImportStatic(PythonCextUnicodeBuiltins.class) abstract static class PyUnicode_Replace extends CApiQuaternaryBuiltinNode { @Specialization(guards = {"isString(s)", "isString(substr)", "isString(replstr)"}) @@ -817,7 +832,8 @@ static Object replace(Object s, Object substr, Object replstr, long count, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObjectConstPtr, Py_ssize_t}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObjectConstPtr, Py_ssize_t}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + long.class, long.class}) @TypeSystemReference(PythonIntegerTypes.class) @ImportStatic(PythonCextUnicodeBuiltins.class) abstract static class _PyUnicode_JoinArray extends CApiTernaryBuiltinNode { @@ -856,7 +872,7 @@ static Object join(Object separatorObj, long itemsObj, long seqlenlong, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) @ImportStatic(PythonCextUnicodeBuiltins.class) abstract static class PyUnicode_AsUnicodeEscapeString extends CApiUnaryBuiltinNode { @Specialization(guards = "isString(s)") @@ -886,7 +902,7 @@ static Object escape(@SuppressWarnings("unused") Object obj, } } - @CApiBuiltin(ret = PY_UCS4, args = {PyObject, Py_ssize_t}, call = Direct) + @CApiBuiltin(ret = PY_UCS4, args = {PyObject, Py_ssize_t}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, long.class}) abstract static class PyUnicode_ReadChar extends CApiBinaryBuiltinNode { @Specialization static int doGeneric(Object type, long lindex, @@ -911,7 +927,7 @@ static int doGeneric(Object type, long lindex, } } - @CApiBuiltin(ret = PyObject, args = {Py_ssize_t, Int, Int}, call = Ignored) + @CApiBuiltin(ret = PyObject, args = {Py_ssize_t, Int, Int}, call = Ignored, retConversion = PythonToNativeNode.class, argConversions = {long.class, int.class, int.class}) static long GraalPyPrivate_Unicode_New(long nChars, int charSize, int isAscii) { if (nChars < 0 || nChars > Long.MAX_VALUE / charSize) { throw PRaiseNode.raiseStatic(null, MemoryError); @@ -932,7 +948,7 @@ static long GraalPyPrivate_Unicode_New(long nChars, int charSize, int isAscii) { return taggedPointer; } - @CApiBuiltin(ret = PyObjectTransfer, args = {Pointer, Py_ssize_t, Int}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {Pointer, Py_ssize_t, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, long.class, int.class}) abstract static class GraalPyPrivate_Unicode_FromUCS extends CApiTernaryBuiltinNode { private static TruffleString.CompactionLevel compactionLevelFromKind(Node inliningTarget, int kind, PRaiseNode raiseNode) throws PException { @@ -960,7 +976,7 @@ static Object doNative(long ptr, long byteLength, int kind, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Unicode_FSDecoder extends CApiUnaryBuiltinNode { @Specialization @@ -970,7 +986,8 @@ static Object fsDecoder(Object arg, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtr, Py_ssize_t}, call = Ignored, acquireGil = false) + @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtr, Py_ssize_t}, call = Ignored, acquireGil = false, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, + long.class}) static long GraalPyPrivate_Unicode_DecodeFSDefaultAndSize(long s, long lsize) { // TODO: this implementation does not honor Py_FileSystemDefaultEncoding and Py_FileSystemDefaultEncodeErrors try { @@ -984,7 +1001,7 @@ static long GraalPyPrivate_Unicode_DecodeFSDefaultAndSize(long s, long lsize) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {Pointer, Py_ssize_t, Int}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {Pointer, Py_ssize_t, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, long.class, int.class}) abstract static class GraalPyPrivate_Unicode_FromUTF extends CApiTernaryBuiltinNode { private static TruffleString encodingFromKind(int kind) { @@ -1029,7 +1046,7 @@ static Object doNative(long ptr, long byteLength, int kind, } } - @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class PyUnicode_Contains extends CApiBinaryBuiltinNode { @Specialization static int contains(Object haystack, Object needle, @@ -1038,7 +1055,8 @@ static int contains(Object haystack, Object needle, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject, Py_ssize_t}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject, Py_ssize_t}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + NativeToPythonNode.class, long.class}) abstract static class PyUnicode_Split extends CApiTernaryBuiltinNode { @Specialization static Object split(Object string, Object sep, Object maxsplit, @@ -1047,7 +1065,8 @@ static Object split(Object string, Object sep, Object maxsplit, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {Pointer, Py_ssize_t, ConstCharPtrAsTruffleString, Int}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {Pointer, Py_ssize_t, ConstCharPtrAsTruffleString, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, + long.class, CharPtrToPythonNode.class, int.class}) abstract static class GraalPyPrivate_Unicode_DecodeUTF8Stateful extends CApiQuaternaryBuiltinNode { @Specialization static Object doUtf8Decode(long cByteArray, long size, TruffleString errors, int reportConsumed, @@ -1064,7 +1083,8 @@ static Object doUtf8Decode(long cByteArray, long size, TruffleString errors, int } } - @CApiBuiltin(ret = PyObjectTransfer, args = {Pointer, Py_ssize_t, ConstCharPtrAsTruffleString, Int, Int}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {Pointer, Py_ssize_t, ConstCharPtrAsTruffleString, Int, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { + long.class, long.class, CharPtrToPythonNode.class, int.class, int.class}) abstract static class GraalPyPrivate_Unicode_DecodeUTF16Stateful extends CApi5BuiltinNode { @Specialization @@ -1090,7 +1110,8 @@ static Object decode(long cByteArray, long size, TruffleString errors, int byteo } } - @CApiBuiltin(ret = PyObjectTransfer, args = {Pointer, Py_ssize_t, ConstCharPtrAsTruffleString, Int, Int}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {Pointer, Py_ssize_t, ConstCharPtrAsTruffleString, Int, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { + long.class, long.class, CharPtrToPythonNode.class, int.class, int.class}) abstract static class GraalPyPrivate_Unicode_DecodeUTF32Stateful extends CApi5BuiltinNode { @Specialization @@ -1116,7 +1137,8 @@ static Object decode(long cByteArray, long size, TruffleString errors, int byteo } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { + NativeToPythonNode.class, CharPtrToPythonNode.class, CharPtrToPythonNode.class}) abstract static class GraalPyPrivate_Unicode_Decode extends CApiTernaryBuiltinNode { @Specialization @@ -1126,7 +1148,7 @@ static Object doDecode(PMemoryView mv, TruffleString encoding, TruffleString err } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyUnicode_EncodeFSDefault extends CApiUnaryBuiltinNode { @Specialization static PBytes fromObject(Object s, @@ -1138,7 +1160,8 @@ static PBytes fromObject(Object s, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, ConstCharPtrAsTruffleString}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, ConstCharPtrAsTruffleString}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + CharPtrToPythonNode.class}) abstract static class PyUnicode_EncodeLocale extends CApiBinaryBuiltinNode { @Specialization static Object encode(Object s, Object errors, @@ -1150,7 +1173,7 @@ static Object encode(Object s, Object errors, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {CONST_WCHAR_PTR, Py_ssize_t}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {CONST_WCHAR_PTR, Py_ssize_t}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, long.class}) abstract static class PyUnicode_FromWideChar extends CApiBinaryBuiltinNode { @Specialization Object doInt(long arr, long size, @@ -1190,21 +1213,24 @@ static Object doUnicode(@SuppressWarnings("unused") Object s, @SuppressWarnings( } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, ConstCharPtrAsTruffleString}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, ConstCharPtrAsTruffleString}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + CharPtrToPythonNode.class}) abstract static class _PyUnicode_AsLatin1String extends NativeEncoderNode { protected _PyUnicode_AsLatin1String() { super(TruffleString.Encoding.ISO_8859_1); } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, ConstCharPtrAsTruffleString}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, ConstCharPtrAsTruffleString}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + CharPtrToPythonNode.class}) abstract static class _PyUnicode_AsASCIIString extends NativeEncoderNode { protected _PyUnicode_AsASCIIString() { super(TruffleString.Encoding.US_ASCII); } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, ConstCharPtrAsTruffleString}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, ConstCharPtrAsTruffleString}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + CharPtrToPythonNode.class}) abstract static class _PyUnicode_AsUTF8String extends NativeEncoderNode { protected _PyUnicode_AsUTF8String() { @@ -1217,7 +1243,7 @@ public static _PyUnicode_AsUTF8String create() { } } - @CApiBuiltin(ret = ConstCharPtr, args = {PyObject, PY_SSIZE_T_PTR}, call = Ignored) + @CApiBuiltin(ret = ConstCharPtr, args = {PyObject, PY_SSIZE_T_PTR}, call = Ignored, retConversion = long.class, argConversions = {NativeToPythonNode.class, long.class}) abstract static class GraalPyPrivate_Unicode_AsUTF8AndSize extends CApiBinaryBuiltinNode { @Specialization @@ -1283,7 +1309,7 @@ static long doError(Object s, Object sizePtr, } } - @CApiBuiltin(ret = Int, args = {PyObject}, call = Ignored) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Ignored, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Unicode_FillUtf8 extends CApiUnaryBuiltinNode { @Specialization @@ -1300,7 +1326,7 @@ static Object doNative(PythonAbstractNativeObject s, } } - @CApiBuiltin(ret = PY_UNICODE_PTR, args = {PyObject, PY_SSIZE_T_PTR}, call = Ignored) + @CApiBuiltin(ret = PY_UNICODE_PTR, args = {PyObject, PY_SSIZE_T_PTR}, call = Ignored, retConversion = long.class, argConversions = {NativeToPythonNode.class, long.class}) abstract static class GraalPyPrivate_Unicode_AsUnicodeAndSize extends CApiBinaryBuiltinNode { @Specialization @@ -1331,7 +1357,7 @@ static Object doError(Object s, Object sizePtr, } } - @CApiBuiltin(ret = Int, args = {PyObject}, call = Ignored, acquireGil = false, canRaise = false) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Ignored, acquireGil = false, canRaise = false, retConversion = int.class, argConversions = {NativeToPythonNode.class}) static int GraalPyPrivate_Unicode_IsMaterialized(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); assert PyUnicodeCheckNode.executeUncached(obj); @@ -1339,7 +1365,7 @@ static int GraalPyPrivate_Unicode_IsMaterialized(long objPtr) { } // TODO(native-access) Remove or fix and add test for GraalPyPrivate_Unicode_FillUnicode - @CApiBuiltin(ret = Int, args = {PyObject}, call = Ignored) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Ignored, retConversion = int.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Unicode_FillUnicode extends CApiUnaryBuiltinNode { public static final int WCHAR_T_SIZE = PythonLanguage.getPythonOS() == PythonOS.PLATFORM_WIN32 ? 2 : 4; public static final TruffleString.Encoding WCHAR_T_ENCODING = WCHAR_T_SIZE == 2 ? TruffleString.Encoding.UTF_16 : TruffleString.Encoding.UTF_32; @@ -1360,7 +1386,7 @@ static Object doNative(PythonAbstractNativeObject s, } // TODO(native-access) Remove GraalPyPrivate_Unicode_AsWideChar - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Int}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, int.class}) abstract static class GraalPyPrivate_Unicode_AsWideChar extends CApiBinaryBuiltinNode { @Specialization static Object doUnicode(Object s, int elementSize, @@ -1382,7 +1408,7 @@ static Object doUnicode(Object s, int elementSize, } } - @CApiBuiltin(ret = _PY_ERROR_HANDLER, args = {ConstCharPtrAsTruffleString}, call = Direct) + @CApiBuiltin(ret = _PY_ERROR_HANDLER, args = {ConstCharPtrAsTruffleString}, call = Direct, retConversion = int.class, argConversions = {CharPtrToPythonNode.class}) abstract static class _Py_GetErrorHandler extends CApiUnaryBuiltinNode { @Specialization static Object doGeneric(TruffleString errors, @@ -1397,7 +1423,9 @@ static Object doNull(@SuppressWarnings("unused") PNone noValue) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, ConstCharPtr, Py_ssize_t, Py_ssize_t, Py_ssize_t, ConstCharPtrAsTruffleString}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, ConstCharPtr, Py_ssize_t, Py_ssize_t, Py_ssize_t, + ConstCharPtrAsTruffleString}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonNode.class, long.class, long.class, long.class, + long.class, CharPtrToPythonNode.class}) abstract static class PyUnicodeDecodeError_Create extends CApi6BuiltinNode { @Specialization static Object doit(Object encoding, long object, long length, long start, long end, Object reason, @@ -1414,7 +1442,8 @@ static Object doit(Object encoding, long object, long length, long start, long e } } - @CApiBuiltin(ret = Py_ssize_t, args = {PyObject, PyObject, Py_ssize_t, Py_ssize_t, Int}, call = Ignored) + @CApiBuiltin(ret = Py_ssize_t, args = {PyObject, PyObject, Py_ssize_t, Py_ssize_t, Int}, call = Ignored, retConversion = long.class, argConversions = {NativeToPythonNode.class, + NativeToPythonNode.class, long.class, long.class, int.class}) abstract static class GraalPyPrivate_PyUnicode_Find extends CApi5BuiltinNode { @Specialization(guards = "direction > 0") long find(Object string, Object sub, long start, long end, @SuppressWarnings("unused") int direction, @@ -1438,7 +1467,8 @@ private static int convertResult(int result) { } } - @CApiBuiltin(ret = Py_ssize_t, args = {PyObject, PyObject, Py_ssize_t, Py_ssize_t}, call = Direct) + @CApiBuiltin(ret = Py_ssize_t, args = {PyObject, PyObject, Py_ssize_t, Py_ssize_t}, call = Direct, retConversion = long.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class, + long.class, long.class}) abstract static class PyUnicode_Count extends CApiQuaternaryBuiltinNode { @Specialization long count(Object string, Object sub, long start, long end, @@ -1488,7 +1518,7 @@ static long doGeneric(PString stringObject, int charSize, boolean isAscii, Truff } - @CApiBuiltin(ret = Void, args = {PyObject}, call = Ignored) + @CApiBuiltin(ret = Void, args = {PyObject}, call = Ignored, retConversion = void.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Unicode_FillNativeData extends CApiUnaryBuiltinNode { @Specialization static Object doUnicode(PString stringObject, @@ -1525,7 +1555,7 @@ static Object doUnicode(PString stringObject, } // intentionally a node because of the indirectly used TruffleString.FromZeroTerminatedNativePointerNode - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonNode.class}) abstract static class PyUnicode_InternFromString extends CApiUnaryBuiltinNode { @Specialization diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWarnBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWarnBuiltins.java index 30cacd7d96..e61d956482 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWarnBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWarnBuiltins.java @@ -52,13 +52,16 @@ import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiQuaternaryBuiltinNode; import com.oracle.graal.python.builtins.objects.PNone; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.nodes.call.CallNode; import com.oracle.truffle.api.dsl.Cached; import com.oracle.truffle.api.dsl.Specialization; public final class PythonCextWarnBuiltins { - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject, Py_ssize_t, PyObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject, Py_ssize_t, PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + NativeToPythonNode.class, long.class, NativeToPythonNode.class}) abstract static class GraalPyPrivate_Err_Warn extends CApiQuaternaryBuiltinNode { @Specialization Object warn(Object message, Object category, long stackLevel, @SuppressWarnings("unused") Object source, @@ -74,7 +77,8 @@ Object warn(Object message, Object category, long stackLevel, @SuppressWarnings( } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject, PyObject, Int, PyObject, PyObject}, call = Ignored) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject, PyObject, Int, PyObject, PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { + NativeToPythonNode.class, NativeToPythonNode.class, NativeToPythonNode.class, int.class, NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class GraalPyPrivate_Err_WarnExplicit extends CApi6BuiltinNode { @Specialization Object warn(Object category, Object message, Object filename, int lineno, Object module, Object registry, diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWeakrefBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWeakrefBuiltins.java index e3acbf3747..2180cc7859 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWeakrefBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWeakrefBuiltins.java @@ -61,6 +61,8 @@ import com.oracle.graal.python.builtins.objects.PNone; import com.oracle.graal.python.builtins.objects.PythonAbstractObject; import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.ToNativeBorrowedNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; +import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonInternalNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeInternalNode; @@ -78,7 +80,7 @@ public final class PythonCextWeakrefBuiltins { - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_GetManagedWeakRefs extends PythonCextBuiltins.CApiUnaryBuiltinNode { @Specialization static Object get(PythonAbstractObject object, @@ -89,12 +91,13 @@ static Object get(PythonAbstractObject object, } } - @CApiBuiltin(ret = Void, args = {PyObjectRawPointer}, call = Direct, acquireGil = false, canRaise = false) + @CApiBuiltin(ret = Void, args = {PyObjectRawPointer}, call = Direct, acquireGil = false, canRaise = false, retConversion = void.class, argConversions = {long.class}) public static void PyObject_ClearWeakRefs(long pyObject) { CApiTransitions.removeNativeWeakRef(PythonContext.get(null), pyObject); } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Direct, acquireGil = false, canRaise = true) + @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Direct, acquireGil = false, canRaise = true, retConversion = PythonToNativeNewRefNode.class, argConversions = { + NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class PyWeakref_NewRef extends CApiBinaryBuiltinNode { @Specialization static Object refType(Object object, Object callback, @@ -103,7 +106,8 @@ static Object refType(Object object, Object callback, } } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct, acquireGil = false, canRaise = true) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct, acquireGil = false, canRaise = true, retConversion = long.class, argConversions = { + long.class, long.class}) public static long PyWeakref_NewProxy(long objectPtr, long callbackPtr) { PythonModule weakrefModule = PythonContext.get(null).lookupBuiltinModule(T__WEAKREF); Object callback; @@ -117,7 +121,7 @@ public static long PyWeakref_NewProxy(long objectPtr, long callbackPtr) { return PythonToNativeInternalNode.executeNewRefUncached(proxy); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Direct, acquireGil = false) + @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Direct, acquireGil = false, retConversion = long.class, argConversions = {long.class}) public static long PyWeakref_GetObject(long referencePtr) { Object reference = NativeToPythonInternalNode.executeUncached(referencePtr, false); if (reference instanceof PReferenceType ref) { @@ -136,7 +140,7 @@ public static long PyWeakref_GetObject(long referencePtr) { return PythonContext.get(null).getCApiContext().getNonePtr(); } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, PyObjectPtr}, call = Direct, acquireGil = false) + @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, PyObjectPtr}, call = Direct, acquireGil = false, retConversion = int.class, argConversions = {long.class, long.class}) public static int PyWeakref_GetRef(long referencePtr, long resultPtr) { long result = NULLPTR; try { @@ -164,7 +168,7 @@ public static int PyWeakref_GetRef(long referencePtr, long resultPtr) { } } - @CApiBuiltin(name = "_PyWeakref_ClearRef", ret = Void, args = {PYWEAKREFERENCE_PTR}, call = Direct, acquireGil = false, canRaise = false) + @CApiBuiltin(name = "_PyWeakref_ClearRef", ret = Void, args = {PYWEAKREFERENCE_PTR}, call = Direct, acquireGil = false, canRaise = false, retConversion = void.class, argConversions = {long.class}) public static void PyWeakref_ClearRef(long referencePtr) { Object reference = NativeToPythonInternalNode.executeUncached(referencePtr, false); if (reference instanceof PReferenceType ref) { @@ -172,7 +176,7 @@ public static void PyWeakref_ClearRef(long referencePtr) { } } - @CApiBuiltin(name = "_PyWeakref_IsDead", ret = Int, args = {PyObjectRawPointer}, call = Direct, acquireGil = false, canRaise = false) + @CApiBuiltin(name = "_PyWeakref_IsDead", ret = Int, args = {PyObjectRawPointer}, call = Direct, acquireGil = false, canRaise = false, retConversion = int.class, argConversions = {long.class}) public static int PyWeakref_IsDead(long referencePtr) { PReferenceType reference = (PReferenceType) NativeToPythonInternalNode.executeUncached(referencePtr, false); return reference.getObject() == null ? 1 : 0; From add15e1c44bb08ea77316891f6a8272559b4b45a Mon Sep 17 00:00:00 2001 From: Florian Angerer Date: Tue, 20 Oct 2026 17:04:51 +0200 Subject: [PATCH 03/11] Read and validate C API builtin conversion declarations --- .../processor/CApiBuiltinsProcessor.java | 65 +++++++++++++++++-- 1 file changed, 61 insertions(+), 4 deletions(-) diff --git a/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java b/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java index aca5e43819..4ae8ab0293 100644 --- a/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java +++ b/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java @@ -241,6 +241,9 @@ private static final class CApiBuiltinDesc { public final String name; public final VariableElement[] arguments; public final VariableElement returnType; + /** Conversion metadata is absent for signature-only declarations in CApiFunction. */ + public final TypeMirror retConversion; + public final List argConversions; public final boolean acquireGil; public final boolean canRaise; public final String call; @@ -249,12 +252,14 @@ private static final class CApiBuiltinDesc { public final Set abis; public int id; - public CApiBuiltinDesc(Element origin, String name, VariableElement returnType, VariableElement[] arguments, boolean acquireGil, boolean canRaise, String call, String factory, - Set abis) { + public CApiBuiltinDesc(Element origin, String name, VariableElement returnType, VariableElement[] arguments, TypeMirror retConversion, List argConversions, + boolean acquireGil, boolean canRaise, String call, String factory, Set abis) { this.origin = origin; this.name = name; this.returnType = returnType; this.arguments = arguments; + this.retConversion = retConversion; + this.argConversions = List.copyOf(argConversions); this.acquireGil = acquireGil; this.canRaise = canRaise; this.call = call; @@ -507,8 +512,13 @@ private void addCApiBuiltins(RoundEnvironment re, List javaBuil // boolean inlined = findValue(builtin, "inlined", Boolean.class); VariableElement[] args = findValues(builtin, "args", VariableElement.class).toArray(new VariableElement[0]); if (element instanceof TypeElement te && te.getQualifiedName().toString().equals("com.oracle.graal.python.builtins.objects.cext.capi.CApiFunction.Dummy")) { - additionalBuiltins.add(new CApiBuiltinDesc(element, builtinName, ret, args, acquireGil, canRaise, call, null, abis)); + additionalBuiltins.add(new CApiBuiltinDesc(element, builtinName, ret, args, null, List.of(), acquireGil, canRaise, call, null, abis)); } else { + TypeMirror retConversion = findValue(builtin, "retConversion", TypeMirror.class); + List argConversions = findValues(builtin, "argConversions", TypeMirror.class); + if (!verifyBuiltinConversions(element, builtin, name, args.length, retConversion, argConversions)) { + continue; + } if (!isValidReturnType(ret)) { processingEnv.getMessager().printError( String.format("Invalid @CApiBuiltin %s: %s is not an allowed return type, use PyObjectTransfer or PyObjectBorrow variants", name, ret)); @@ -538,7 +548,7 @@ private void addCApiBuiltins(RoundEnvironment re, List javaBuil } else { verifyStaticMethod((ExecutableElement) element, builtin); } - javaBuiltins.add(new CApiBuiltinDesc(element, name, ret, args, acquireGil, canRaise, call, genName, abis)); + javaBuiltins.add(new CApiBuiltinDesc(element, name, ret, args, retConversion, argConversions, acquireGil, canRaise, call, genName, abis)); } } } @@ -549,6 +559,53 @@ private void addCApiBuiltins(RoundEnvironment re, List javaBuil } } + private boolean verifyBuiltinConversions(Element origin, AnnotationMirror annotation, String builtinName, int argumentCount, TypeMirror retConversion, List argConversions) { + Set explicitParameters = annotation.getElementValues().keySet().stream().map(CApiBuiltinsProcessor::name).collect(Collectors.toSet()); + boolean valid = true; + for (String parameter : List.of("retConversion", "argConversions")) { + if (!explicitParameters.contains(parameter)) { + processingEnv.getMessager().printMessage(Kind.ERROR, String.format("Invalid @CApiBuiltin %s: %s must be explicitly specified", builtinName, parameter), origin, annotation); + valid = false; + } + } + if (!valid) { + return false; + } + if (argConversions.size() != argumentCount) { + processingEnv.getMessager().printMessage(Kind.ERROR, + String.format("Invalid @CApiBuiltin %s: expected %d argument conversion classes but got %d", builtinName, argumentCount, argConversions.size()), origin, annotation); + valid = false; + } + if (!isValidConversionClass(retConversion, true)) { + processingEnv.getMessager().printMessage(Kind.ERROR, + String.format("Invalid @CApiBuiltin %s: retConversion must be a primitive class, void.class, or a CExtToNativeNode subclass, but was %s", builtinName, retConversion), + origin, annotation); + valid = false; + } + for (int i = 0; i < argConversions.size(); i++) { + TypeMirror conversion = argConversions.get(i); + if (!isValidConversionClass(conversion, false)) { + processingEnv.getMessager().printMessage(Kind.ERROR, + String.format("Invalid @CApiBuiltin %s: argConversions[%d] must be a primitive class or a CExtToJavaNode subclass, but was %s", builtinName, i, conversion), + origin, annotation); + valid = false; + } + } + return valid; + } + + private boolean isValidConversionClass(TypeMirror conversion, boolean returnConversion) { + if (conversion.getKind().isPrimitive() || returnConversion && conversion.getKind() == TypeKind.VOID) { + return true; + } + if (conversion.getKind() != TypeKind.DECLARED) { + return false; + } + String nodeClass = returnConversion ? "CExtToNativeNode" : "CExtToJavaNode"; + TypeElement nodeType = processingEnv.getElementUtils().getTypeElement("com.oracle.graal.python.builtins.objects.cext.common." + nodeClass); + return processingEnv.getTypeUtils().isSubtype(conversion, nodeType.asType()); + } + private void verifyStaticMethod(ExecutableElement e, AnnotationMirror annotation) { if (!e.getModifiers().contains(Modifier.STATIC)) { processingEnv.getMessager().printError("CApiBuiltins must be nodes or static methods", e); From b1b5edcff377e33f161529cf29d6c01551a9ab87 Mon Sep 17 00:00:00 2001 From: Florian Angerer Date: Tue, 20 Oct 2026 17:32:05 +0200 Subject: [PATCH 04/11] Generate C API builtin registry entries with conversion factories --- .../processor/CApiBuiltinsProcessor.java | 25 ++++++++++++++++++- .../modules/cext/PythonCextBuiltins.java | 18 ++++++++++--- .../cext/capi/ExternalFunctionNodes.java | 5 ++++ 3 files changed, 44 insertions(+), 4 deletions(-) diff --git a/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java b/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java index 4ae8ab0293..a94746fa21 100644 --- a/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java +++ b/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java @@ -1053,6 +1053,25 @@ private boolean verifySignatureOfExplicitUpcallTarget(ExecutableElement explicit return true; } + private String conversionFactory(Element origin, TypeMirror conversion, boolean methodReference) { + if (!needsConversion(conversion)) { + return "null"; + } + TypeElement conversionClass = (TypeElement) processingEnv.getTypeUtils().asElement(conversion); + for (Element member : processingEnv.getElementUtils().getAllMembers(conversionClass)) { + if (member.getKind() == ElementKind.METHOD && member.getSimpleName().contentEquals("create") && + member.getModifiers().containsAll(Set.of(Modifier.PUBLIC, Modifier.STATIC))) { + ExecutableElement method = (ExecutableElement) member; + if (method.getParameters().isEmpty() && processingEnv.getTypeUtils().isAssignable(method.getReturnType(), conversion)) { + return conversion + (methodReference ? "::create" : ".create()"); + } + } + } + processingEnv.getMessager().printError(String.format("Conversion class %s must have a public static no-argument create() method returning %s", + conversion, conversion), origin); + return "null"; + } + /** * Generates the contents of the PythonCextBuiltinRegistry class: the list of builtins, the * CApiBuiltinNode factory function, and the slot query function. @@ -1077,6 +1096,7 @@ private void generateBuiltinRegistry(List javaBuiltins) throws import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins; import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes.TransformPExceptionToNativeNode; + import com.oracle.graal.python.builtins.objects.cext.common.CExtToJavaNode; import com.oracle.graal.python.runtime.GilNode; import com.oracle.graal.python.runtime.exception.PException; @@ -1089,8 +1109,11 @@ private PythonCextBuiltinRegistry() { for (var builtin : javaBuiltins) { String argString = Arrays.stream(builtin.arguments).map(b -> "ArgDescriptor." + b).collect(Collectors.joining(", ")); + String retConversion = conversionFactory(builtin.origin, builtin.retConversion, true); + String argConversions = builtin.argConversions.stream().map(conversion -> conversionFactory(builtin.origin, conversion, false)).collect(Collectors.joining(", ")); lines.add(" public static final CApiBuiltinExecutable " + builtin.name + " = new CApiBuiltinExecutable(\"" + builtin.name + "\", ArgDescriptor." + - builtin.returnType + ", new ArgDescriptor[]{" + argString + "}, " + builtin.acquireGil + ", " + builtin.id + ");"); + builtin.returnType + ", new ArgDescriptor[]{" + argString + "}, " + builtin.acquireGil + ", " + builtin.id + ", " + retConversion + + ", () -> new CExtToJavaNode[]{" + argConversions + "});"); } lines.add(""); lines.add(" public static final CApiBuiltinExecutable[] builtins = {"); diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBuiltins.java index 1d603604ed..b94bee5872 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBuiltins.java @@ -175,6 +175,7 @@ import com.oracle.graal.python.runtime.sequence.storage.NativeSequenceStorage; import com.oracle.graal.python.util.BufferFormat; import com.oracle.graal.python.util.PythonUtils; +import com.oracle.graal.python.util.Supplier; import com.oracle.truffle.api.CallTarget; import com.oracle.truffle.api.CompilerAsserts; import com.oracle.truffle.api.CompilerDirectives; @@ -507,15 +508,20 @@ public static final class CApiBuiltinExecutable { private final CApiTiming timing; private final ArgDescriptor ret; private final ArgDescriptor[] args; + private final Supplier retConversion; + private final Supplier argConversions; private final boolean acquireGil; private final String name; private final int id; - public CApiBuiltinExecutable(String name, ArgDescriptor ret, ArgDescriptor[] args, boolean acquireGil, int id) { + public CApiBuiltinExecutable(String name, ArgDescriptor ret, ArgDescriptor[] args, boolean acquireGil, int id, Supplier retConversion, + Supplier argConversions) { this.timing = CApiTiming.create(false, name); this.name = name; this.ret = ret; this.args = args; + this.retConversion = retConversion; + this.argConversions = argConversions; this.acquireGil = acquireGil; this.id = id; } @@ -540,7 +546,7 @@ public boolean acquireGil() { } CExtToNativeNode createRetNode() { - return ret.createPythonToNativeNode(); + return retConversion == null ? null : retConversion.get(); } Object getErrorReturnValue() { @@ -557,7 +563,9 @@ Object getErrorReturnValue() { } CExtToJavaNode[] createArgNodes() { - return ArgDescriptor.createNativeToPython(args); + CExtToJavaNode[] nodes = argConversions.get(); + assert args.length == nodes.length; + return nodes; } public CApiBuiltinNode createBuiltinNode() { @@ -820,6 +828,8 @@ public boolean inherits(ABI candidate) { /** * Java-to-native return value conversion node class. A Java primitive class specifies * pass-through conversion; {@code void.class} specifies no return value. + * Conversion node classes must provide public static no-argument {@code create()} and + * {@code getUncached()} methods returning an instance of the specified node class. */ Class retConversion() default long.class; @@ -827,6 +837,8 @@ public boolean inherits(ABI candidate) { * Native-to-Java argument conversion node classes, in the same order as {@link #args()}. * A Java primitive class specifies pass-through conversion for that argument. The empty * default temporarily allows existing declarations to compile during migration. + * Conversion node classes must provide public static no-argument {@code create()} and + * {@code getUncached()} methods returning an instance of the specified node class. */ Class[] argConversions() default {}; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/ExternalFunctionNodes.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/ExternalFunctionNodes.java index f3f18b0b54..4e0d3c6097 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/ExternalFunctionNodes.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/ExternalFunctionNodes.java @@ -244,6 +244,11 @@ private static boolean canBorrowDirectly(Object object) { !(object instanceof Number || object instanceof TruffleString); } + @NeverDefault + public static ToNativeBorrowedNode create() { + return new ToNativeBorrowedNode(); + } + @TruffleBoundary(allowInlining = true) public static long executeUncached(Object object) { Object promoted = EnsurePythonObjectNode.executeUncached(PythonContext.get(null), object, false); From a51dcdcab81aab4dab068e2f17ee95a2d77eb395 Mon Sep 17 00:00:00 2001 From: Florian Angerer Date: Tue, 20 Oct 2026 18:00:55 +0200 Subject: [PATCH 05/11] Remove conversion behavior from ArgDescriptor --- .../processor/CApiBuiltinsProcessor.java | 49 +- .../modules/cext/PythonCextBuiltins.java | 7 +- .../cext/capi/transitions/ArgDescriptor.java | 533 +++++++----------- 3 files changed, 222 insertions(+), 367 deletions(-) diff --git a/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java b/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java index a94746fa21..bd3edc643e 100644 --- a/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java +++ b/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java @@ -203,16 +203,6 @@ private static boolean isVarArgs(VariableElement obj) { return name(obj).equals("VARARGS"); } - private boolean isValidReturnType(VariableElement obj) { - /* - * We don't want to allow "bare" PyObject and force ourselves to decide between - * PyObjectTransfer and PyObjectBorrow - */ - var initializer = getFieldInitializer(obj); - // assumes that the 'transfer' flag is the only bool flag and defaults to false - return !initializer.matches("ArgBehavior\\.PyObject[,)]") || initializer.contains("true"); - } - private static String name(Element obj) { return obj.getSimpleName().toString(); } @@ -282,23 +272,19 @@ public CApiConstantDesc(Element origin, String name, String value) { private String capiTypeToLogicalType(VariableElement element) { var init = getFieldInitializer(element); - if (init.contains("Void")) { - return "void"; - } else if (init.contains("Float64")) { - return "double"; - } else if (init.contains("Float32")) { - return "float"; - } else if (init.contains("Int32")) { - return "int"; - } else if (init.contains("Char16")) { - return "short"; - } else if (init.contains("Char8")) { - return "byte"; - } else if (init.contains("PyObject") || init.contains("Pointer")) { - return "pointer"; - } else { - return "long"; - } + String prefix = "NativeSimpleType."; + int start = init.indexOf(prefix); + NativeSimpleType type = start < 0 ? NativeSimpleType.SINT64 : NativeSimpleType.valueOf(init.substring(start + prefix.length(), init.indexOf(',', start))); + return switch (type) { + case VOID -> "void"; + case DOUBLE -> "double"; + case FLOAT -> "float"; + case SINT32 -> "int"; + case SINT16 -> "short"; + case SINT8 -> "byte"; + case POINTER -> "pointer"; + case SINT64 -> "long"; + }; } private boolean isVoid(VariableElement element) { @@ -519,11 +505,6 @@ private void addCApiBuiltins(RoundEnvironment re, List javaBuil if (!verifyBuiltinConversions(element, builtin, name, args.length, retConversion, argConversions)) { continue; } - if (!isValidReturnType(ret)) { - processingEnv.getMessager().printError( - String.format("Invalid @CApiBuiltin %s: %s is not an allowed return type, use PyObjectTransfer or PyObjectBorrow variants", name, ret)); - continue; - } boolean usesGenerateNodeFactory = false; for (var am : element.getAnnotationMirrors()) { if (((TypeElement) am.getAnnotationType().asElement()).getQualifiedName().toString().equals("com.oracle.truffle.api.dsl.GenerateNodeFactory")) { @@ -1476,11 +1457,11 @@ private void collectExternalFunctionAndWrapperDescs(Element element, List "void"; case "Int", "InquiryResult", "InitResult", "PrimitiveResult32" -> "int"; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBuiltins.java index b94bee5872..8ded6c6b5e 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBuiltins.java @@ -803,7 +803,8 @@ public boolean inherits(ABI candidate) { /** * Builtin implementations in the C API (or helpers for implementing builtins with C code) are * marked with this annotation. The information in the annotation allows code generation, - * argument conversions (based on {@link ArgDescriptor}s), and verification of the C API + * argument and return value conversions (specified by {@link CApiBuiltin#argConversions()} and + * {@link CApiBuiltin#retConversion()}), and verification of the C API * implementation in general. *

* Apart from being placed on classes that implement {@link CApiBuiltinNode}, this annotation is @@ -835,8 +836,8 @@ public boolean inherits(ABI candidate) { /** * Native-to-Java argument conversion node classes, in the same order as {@link #args()}. - * A Java primitive class specifies pass-through conversion for that argument. The empty - * default temporarily allows existing declarations to compile during migration. + * A Java primitive class specifies pass-through conversion for that argument. The default + * is for signature-only declarations; builtin implementations must specify this explicitly. * Conversion node classes must provide public static no-argument {@code create()} and * {@code getUncached()} methods returning an instance of the specified node class. */ diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/transitions/ArgDescriptor.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/transitions/ArgDescriptor.java index ff8f5cb5ab..8f3e63999c 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/transitions/ArgDescriptor.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/transitions/ArgDescriptor.java @@ -41,117 +41,40 @@ package com.oracle.graal.python.builtins.objects.cext.capi.transitions; import com.oracle.graal.python.annotations.NativeSimpleType; -import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.ToNativeBorrowedNode; -import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.ToPythonStringNode; -import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.CharPtrToPythonNode; -import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.CharPtrToPythonStrictNode; -import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonClassNode; -import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; -import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonReturnNode; -import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonTransferNode; -import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; -import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNode; -import com.oracle.graal.python.builtins.objects.cext.common.CExtToJavaNode; -import com.oracle.graal.python.builtins.objects.cext.common.CExtToNativeNode; -import com.oracle.graal.python.util.Supplier; - -enum ArgBehavior { - PyObject( - NativeSimpleType.POINTER, - PythonToNativeNode::create, - NativeToPythonNode::create, - NativeToPythonNode.getUncached(), - PythonToNativeNewRefNode::create, - NativeToPythonTransferNode::create, - NativeToPythonTransferNode.getUncached()), - PyObjectBorrowed(NativeSimpleType.POINTER, ToNativeBorrowedNode::new, NativeToPythonNode::create, NativeToPythonNode.getUncached(), null, null, null), - PyObjectAsTruffleString(NativeSimpleType.POINTER, null, ToPythonStringNode::create, ToPythonStringNode.getUncached(), null, null, null), - PyTypeObject( - NativeSimpleType.POINTER, - PythonToNativeNode::create, - NativeToPythonClassNode::create, - NativeToPythonClassNode.getUncached(), - PythonToNativeNewRefNode::create, - NativeToPythonTransferNode::create, - NativeToPythonTransferNode.getUncached()), - Pointer(NativeSimpleType.POINTER), - TruffleStringPointer(NativeSimpleType.POINTER, null, CharPtrToPythonNode::create, CharPtrToPythonNode.getUncached()), - TruffleStringPointerStrict(NativeSimpleType.POINTER, null, CharPtrToPythonStrictNode::create, CharPtrToPythonStrictNode.getUncached()), - Char8(NativeSimpleType.SINT8), - UChar8(NativeSimpleType.SINT8), - Char16(NativeSimpleType.SINT16), - UInt16(NativeSimpleType.SINT16), - Int32(NativeSimpleType.SINT32), - UInt32(NativeSimpleType.SINT32), - Int64(NativeSimpleType.SINT64), - UInt64(NativeSimpleType.SINT64), - Long(NativeSimpleType.SINT64), - Float32(NativeSimpleType.FLOAT), - Float64(NativeSimpleType.DOUBLE), - Void(NativeSimpleType.VOID), - Unknown(NativeSimpleType.SINT64); - - public final NativeSimpleType nativeSimpleType; - public final Supplier pythonToNative; - public final Supplier nativeToPython; - public final CExtToJavaNode uncachedNativeToPython; - public final Supplier pythonToNativeTransfer; - public final Supplier nativeToPythonTransfer; - public final CExtToJavaNode uncachedNativeToPythonTransfer; - - ArgBehavior(NativeSimpleType nativeSimpleType, Supplier pythonToNative, Supplier nativeToPython, CExtToJavaNode uncachedNativeToPython, - Supplier pythonToNativeTransfer, Supplier nativeToPythonTransfer, CExtToJavaNode uncachedNativeToPythonTransfer) { - this.nativeSimpleType = nativeSimpleType; - this.pythonToNative = pythonToNative; - this.nativeToPython = nativeToPython; - this.uncachedNativeToPython = uncachedNativeToPython; - this.pythonToNativeTransfer = pythonToNativeTransfer; - this.nativeToPythonTransfer = nativeToPythonTransfer; - this.uncachedNativeToPythonTransfer = uncachedNativeToPythonTransfer; - } - - ArgBehavior(NativeSimpleType nativeSimpleType, Supplier pythonToNative, Supplier nativeToPython, CExtToJavaNode uncachedNativeToPython) { - this(nativeSimpleType, pythonToNative, nativeToPython, uncachedNativeToPython, null, null, null); - } - - ArgBehavior(NativeSimpleType nativeSimpleType) { - this(nativeSimpleType, null, null, null, null, null, null); - } - -} +/** C signature and native type metadata, independent of Java/native conversion nodes. */ public enum ArgDescriptor { - Void(ArgBehavior.Void, "void"), - VoidNoReturn(ArgBehavior.Void, "void"), - PyObject(ArgBehavior.PyObject, "PyObject*"), - PyObjectBorrowed(ArgBehavior.PyObjectBorrowed, "PyObject*"), - PyObjectAsTruffleString(ArgBehavior.PyObjectAsTruffleString, "PyObject*"), - PyTypeObject(ArgBehavior.PyTypeObject, "PyTypeObject*"), - PyTypeObjectBorrowed(ArgBehavior.PyObjectBorrowed, "PyTypeObject*"), - PyTypeObjectTransfer(ArgBehavior.PyObject, "PyTypeObject*", true, false), - PyTypeObjectRawPointer(ArgBehavior.Pointer, "PyTypeObject*"), - PyListObject(ArgBehavior.PyObject, "PyListObject*"), - PyTupleObject(ArgBehavior.PyObject, "PyTupleObject*"), - PyMethodObject(ArgBehavior.PyObject, "PyMethodObject*"), - PyInstanceMethodObject(ArgBehavior.PyObject, "PyInstanceMethodObject*"), - PyObjectTransfer(ArgBehavior.PyObject, "PyObject*", true, false), - PyObjectReturn(ArgBehavior.PyObject, "PyObject*", true, true), - PyObjectRawPointer(ArgBehavior.Pointer, "PyObject*"), - Pointer(ArgBehavior.Pointer, "void*"), - Py_ssize_t(ArgBehavior.Int64, "Py_ssize_t"), - Py_hash_t(ArgBehavior.Int64, "Py_hash_t"), - Int(ArgBehavior.Int32, "int"), - ConstInt(ArgBehavior.Int32, "const int"), - Double(ArgBehavior.Float64, "double"), - Float(ArgBehavior.Float32, "float"), - Long(ArgBehavior.Long, "long"), - PyObjectConstArray(ArgBehavior.Pointer, "PyObject *const *"), + Void(NativeSimpleType.VOID, "void"), + VoidNoReturn(NativeSimpleType.VOID, "void"), + PyObject(NativeSimpleType.POINTER, "PyObject*", true), + PyObjectBorrowed(NativeSimpleType.POINTER, "PyObject*", true), + PyObjectAsTruffleString(NativeSimpleType.POINTER, "PyObject*"), + PyTypeObject(NativeSimpleType.POINTER, "PyTypeObject*", true), + PyTypeObjectBorrowed(NativeSimpleType.POINTER, "PyTypeObject*", true), + PyTypeObjectTransfer(NativeSimpleType.POINTER, "PyTypeObject*", true), + PyTypeObjectRawPointer(NativeSimpleType.POINTER, "PyTypeObject*"), + PyListObject(NativeSimpleType.POINTER, "PyListObject*", true), + PyTupleObject(NativeSimpleType.POINTER, "PyTupleObject*", true), + PyMethodObject(NativeSimpleType.POINTER, "PyMethodObject*", true), + PyInstanceMethodObject(NativeSimpleType.POINTER, "PyInstanceMethodObject*", true), + PyObjectTransfer(NativeSimpleType.POINTER, "PyObject*", true), + PyObjectReturn(NativeSimpleType.POINTER, "PyObject*", true), + PyObjectRawPointer(NativeSimpleType.POINTER, "PyObject*"), + Pointer(NativeSimpleType.POINTER, "void*"), + Py_ssize_t(NativeSimpleType.SINT64, "Py_ssize_t"), + Py_hash_t(NativeSimpleType.SINT64, "Py_hash_t"), + Int(NativeSimpleType.SINT32, "int"), + ConstInt(NativeSimpleType.SINT32, "const int"), + Double(NativeSimpleType.DOUBLE, "double"), + Float(NativeSimpleType.FLOAT, "float"), + Long(NativeSimpleType.SINT64, "long"), + PyObjectConstArray(NativeSimpleType.POINTER, "PyObject *const *"), - _FRAME(ArgBehavior.PyObject, "struct _frame*"), + _FRAME(NativeSimpleType.POINTER, "struct _frame*", true), _MOD_PTR("struct _mod*"), _NODE_PTR("struct _node*"), _PY_CLOCK_INFO_T_PTR("_Py_clock_info_t*"), - _PY_ERROR_HANDLER(ArgBehavior.Int32, "_Py_error_handler"), + _PY_ERROR_HANDLER(NativeSimpleType.SINT32, "_Py_error_handler"), _PY_IDENTIFIER_PTR("struct _Py_Identifier*"), _PYARG_PARSER_PTR("struct _PyArg_Parser*"), _PYBYTESWRITER_PTR("_PyBytesWriter*"), @@ -161,17 +84,17 @@ public enum ArgDescriptor { _PYTIME_T("PyTime_t"), _PYTIME_T_PTR("PyTime_t*"), _PYUNICODEWRITER_PTR("_PyUnicodeWriter*"), - CHAR(ArgBehavior.Char8, "char"), - UCHAR(ArgBehavior.UChar8, "unsigned char"), + CHAR(NativeSimpleType.SINT8, "char"), + UCHAR(NativeSimpleType.SINT8, "unsigned char"), CHAR_CONST("char*const"), CHAR_CONST_PTR("char*const*"), CHAR_CONST_ARRAY("char*const []"), - CHAR_PTR(ArgBehavior.Pointer, "char*"), - CHAR_PTR_LIST(ArgBehavior.Pointer, "char**"), - ConstCharPtrAsTruffleString(ArgBehavior.TruffleStringPointer, "const char*"), - ConstCharPtrAsTruffleStringStrict(ArgBehavior.TruffleStringPointerStrict, "const char*"), - ConstCharPtr(ArgBehavior.Pointer, "const char*"), - CharPtrAsTruffleString(ArgBehavior.TruffleStringPointer, "char*"), + CHAR_PTR(NativeSimpleType.POINTER, "char*"), + CHAR_PTR_LIST(NativeSimpleType.POINTER, "char**"), + ConstCharPtrAsTruffleString(NativeSimpleType.POINTER, "const char*"), + ConstCharPtrAsTruffleStringStrict(NativeSimpleType.POINTER, "const char*"), + ConstCharPtr(NativeSimpleType.POINTER, "const char*"), + CharPtrAsTruffleString(NativeSimpleType.POINTER, "char*"), CONST_CHAR_PTR_LIST("const char**"), CONST_PY_BUFFER("const Py_buffer*"), CONST_PY_SSIZE_T("const Py_ssize_t"), @@ -181,114 +104,114 @@ public enum ArgDescriptor { CONST_PY_UNICODE("const Py_UNICODE*"), CONST_PYCONFIG_PTR("const PyConfig*"), CONST_PYPRECONFIG_PTR("const PyPreConfig*"), - CONST_UINT8_T_PTR(ArgBehavior.Pointer, "const uint8_t*"), - CONST_UNSIGNED_CHAR_PTR(ArgBehavior.Pointer, "const unsigned char*"), - CONST_VOID_PTR(ArgBehavior.Pointer, "const void*"), + CONST_UINT8_T_PTR(NativeSimpleType.POINTER, "const uint8_t*"), + CONST_UNSIGNED_CHAR_PTR(NativeSimpleType.POINTER, "const unsigned char*"), + CONST_VOID_PTR(NativeSimpleType.POINTER, "const void*"), CONST_VOID_PTR_LIST("const void**"), - CONST_WCHAR_PTR(ArgBehavior.Pointer, "const wchar_t*"), + CONST_WCHAR_PTR(NativeSimpleType.POINTER, "const wchar_t*"), CROSSINTERPDATAFUNC("crossinterpdatafunc"), FILE_PTR("FILE*"), FREEFUNC("freefunc"), INITTAB("struct _inittab*"), - UINT16_T(ArgBehavior.UInt16, "uint16_t"), - INT32_T(ArgBehavior.Int32, "int32_t"), - INT32_T_PTR(ArgBehavior.Pointer, "int32_t*"), + UINT16_T(NativeSimpleType.SINT16, "uint16_t"), + INT32_T(NativeSimpleType.SINT32, "int32_t"), + INT32_T_PTR(NativeSimpleType.POINTER, "int32_t*"), INT_LIST("int*"), - INT8_T_PTR(ArgBehavior.Pointer, "int8_t*"), - INT64_T(ArgBehavior.Int64, "int64_t"), - INTPTR_T_PTR(ArgBehavior.Pointer, "intptr_t*"), - LONG_LONG(ArgBehavior.Int64, "long long"), + INT8_T_PTR(NativeSimpleType.POINTER, "int8_t*"), + INT64_T(NativeSimpleType.SINT64, "int64_t"), + INTPTR_T_PTR(NativeSimpleType.POINTER, "intptr_t*"), + LONG_LONG(NativeSimpleType.SINT64, "long long"), LONG_PTR("long*"), - DIGIT_PTR(ArgBehavior.Pointer, "digit*"), - INT64_T_PTR(ArgBehavior.Pointer, "int64_t*"), - PyASCIIObject(ArgBehavior.PyObject, "PyASCIIObject*"), + DIGIT_PTR(NativeSimpleType.POINTER, "digit*"), + INT64_T_PTR(NativeSimpleType.POINTER, "int64_t*"), + PyASCIIObject(NativeSimpleType.POINTER, "PyASCIIObject*", true), PY_AUDITHOOKFUNCTION("Py_AuditHookFunction"), Py_buffer("Py_buffer"), - PY_BUFFER_PTR(ArgBehavior.Pointer, "Py_buffer*"), - CONST_PY_BUFFER_PTR(ArgBehavior.Pointer, "const Py_buffer*"), - CONST_PY_SLOT_PTR(ArgBehavior.Pointer, "const PySlot*"), - PY_C_FUNCTION(ArgBehavior.Pointer, "PyCFunction"), - PyByteArrayObject(ArgBehavior.PyObject, "PyByteArrayObject*"), - PyCFunctionObject(ArgBehavior.PyObject, "PyCFunctionObject*"), - PyCMethodObject(ArgBehavior.PyObject, "PyCMethodObject*"), - PY_CAPSULE_DESTRUCTOR(ArgBehavior.Pointer, "PyCapsule_Destructor"), - PyCodeObject(ArgBehavior.PyObject, "PyCodeObject*"), - PyCodeObjectTransfer(ArgBehavior.PyObject, "PyCodeObject*", true, false), - PyCodeObjectRawPointer(ArgBehavior.Pointer, "PyCodeObject*"), - PyCode_WatchCallback(ArgBehavior.Pointer, "PyCode_WatchCallback"), - PY_COMPILER_FLAGS(ArgBehavior.Pointer, "PyCompilerFlags*"), + PY_BUFFER_PTR(NativeSimpleType.POINTER, "Py_buffer*"), + CONST_PY_BUFFER_PTR(NativeSimpleType.POINTER, "const Py_buffer*"), + CONST_PY_SLOT_PTR(NativeSimpleType.POINTER, "const PySlot*"), + PY_C_FUNCTION(NativeSimpleType.POINTER, "PyCFunction"), + PyByteArrayObject(NativeSimpleType.POINTER, "PyByteArrayObject*", true), + PyCFunctionObject(NativeSimpleType.POINTER, "PyCFunctionObject*", true), + PyCMethodObject(NativeSimpleType.POINTER, "PyCMethodObject*", true), + PY_CAPSULE_DESTRUCTOR(NativeSimpleType.POINTER, "PyCapsule_Destructor"), + PyCodeObject(NativeSimpleType.POINTER, "PyCodeObject*", true), + PyCodeObjectTransfer(NativeSimpleType.POINTER, "PyCodeObject*", true), + PyCodeObjectRawPointer(NativeSimpleType.POINTER, "PyCodeObject*"), + PyCode_WatchCallback(NativeSimpleType.POINTER, "PyCode_WatchCallback"), + PY_COMPILER_FLAGS(NativeSimpleType.POINTER, "PyCompilerFlags*"), PY_COMPLEX("Py_complex"), - PY_CRITICAL_SECTION_PTR(ArgBehavior.Pointer, "PyCriticalSection*"), - PY_CRITICAL_SECTION2_PTR(ArgBehavior.Pointer, "PyCriticalSection2*"), + PY_CRITICAL_SECTION_PTR(NativeSimpleType.POINTER, "PyCriticalSection*"), + PY_CRITICAL_SECTION2_PTR(NativeSimpleType.POINTER, "PyCriticalSection2*"), PyCodeAddressRange("PyCodeAddressRange*"), - PyCompactUnicodeObject(ArgBehavior.PyObject, "PyCompactUnicodeObject*"), - PyFunctionObject(ArgBehavior.PyObject, "PyFunctionObject*"), + PyCompactUnicodeObject(NativeSimpleType.POINTER, "PyCompactUnicodeObject*", true), + PyFunctionObject(NativeSimpleType.POINTER, "PyFunctionObject*", true), PyFrameConstructor("PyFrameConstructor*"), - PyFrameObject(ArgBehavior.PyObject, "PyFrameObject*"), - PyFrameObjectBorrowed(ArgBehavior.PyObjectBorrowed, "PyFrameObject*"), - PyFrameObjectTransfer(ArgBehavior.PyObject, "PyFrameObject*", true, false), - PyFrameObjectRawPointer(ArgBehavior.Pointer, "PyFrameObject*"), + PyFrameObject(NativeSimpleType.POINTER, "PyFrameObject*", true), + PyFrameObjectBorrowed(NativeSimpleType.POINTER, "PyFrameObject*", true), + PyFrameObjectTransfer(NativeSimpleType.POINTER, "PyFrameObject*", true), + PyFrameObjectRawPointer(NativeSimpleType.POINTER, "PyFrameObject*"), _PyFrameEvalFunction("_PyFrameEvalFunction"), _PyInterpreterFrame("struct _PyInterpreterFrame*"), - PY_GEN_OBJECT(ArgBehavior.PyObject, "PyGenObject*"), - PyGetSetDef(ArgBehavior.Pointer, "PyGetSetDef*"), - PY_GIL_STATE_STATE(ArgBehavior.Int32, "PyGILState_STATE"), - PY_ABI_INFO_PTR(ArgBehavior.Pointer, "PyABIInfo*"), - PY_INTERPRETER_GUARD_PTR(ArgBehavior.Pointer, "PyInterpreterGuard*"), - PY_INTERPRETER_VIEW_PTR(ArgBehavior.Pointer, "PyInterpreterView*"), - PY_HASH_T_PTR(ArgBehavior.Pointer, "Py_hash_t*"), + PY_GEN_OBJECT(NativeSimpleType.POINTER, "PyGenObject*", true), + PyGetSetDef(NativeSimpleType.POINTER, "PyGetSetDef*"), + PY_GIL_STATE_STATE(NativeSimpleType.SINT32, "PyGILState_STATE"), + PY_ABI_INFO_PTR(NativeSimpleType.POINTER, "PyABIInfo*"), + PY_INTERPRETER_GUARD_PTR(NativeSimpleType.POINTER, "PyInterpreterGuard*"), + PY_INTERPRETER_VIEW_PTR(NativeSimpleType.POINTER, "PyInterpreterView*"), + PY_HASH_T_PTR(NativeSimpleType.POINTER, "Py_hash_t*"), PY_IDENTIFIER("_Py_Identifier*"), - PyInterpreterState(ArgBehavior.Pointer, "PyInterpreterState*"), - ConstPyInterpreterConfig(ArgBehavior.Pointer, "const PyInterpreterConfig*"), + PyInterpreterState(NativeSimpleType.POINTER, "PyInterpreterState*"), + ConstPyInterpreterConfig(NativeSimpleType.POINTER, "const PyInterpreterConfig*"), PY_LOCK_STATUS("PyLockStatus"), - PyLongObject(ArgBehavior.PyObject, "PyLongObject*"), - ConstPyLongObject(ArgBehavior.PyObject, "const PyLongObject*"), - PyLongObjectTransfer(ArgBehavior.PyObject, "PyLongObject*", true, false), - PY_LONG_EXPORT_PTR(ArgBehavior.Pointer, "PyLongExport*"), - PY_LONG_WRITER_PTR(ArgBehavior.Pointer, "PyLongWriter*"), - CONST_PY_LONG_LAYOUT_PTR(ArgBehavior.Pointer, "const PyLongLayout*"), - PyMemberDef(ArgBehavior.Pointer, "PyMemberDef*"), - PyModuleObject(ArgBehavior.PyObject, "PyModuleObject*"), - PyModuleObjectTransfer(ArgBehavior.PyObject, "PyModuleObject*", true, false), - PyMethodDef(ArgBehavior.Pointer, "PyMethodDef*"), - PY_MONITORING_STATE_PTR(ArgBehavior.Pointer, "PyMonitoringState*"), - PyModuleDef(ArgBehavior.Pointer, "PyModuleDef*"), // it's unclear if this should be - // PyObject - PyModuleDefSlot(ArgBehavior.Pointer, "PyModuleDef_Slot*"), - PyNumberMethods(ArgBehavior.Pointer, "PyNumberMethods*"), - PySequenceMethods(ArgBehavior.Pointer, "PySequenceMethods*"), - PyMappingMethods(ArgBehavior.Pointer, "PyMappingMethods*"), - PyAsyncMethods(ArgBehavior.Pointer, "PyAsyncMethods*"), - PyBufferProcs(ArgBehavior.Pointer, "PyBufferProcs*"), - PyMethodDescrObject(ArgBehavior.PyObject, "PyMethodDescrObject*"), - PySendResult(ArgBehavior.Int32, "PySendResult"), - PySetObject(ArgBehavior.PyObject, "PySetObject*"), - PyDescrObject(ArgBehavior.PyObject, "PyDescrObject*"), - PY_MUTEX_PTR(ArgBehavior.Pointer, "PyMutex*"), + PyLongObject(NativeSimpleType.POINTER, "PyLongObject*", true), + ConstPyLongObject(NativeSimpleType.POINTER, "const PyLongObject*", true), + PyLongObjectTransfer(NativeSimpleType.POINTER, "PyLongObject*", true), + PY_LONG_EXPORT_PTR(NativeSimpleType.POINTER, "PyLongExport*"), + PY_LONG_WRITER_PTR(NativeSimpleType.POINTER, "PyLongWriter*"), + CONST_PY_LONG_LAYOUT_PTR(NativeSimpleType.POINTER, "const PyLongLayout*"), + PyMemberDef(NativeSimpleType.POINTER, "PyMemberDef*"), + PyModuleObject(NativeSimpleType.POINTER, "PyModuleObject*", true), + PyModuleObjectTransfer(NativeSimpleType.POINTER, "PyModuleObject*", true), + PyMethodDef(NativeSimpleType.POINTER, "PyMethodDef*"), + PY_MONITORING_STATE_PTR(NativeSimpleType.POINTER, "PyMonitoringState*"), + PyModuleDef(NativeSimpleType.POINTER, "PyModuleDef*"), // it's unclear if this should be + // PyObject + PyModuleDefSlot(NativeSimpleType.POINTER, "PyModuleDef_Slot*"), + PyNumberMethods(NativeSimpleType.POINTER, "PyNumberMethods*"), + PySequenceMethods(NativeSimpleType.POINTER, "PySequenceMethods*"), + PyMappingMethods(NativeSimpleType.POINTER, "PyMappingMethods*"), + PyAsyncMethods(NativeSimpleType.POINTER, "PyAsyncMethods*"), + PyBufferProcs(NativeSimpleType.POINTER, "PyBufferProcs*"), + PyMethodDescrObject(NativeSimpleType.POINTER, "PyMethodDescrObject*", true), + PySendResult(NativeSimpleType.SINT32, "PySendResult"), + PySetObject(NativeSimpleType.POINTER, "PySetObject*", true), + PyDescrObject(NativeSimpleType.POINTER, "PyDescrObject*", true), + PY_MUTEX_PTR(NativeSimpleType.POINTER, "PyMutex*"), PY_OPENCODEHOOKFUNCTION("Py_OpenCodeHookFunction"), PY_OS_SIGHANDLER("PyOS_sighandler_t"), - PySliceObject(ArgBehavior.PyObject, "PySliceObject*"), - PY_SSIZE_T_PTR(ArgBehavior.Pointer, "Py_ssize_t*"), + PySliceObject(NativeSimpleType.POINTER, "PySliceObject*", true), + PY_SSIZE_T_PTR(NativeSimpleType.POINTER, "Py_ssize_t*"), PY_STRUCT_SEQUENCE_DESC("PyStructSequence_Desc*"), - PyThreadState(ArgBehavior.Pointer, "PyThreadState*"), - PyThreadStatePtr(ArgBehavior.Pointer, "PyThreadState**"), - PY_THREAD_STATE_TOKEN_PTR(ArgBehavior.Pointer, "PyThreadStateToken*"), - PY_REF_TRACER(ArgBehavior.Pointer, "PyRefTracer"), - PY_THREAD_TYPE_LOCK(ArgBehavior.Int64, "PyThread_type_lock"), - PY_THREAD_TYPE_LOCK_PTR(ArgBehavior.Pointer, "PyThread_type_lock*"), + PyThreadState(NativeSimpleType.POINTER, "PyThreadState*"), + PyThreadStatePtr(NativeSimpleType.POINTER, "PyThreadState**"), + PY_THREAD_STATE_TOKEN_PTR(NativeSimpleType.POINTER, "PyThreadStateToken*"), + PY_REF_TRACER(NativeSimpleType.POINTER, "PyRefTracer"), + PY_THREAD_TYPE_LOCK(NativeSimpleType.SINT64, "PyThread_type_lock"), + PY_THREAD_TYPE_LOCK_PTR(NativeSimpleType.POINTER, "PyThread_type_lock*"), PyTryBlock("PyTryBlock*"), PY_TRACEFUNC("Py_tracefunc"), PY_TSS_T_PTR("Py_tss_t*"), PY_TYPE_SPEC("PyType_Spec*"), - PY_SLOT_PTR(ArgBehavior.Pointer, "struct PySlot*"), - PY_TYPE_OBJECT_PTR_LIST(ArgBehavior.Pointer, "PyTypeObject**"), - PY_UCS4(ArgBehavior.Int32, "Py_UCS4"), + PY_SLOT_PTR(NativeSimpleType.POINTER, "struct PySlot*"), + PY_TYPE_OBJECT_PTR_LIST(NativeSimpleType.POINTER, "PyTypeObject**"), + PY_UCS4(NativeSimpleType.SINT32, "Py_UCS4"), PY_UCS4_PTR("Py_UCS4*"), PY_UNICODE("Py_UNICODE"), - PyUnicodeObject(ArgBehavior.PyObject, "PyUnicodeObject*"), - PY_UNICODE_PTR(ArgBehavior.Pointer, "Py_UNICODE*"), - PyVarObject(ArgBehavior.PyObject, "PyVarObject*"), - ConstPyVarObject(ArgBehavior.PyObject, "const PyVarObject*"), + PyUnicodeObject(NativeSimpleType.POINTER, "PyUnicodeObject*", true), + PY_UNICODE_PTR(NativeSimpleType.POINTER, "Py_UNICODE*"), + PyVarObject(NativeSimpleType.POINTER, "PyVarObject*", true), + ConstPyVarObject(NativeSimpleType.POINTER, "const PyVarObject*", true), PYADDRPAIR_PTR("PyAddrPair*"), PYCONFIG_PTR("PyConfig*"), PYDICTKEYSOBJECT_PTR("PyDictKeysObject*"), @@ -298,20 +221,20 @@ public enum ArgDescriptor { PYMEMALLOCATOREX_PTR("PyMemAllocatorEx*"), PYMODULEDEF_PTR("struct PyModuleDef*"), PyObjectConst("PyObject*const"), - PyObjectConstPtr(ArgBehavior.Pointer, "PyObject*const*"), + PyObjectConstPtr(NativeSimpleType.POINTER, "PyObject*const*"), PYOBJECT_CONST_PTR_LIST("PyObject*const**"), - PyObjectPtr(ArgBehavior.Pointer, "PyObject**"), + PyObjectPtr(NativeSimpleType.POINTER, "PyObject**"), PYOBJECTARENAALLOCATOR_PTR("PyObjectArenaAllocator*"), PYPRECONFIG_PTR("PyPreConfig*"), PYSTATUS("PyStatus"), PYUNICODE_KIND("enum PyUnicode_Kind"), - PYWEAKREFERENCE_PTR(ArgBehavior.Pointer, "PyWeakReference*"), + PYWEAKREFERENCE_PTR(NativeSimpleType.POINTER, "PyWeakReference*"), PYWIDESTRINGLIST_PTR("PyWideStringList*"), - PyDict_WatchCallback(ArgBehavior.Pointer, "PyDict_WatchCallback"), - PyFunction_WatchCallback(ArgBehavior.Pointer, "PyFunction_WatchCallback"), - PyType_WatchCallback(ArgBehavior.Pointer, "PyType_WatchCallback"), - gcvisitobjects_t(ArgBehavior.Pointer, "gcvisitobjects_t"), - SIZE_T(ArgBehavior.Int64, "size_t"), + PyDict_WatchCallback(NativeSimpleType.POINTER, "PyDict_WatchCallback"), + PyFunction_WatchCallback(NativeSimpleType.POINTER, "PyFunction_WatchCallback"), + PyType_WatchCallback(NativeSimpleType.POINTER, "PyType_WatchCallback"), + gcvisitobjects_t(NativeSimpleType.POINTER, "gcvisitobjects_t"), + SIZE_T(NativeSimpleType.SINT64, "size_t"), SIZE_T_PTR("size_t*"), STAT_PTR("struct stat*"), PY_STAT_PTR("struct _Py_stat_struct*"), @@ -320,159 +243,109 @@ public enum ArgDescriptor { TIMESPEC_PTR("struct timespec*"), TIMEVAL_PTR("struct timeval*"), TM_PTR("struct tm*"), - UINTPTR_T(ArgBehavior.UInt64, "uintptr_t"), - UINT32_T(ArgBehavior.UInt32, "uint32_t"), - UINT32_T_PTR(ArgBehavior.Pointer, "uint32_t*"), - UINT64_T(ArgBehavior.UInt64, "uint64_t"), - UINT64_T_PTR(ArgBehavior.Pointer, "uint64_t*"), - UNSIGNED_CHAR_PTR(ArgBehavior.Pointer, "unsigned char*"), - UNSIGNED_INT(ArgBehavior.UInt32, "unsigned int"), - UNSIGNED_LONG(ArgBehavior.Long, "unsigned long"), - UNSIGNED_LONG_LONG(ArgBehavior.Int64, "unsigned long long"), - VA_LIST(ArgBehavior.Pointer, "va_list"), - VA_LIST_PTR(ArgBehavior.Pointer, "va_list*"), + UINTPTR_T(NativeSimpleType.SINT64, "uintptr_t"), + UINT32_T(NativeSimpleType.SINT32, "uint32_t"), + UINT32_T_PTR(NativeSimpleType.POINTER, "uint32_t*"), + UINT64_T(NativeSimpleType.SINT64, "uint64_t"), + UINT64_T_PTR(NativeSimpleType.POINTER, "uint64_t*"), + UNSIGNED_CHAR_PTR(NativeSimpleType.POINTER, "unsigned char*"), + UNSIGNED_INT(NativeSimpleType.SINT32, "unsigned int"), + UNSIGNED_LONG(NativeSimpleType.SINT64, "unsigned long"), + UNSIGNED_LONG_LONG(NativeSimpleType.SINT64, "unsigned long long"), + VA_LIST(NativeSimpleType.POINTER, "va_list"), + VA_LIST_PTR(NativeSimpleType.POINTER, "va_list*"), VARARGS("..."), - VOID_PTR_LIST(ArgBehavior.Pointer, "void**"), - WCHAR_T_PTR(ArgBehavior.Pointer, "wchar_t*"), - WCHAR_T_CONST_PTR(ArgBehavior.Pointer, "wchar_t*const*"), - WCHAR_T_PTR_LIST(ArgBehavior.Pointer, "wchar_t**"), - WCHAR_T_PTR_PTR_LIST(ArgBehavior.Pointer, "wchar_t***"), - WRAPPERBASE(ArgBehavior.Pointer, "struct wrapperbase*"), - destructor(ArgBehavior.Pointer, "destructor"), - getattrfunc(ArgBehavior.Pointer, "getattrfunc"), - setattrfunc(ArgBehavior.Pointer, "setattrfunc"), - reprfunc(ArgBehavior.Pointer, "reprfunc"), - hashfunc(ArgBehavior.Pointer, "hashfunc"), - ternaryfunc(ArgBehavior.Pointer, "ternaryfunc"), - getattrofunc(ArgBehavior.Pointer, "getattrofunc"), - setattrofunc(ArgBehavior.Pointer, "setattrofunc"), - traverseproc(ArgBehavior.Pointer, "traverseproc"), - visitproc(ArgBehavior.Pointer, "visitproc"), - inquiry(ArgBehavior.Pointer, "inquiry"), - richcmpfunc(ArgBehavior.Pointer, "richcmpfunc"), - getiterfunc(ArgBehavior.Pointer, "getiterfunc"), - iternextfunc(ArgBehavior.Pointer, "iternextfunc"), - descrgetfunc(ArgBehavior.Pointer, "descrgetfunc"), - descrsetfunc(ArgBehavior.Pointer, "descrsetfunc"), - initproc(ArgBehavior.Pointer, "initproc"), - allocfunc(ArgBehavior.Pointer, "allocfunc"), - newfunc(ArgBehavior.Pointer, "newfunc"), - freefunc(ArgBehavior.Pointer, "freefunc"), - vectorcallfunc(ArgBehavior.Pointer, "vectorcallfunc"), - binaryfunc(ArgBehavior.Pointer, "binaryfunc"), - unaryfunc(ArgBehavior.Pointer, "unaryfunc"), - lenfunc(ArgBehavior.Pointer, "lenfunc"), - ssizeargfunc(ArgBehavior.Pointer, "ssizeargfunc"), - ssizeobjargproc(ArgBehavior.Pointer, "ssizeobjargproc"), - objobjproc(ArgBehavior.Pointer, "objobjproc"), - objobjargproc(ArgBehavior.Pointer, "objobjargproc"), - getbufferproc(ArgBehavior.Pointer, "getbufferproc"), - releasebufferproc(ArgBehavior.Pointer, "releasebufferproc"), - getter(ArgBehavior.Pointer, "getter"), - setter(ArgBehavior.Pointer, "setter"), - sendfunc(ArgBehavior.Pointer, "sendfunc"), + VOID_PTR_LIST(NativeSimpleType.POINTER, "void**"), + WCHAR_T_PTR(NativeSimpleType.POINTER, "wchar_t*"), + WCHAR_T_CONST_PTR(NativeSimpleType.POINTER, "wchar_t*const*"), + WCHAR_T_PTR_LIST(NativeSimpleType.POINTER, "wchar_t**"), + WCHAR_T_PTR_PTR_LIST(NativeSimpleType.POINTER, "wchar_t***"), + WRAPPERBASE(NativeSimpleType.POINTER, "struct wrapperbase*"), + destructor(NativeSimpleType.POINTER, "destructor"), + getattrfunc(NativeSimpleType.POINTER, "getattrfunc"), + setattrfunc(NativeSimpleType.POINTER, "setattrfunc"), + reprfunc(NativeSimpleType.POINTER, "reprfunc"), + hashfunc(NativeSimpleType.POINTER, "hashfunc"), + ternaryfunc(NativeSimpleType.POINTER, "ternaryfunc"), + getattrofunc(NativeSimpleType.POINTER, "getattrofunc"), + setattrofunc(NativeSimpleType.POINTER, "setattrofunc"), + traverseproc(NativeSimpleType.POINTER, "traverseproc"), + visitproc(NativeSimpleType.POINTER, "visitproc"), + inquiry(NativeSimpleType.POINTER, "inquiry"), + richcmpfunc(NativeSimpleType.POINTER, "richcmpfunc"), + getiterfunc(NativeSimpleType.POINTER, "getiterfunc"), + iternextfunc(NativeSimpleType.POINTER, "iternextfunc"), + descrgetfunc(NativeSimpleType.POINTER, "descrgetfunc"), + descrsetfunc(NativeSimpleType.POINTER, "descrsetfunc"), + initproc(NativeSimpleType.POINTER, "initproc"), + allocfunc(NativeSimpleType.POINTER, "allocfunc"), + newfunc(NativeSimpleType.POINTER, "newfunc"), + freefunc(NativeSimpleType.POINTER, "freefunc"), + vectorcallfunc(NativeSimpleType.POINTER, "vectorcallfunc"), + binaryfunc(NativeSimpleType.POINTER, "binaryfunc"), + unaryfunc(NativeSimpleType.POINTER, "unaryfunc"), + lenfunc(NativeSimpleType.POINTER, "lenfunc"), + ssizeargfunc(NativeSimpleType.POINTER, "ssizeargfunc"), + ssizeobjargproc(NativeSimpleType.POINTER, "ssizeobjargproc"), + objobjproc(NativeSimpleType.POINTER, "objobjproc"), + objobjargproc(NativeSimpleType.POINTER, "objobjargproc"), + getbufferproc(NativeSimpleType.POINTER, "getbufferproc"), + releasebufferproc(NativeSimpleType.POINTER, "releasebufferproc"), + getter(NativeSimpleType.POINTER, "getter"), + setter(NativeSimpleType.POINTER, "setter"), + sendfunc(NativeSimpleType.POINTER, "sendfunc"), func_objint("int (*)(PyObject*value)"), func_voidvoidptr("void (*)(void*)"), - func_voidvoid(ArgBehavior.Pointer, "void (*)(void)"), + func_voidvoid(NativeSimpleType.POINTER, "void (*)(void)"), func_intvoidptr("int (*)(void*)"), func_objvoid("PyObject*(*)(void)"), func_objcharsizevoidptr("PyObject*(*)(const char*, Py_ssize_t, void*)"), - xid_newobjectfunc(ArgBehavior.Pointer, "xid_newobjectfunc"), - atexit_datacallbackfunc(ArgBehavior.Pointer, "atexit_datacallbackfunc"), + xid_newobjectfunc(NativeSimpleType.POINTER, "xid_newobjectfunc"), + atexit_datacallbackfunc(NativeSimpleType.POINTER, "atexit_datacallbackfunc"), - PrimitiveResult32(ArgBehavior.Int32, "int"), - PrimitiveResult64(ArgBehavior.Int64, "long"); + PrimitiveResult32(NativeSimpleType.SINT32, "int"), + PrimitiveResult64(NativeSimpleType.SINT64, "long"); private final String cSignature; - private final ArgBehavior behavior; - private final boolean transfer; - private final boolean release; + /** Null for descriptors whose native type has not been specified. */ + private final NativeSimpleType nativeSimpleType; + /** Whether struct accesses treat this type as a Python object reference rather than raw data. */ + private final boolean pyObject; ArgDescriptor(String cSignature) { - this.behavior = ArgBehavior.Unknown; - this.cSignature = cSignature; - this.transfer = false; - this.release = false; + this(null, cSignature); } - ArgDescriptor(ArgBehavior behavior, String cSignature) { - this.behavior = behavior; - this.cSignature = cSignature; - this.transfer = false; - this.release = false; + ArgDescriptor(NativeSimpleType nativeSimpleType, String cSignature) { + this(nativeSimpleType, cSignature, false); } - ArgDescriptor(ArgBehavior behavior, String cSignature, boolean transfer, boolean release) { - this.behavior = behavior; + ArgDescriptor(NativeSimpleType nativeSimpleType, String cSignature, boolean pyObject) { + this.nativeSimpleType = nativeSimpleType; this.cSignature = cSignature; - this.transfer = transfer; - this.release = release; - } - - public static CExtToJavaNode[] createNativeToPython(ArgDescriptor[] args) { - CExtToJavaNode[] result = new CExtToJavaNode[args.length]; - for (int i = 0; i < args.length; i++) { - result[i] = args[i].createNativeToPythonNode(); - } - return result; + this.pyObject = pyObject; } public String getCSignature() { return cSignature; } - public CExtToNativeNode createPythonToNativeNode() { - assert behavior != ArgBehavior.Unknown : "undefined behavior in " + this; - Supplier factory = transfer ? behavior.pythonToNativeTransfer : behavior.pythonToNative; - assert !(transfer && factory == null); - return factory == null ? null : factory.get(); - } - - public CExtToJavaNode createNativeToPythonNode() { - assert behavior != ArgBehavior.Unknown : "undefined behavior in " + this; - Supplier factory; - if (transfer && release) { - factory = NativeToPythonReturnNode::create; - } else if (transfer) { - factory = behavior.nativeToPythonTransfer; - } else { - factory = behavior.nativeToPython; - } - assert !(transfer && factory == null); - return factory == null ? null : factory.get(); - } - - public CExtToJavaNode getUncachedNativeToPythonNode() { - assert behavior != ArgBehavior.Unknown : "undefined behavior in " + this; - CExtToJavaNode node = transfer ? behavior.uncachedNativeToPythonTransfer : behavior.uncachedNativeToPython; - assert !(transfer && node == null); - return node; - } - public NativeSimpleType getNativeSimpleType() { - return behavior.nativeSimpleType; + // Preserve the legacy carrier type for signature-only descriptors with no native type. + return nativeSimpleType == null ? NativeSimpleType.SINT64 : nativeSimpleType; } public boolean isPyObjectOrPointer() { - return switch (behavior) { - case PyObject, PyTypeObject, PyObjectBorrowed, Pointer, TruffleStringPointer, TruffleStringPointerStrict -> true; - default -> false; - }; + return isPyObject() || isPointer(); } public boolean isPointer() { - return switch (behavior) { - case Pointer, TruffleStringPointer, TruffleStringPointerStrict -> true; - default -> false; - }; + return nativeSimpleType == NativeSimpleType.POINTER && !pyObject; } public boolean isPyObject() { - return switch (behavior) { - case PyObject, PyObjectBorrowed, PyTypeObject -> true; - default -> false; - }; + return pyObject; } public boolean isCharPtr() { @@ -480,26 +353,26 @@ public boolean isCharPtr() { } public boolean isI64() { - return behavior == ArgBehavior.Int64 || behavior == ArgBehavior.Long || behavior == ArgBehavior.UInt64; + return nativeSimpleType == NativeSimpleType.SINT64; } public boolean isI8() { - return behavior == ArgBehavior.Char8 || behavior == ArgBehavior.UChar8; + return nativeSimpleType == NativeSimpleType.SINT8; } public boolean isI32() { - return behavior == ArgBehavior.Int32 || behavior == ArgBehavior.UInt32; + return nativeSimpleType == NativeSimpleType.SINT32; } public boolean isI16() { - return behavior == ArgBehavior.Char16 || behavior == ArgBehavior.UInt16; + return nativeSimpleType == NativeSimpleType.SINT16; } public boolean isFloat() { - return behavior == ArgBehavior.Float32; + return nativeSimpleType == NativeSimpleType.FLOAT; } public boolean isDouble() { - return behavior == ArgBehavior.Float64; + return nativeSimpleType == NativeSimpleType.DOUBLE; } } From 94c3e9f1b69e8be227486c938ceacbb429d0b1de Mon Sep 17 00:00:00 2001 From: Florian Angerer Date: Tue, 20 Oct 2026 18:04:03 +0200 Subject: [PATCH 06/11] Move ArgDescriptor to the annotations package --- .../python/annotations}/ArgDescriptor.java | 4 +- .../processor/CApiBuiltinsProcessor.java | 88 ++---- .../cext/PythonCextAbstractBuiltins.java | 14 +- .../modules/cext/PythonCextArrayBuiltins.java | 16 +- .../modules/cext/PythonCextBoolBuiltins.java | 2 +- .../modules/cext/PythonCextBuiltins.java | 32 +- .../cext/PythonCextByteArrayBuiltins.java | 4 +- .../modules/cext/PythonCextBytesBuiltins.java | 18 +- .../modules/cext/PythonCextCEvalBuiltins.java | 14 +- .../cext/PythonCextCapsuleBuiltins.java | 10 +- .../modules/cext/PythonCextClassBuiltins.java | 2 +- .../modules/cext/PythonCextCodeBuiltins.java | 10 +- .../modules/cext/PythonCextCodecBuiltins.java | 4 +- .../cext/PythonCextComplexBuiltins.java | 8 +- .../cext/PythonCextContextBuiltins.java | 10 +- .../cext/PythonCextDateTimeBuiltins.java | 10 +- .../modules/cext/PythonCextDescrBuiltins.java | 12 +- .../modules/cext/PythonCextDictBuiltins.java | 28 +- .../modules/cext/PythonCextErrBuiltins.java | 12 +- .../modules/cext/PythonCextFileBuiltins.java | 4 +- .../modules/cext/PythonCextFloatBuiltins.java | 6 +- .../modules/cext/PythonCextFrameBuiltins.java | 12 +- .../modules/cext/PythonCextFuncBuiltins.java | 12 +- .../cext/PythonCextGenericAliasBuiltins.java | 4 +- .../modules/cext/PythonCextHashBuiltins.java | 14 +- .../cext/PythonCextImportBuiltins.java | 12 +- .../modules/cext/PythonCextIterBuiltins.java | 4 +- .../modules/cext/PythonCextListBuiltins.java | 16 +- .../modules/cext/PythonCextLongBuiltins.java | 30 +- .../cext/PythonCextMemoryViewBuiltins.java | 8 +- .../cext/PythonCextMethodBuiltins.java | 14 +- .../cext/PythonCextModuleBuiltins.java | 32 +- .../cext/PythonCextNamespaceBuiltins.java | 4 +- .../cext/PythonCextObjectBuiltins.java | 32 +- .../cext/PythonCextPickleBufferBuiltins.java | 4 +- .../cext/PythonCextPosixmoduleBuiltins.java | 4 +- .../cext/PythonCextPyLifecycleBuiltins.java | 4 +- .../cext/PythonCextPyStateBuiltins.java | 18 +- .../cext/PythonCextPyThreadBuiltins.java | 2 +- .../cext/PythonCextPythonRunBuiltins.java | 10 +- .../modules/cext/PythonCextSetBuiltins.java | 8 +- .../modules/cext/PythonCextSliceBuiltins.java | 4 +- .../modules/cext/PythonCextSlotBuiltins.java | 62 ++-- .../cext/PythonCextStructSeqBuiltins.java | 12 +- .../modules/cext/PythonCextSysBuiltins.java | 10 +- .../cext/PythonCextTracebackBuiltins.java | 8 +- .../modules/cext/PythonCextTupleBuiltins.java | 12 +- .../modules/cext/PythonCextTypeBuiltins.java | 26 +- .../cext/PythonCextUnicodeBuiltins.java | 32 +- .../modules/cext/PythonCextWarnBuiltins.java | 8 +- .../cext/PythonCextWeakrefBuiltins.java | 14 +- .../objects/cext/capi/CApiFunction.java | 286 +++++++++--------- .../cext/capi/ExternalFunctionNodes.java | 4 +- .../cext/capi/ExternalFunctionSignature.java | 52 ++-- .../cext/capi/MethodDescriptorWrapper.java | 12 +- .../objects/cext/capi/NativeCAPISymbol.java | 2 +- .../objects/cext/common/NativeCExtSymbol.java | 2 +- .../objects/cext/structs/CFields.java | 130 ++++---- 58 files changed, 591 insertions(+), 637 deletions(-) rename graalpython/{com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/transitions => com.oracle.graal.python.annotations/src/com/oracle/graal/python/annotations}/ArgDescriptor.java (99%) diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/transitions/ArgDescriptor.java b/graalpython/com.oracle.graal.python.annotations/src/com/oracle/graal/python/annotations/ArgDescriptor.java similarity index 99% rename from graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/transitions/ArgDescriptor.java rename to graalpython/com.oracle.graal.python.annotations/src/com/oracle/graal/python/annotations/ArgDescriptor.java index 8f3e63999c..35901aee66 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/transitions/ArgDescriptor.java +++ b/graalpython/com.oracle.graal.python.annotations/src/com/oracle/graal/python/annotations/ArgDescriptor.java @@ -38,9 +38,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package com.oracle.graal.python.builtins.objects.cext.capi.transitions; - -import com.oracle.graal.python.annotations.NativeSimpleType; +package com.oracle.graal.python.annotations; /** C signature and native type metadata, independent of Java/native conversion nodes. */ public enum ArgDescriptor { diff --git a/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java b/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java index bd3edc643e..8d609abe87 100644 --- a/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java +++ b/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java @@ -82,6 +82,7 @@ import javax.tools.Diagnostic.Kind; import javax.tools.StandardLocation; +import com.oracle.graal.python.annotations.ArgDescriptor; import com.oracle.graal.python.annotations.CApiConstant; import com.oracle.graal.python.annotations.CApiConstants; import com.oracle.graal.python.annotations.CApiExternalFunctionSignatures; @@ -100,7 +101,7 @@ public class CApiBuiltinsProcessor extends AbstractProcessor { private static final String PYTHON_CONTEXT = "com.oracle.graal.python.runtime.PythonContext"; private static final String TARGET_PACKAGE = "com.oracle.graal.python.builtins.modules.cext"; - private static class ArgDescriptorsTreeScanner extends TreePathScanner { + private static class InitializersTreeScanner extends TreePathScanner { private Map initializerMap; @Override @@ -113,39 +114,21 @@ public Object visitVariable(VariableTree variableTree, Trees trees) { } } - private Map signatureToArgDescriptor = new HashMap<>(); - private Map argDescriptorToInitializer = new HashMap<>(); + private final Map signatureToArgDescriptor = Arrays.stream(ArgDescriptor.values()).collect( + Collectors.toMap(ArgDescriptor::getCSignature, ArgDescriptor::name, (first, second) -> first)); private Map externalFunctionSignatureToInitializer = new HashMap<>(); private Map nativeCAPISymbolToInitializer = new HashMap<>(); private Trees trees; - private String getFieldInitializer(VariableElement theField) { - if (trees == null) { - return ""; - } - if (argDescriptorToInitializer.isEmpty()) { - // lazily initialize all arg descriptors in a single scan - var codeScanner = new ArgDescriptorsTreeScanner(); - var tp = trees.getPath(theField.getEnclosingElement()); - codeScanner.initializerMap = argDescriptorToInitializer; - codeScanner.scan(tp, this.trees); - for (var e : argDescriptorToInitializer.entrySet()) { - var signature = getCSignature(e.getValue()); - signatureToArgDescriptor.putIfAbsent(signature, e.getKey()); - } - } - return argDescriptorToInitializer.get(name(theField)); - } - private String getExternalFunctionSignatureInitializer(VariableElement theField) { if (trees == null) { return ""; } if (externalFunctionSignatureToInitializer.isEmpty()) { // lazily initialize all external function signatures in a single scan - var codeScanner = new ArgDescriptorsTreeScanner(); + var codeScanner = new InitializersTreeScanner(); var tp = trees.getPath(theField.getEnclosingElement()); codeScanner.initializerMap = externalFunctionSignatureToInitializer; codeScanner.scan(tp, this.trees); @@ -159,7 +142,7 @@ private String getNativeCAPISymbolInitializer(VariableElement theField) { return ""; } if (nativeCAPISymbolToInitializer.isEmpty()) { - var codeScanner = new ArgDescriptorsTreeScanner(); + var codeScanner = new InitializersTreeScanner(); var tp = trees.getPath(theField.getEnclosingElement()); codeScanner.initializerMap = nativeCAPISymbolToInitializer; codeScanner.scan(tp, this.trees); @@ -180,17 +163,7 @@ public synchronized void init(ProcessingEnvironment pe) { } private String getCSignature(VariableElement obj) { - return getCSignature(getFieldInitializer(obj)); - } - - private static String getCSignature(String initializer) { - // assumes that the C signature is the first literal string in the initializer - var parts = initializer.split("\""); - if (parts.length < 2) { - return ""; - } else { - return initializer.split("\"")[1]; - } + return ArgDescriptor.valueOf(name(obj)).getCSignature(); } private static String[] splitInitializerArgs(String initializer) { @@ -270,12 +243,12 @@ public CApiConstantDesc(Element origin, String name, String value) { } } - private String capiTypeToLogicalType(VariableElement element) { - var init = getFieldInitializer(element); - String prefix = "NativeSimpleType."; - int start = init.indexOf(prefix); - NativeSimpleType type = start < 0 ? NativeSimpleType.SINT64 : NativeSimpleType.valueOf(init.substring(start + prefix.length(), init.indexOf(',', start))); - return switch (type) { + private static String capiTypeToLogicalType(VariableElement element) { + return capiTypeToLogicalType(ArgDescriptor.valueOf(name(element))); + } + + private static String capiTypeToLogicalType(ArgDescriptor descriptor) { + return switch (descriptor.getNativeSimpleType()) { case VOID -> "void"; case DOUBLE -> "double"; case FLOAT -> "float"; @@ -287,11 +260,11 @@ private String capiTypeToLogicalType(VariableElement element) { }; } - private boolean isVoid(VariableElement element) { + private static boolean isVoid(VariableElement element) { return capiTypeToLogicalType(element).equals("void"); } - private String capiTypeToErrorValue(VariableElement element) { + private static String capiTypeToErrorValue(VariableElement element) { if (capiTypeToLogicalType(element).equals("pointer")) { return "0"; } else { @@ -299,12 +272,12 @@ private String capiTypeToErrorValue(VariableElement element) { } } - private String capiTypeToJavaPrimitiveType(VariableElement element) { + private static String capiTypeToJavaPrimitiveType(VariableElement element) { var type = capiTypeToLogicalType(element); return type.equals("pointer") ? "long" : type; } - private String capiTypeToForeignPrimitiveType(VariableElement element) { + private static String capiTypeToForeignPrimitiveType(VariableElement element) { String type = capiTypeToJavaPrimitiveType(element); return type.equals("void") ? "void" : ("j" + type); } @@ -766,7 +739,7 @@ private void updateResource(String name, List javaBuiltins, Lis } private Map getArgDescriptorsByName() { - TypeElement argDescriptorType = processingEnv.getElementUtils().getTypeElement("com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor"); + TypeElement argDescriptorType = processingEnv.getElementUtils().getTypeElement(ArgDescriptor.class.getCanonicalName()); if (argDescriptorType == null) { processingEnv.getMessager().printError("Could not resolve ArgDescriptor while generating C API helper declarations."); return Map.of(); @@ -1074,7 +1047,7 @@ private void generateBuiltinRegistry(List javaBuiltins) throws import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltinExecutable; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltinNode; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath; - import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; + import com.oracle.graal.python.annotations.ArgDescriptor; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins; import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes.TransformPExceptionToNativeNode; import com.oracle.graal.python.builtins.objects.cext.common.CExtToJavaNode; @@ -1456,27 +1429,10 @@ private void collectExternalFunctionAndWrapperDescs(Element element, List "void"; - case "Int", "InquiryResult", "InitResult", "PrimitiveResult32" -> "int"; - case "Double" -> "double"; - case "Float" -> "float"; - case "Py_hash_t", "Py_ssize_t", "PrimitiveResult64", "INT64_T", "INT64_T_PTR", "INTPTR_T_PTR", "SIZE_T", "UINTPTR_T", "Long", "UNSIGNED_LONG", "UINT64_T", - "PyObjectReturn", "PyObject", "PyObjectTransfer", "PyObjectConstArray", "PyObjectPtr", "PyTypeObject", "ConstPyLongObject", "PyThreadState", "PyThreadStatePtr", - "CharPtrAsTruffleString", "IterResult", "Pointer", "CHAR_PTR", "ConstCharPtr", "INT8_T_PTR", "PY_BUFFER_PTR", "PY_CAPSULE_DESTRUCTOR", "PY_SSIZE_T_PTR", "VA_LIST", - "visitproc" -> - "long"; - default -> { - processingEnv.getMessager().printError(String.format("Unexpected ArgDescriptor: '%s'", argDescriptor)); - yield null; - } - }; + String type = capiTypeToLogicalType(ArgDescriptor.valueOf(argDescriptor)); + return type.equals("pointer") ? "long" : type; } private static String getSimpleName(TypeMirror typeMirror) { diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextAbstractBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextAbstractBuiltins.java index fcc3b96d28..3e848b4d29 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextAbstractBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextAbstractBuiltins.java @@ -40,6 +40,13 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.DeprecationWarning; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.KeyError; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.OverflowError; @@ -48,13 +55,6 @@ import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltinNode.checkNonNullArgUncached; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectRawPointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.builtins.objects.cext.structs.CFields.PyTypeObject__tp_doc; import static com.oracle.graal.python.builtins.objects.cext.structs.CStructAccess.writePtrField; import static com.oracle.graal.python.runtime.nativeaccess.NativeMemory.NULLPTR; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextArrayBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextArrayBuiltins.java index ebc25b64cc..f33c51c9ce 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextArrayBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextArrayBuiltins.java @@ -40,17 +40,17 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.CHAR_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_BUFFER_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; +import static com.oracle.graal.python.annotations.ArgDescriptor.Void; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.MemoryError; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CHAR_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_BUFFER_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectRawPointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_ssize_t; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Void; import static com.oracle.graal.python.builtins.objects.cext.structs.CStructAccess.writeIntField; import static com.oracle.graal.python.builtins.objects.cext.structs.CStructAccess.writeLongField; import static com.oracle.graal.python.builtins.objects.cext.structs.CStructAccess.writePtrField; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBoolBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBoolBuiltins.java index 8e9b9d5640..42246d9e6c 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBoolBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBoolBuiltins.java @@ -40,8 +40,8 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectRawPointer; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.EnsurePythonObjectNode; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBuiltins.java index 8ded6c6b5e..e476758d53 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBuiltins.java @@ -40,6 +40,21 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.CHAR_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyCodeObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyFrameObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyThreadState; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; +import static com.oracle.graal.python.annotations.ArgDescriptor.SIZE_T; +import static com.oracle.graal.python.annotations.ArgDescriptor.UINTPTR_T; +import static com.oracle.graal.python.annotations.ArgDescriptor.UNSIGNED_INT; +import static com.oracle.graal.python.annotations.ArgDescriptor.Void; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.MemoryError; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.NotImplementedError; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.RecursionError; @@ -48,21 +63,6 @@ import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; import static com.oracle.graal.python.builtins.objects.cext.capi.CApiContext.GC_LOGGER; import static com.oracle.graal.python.builtins.objects.cext.capi.CApiGCSupport.NEXT_MASK_UNREACHABLE; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CHAR_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Pointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyCodeObjectRawPointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyFrameObjectRawPointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectRawPointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyThreadState; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyTypeObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyTypeObjectRawPointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_ssize_t; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.SIZE_T; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.UINTPTR_T; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.UNSIGNED_INT; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Void; import static com.oracle.graal.python.builtins.objects.cext.structs.CFields.GraalPyGC_CycleNode__item; import static com.oracle.graal.python.builtins.objects.cext.structs.CFields.GraalPyGC_CycleNode__next; import static com.oracle.graal.python.builtins.objects.cext.structs.CStructAccess.readIntField; @@ -98,6 +98,7 @@ import java.util.logging.Level; import com.oracle.graal.python.PythonLanguage; +import com.oracle.graal.python.annotations.ArgDescriptor; import com.oracle.graal.python.annotations.CApiConstant; import com.oracle.graal.python.annotations.NativeSimpleType; import com.oracle.graal.python.builtins.Python3Core; @@ -112,7 +113,6 @@ import com.oracle.graal.python.builtins.objects.cext.capi.CApiGCSupport.PyObjectGCDelNode; import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.FromCharPointerNode; import com.oracle.graal.python.builtins.objects.cext.capi.PThreadState; -import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTiming; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonClassNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextByteArrayBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextByteArrayBuiltins.java index 27cdd96ec8..eb8519501e 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextByteArrayBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextByteArrayBuiltins.java @@ -40,9 +40,9 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.CHAR_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CHAR_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectRawPointer; import static com.oracle.graal.python.builtins.objects.cext.structs.CStructAccess.getFieldPtr; import com.oracle.graal.python.builtins.PythonBuiltinClassType; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBytesBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBytesBuiltins.java index 60d2d8aa4c..410fda7c17 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBytesBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBytesBuiltins.java @@ -40,25 +40,26 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.CHAR_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.IndexError; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.SystemError; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.TypeError; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CHAR_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtrAsTruffleString; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectRawPointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes.getByteArray; import static com.oracle.graal.python.builtins.objects.cext.structs.CFields.PyVarObject__ob_size; import static com.oracle.graal.python.builtins.objects.cext.structs.CStructAccess.getFieldPtr; import static com.oracle.graal.python.builtins.objects.cext.structs.CStructAccess.readLongField; import com.oracle.graal.python.PythonLanguage; +import com.oracle.graal.python.annotations.ArgDescriptor; import com.oracle.graal.python.builtins.PythonBuiltinClassType; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBinaryBuiltinNode; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; @@ -76,7 +77,6 @@ import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonInternalNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeInternalNode; -import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.cext.structs.CFields; import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes.GetItemScalarNode; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCEvalBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCEvalBuiltins.java index 48e72abd90..33cefca8df 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCEvalBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCEvalBuiltins.java @@ -40,16 +40,16 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyFrameObjectBorrowed; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectBorrowed; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectConstPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyThreadState; +import static com.oracle.graal.python.annotations.ArgDescriptor.Void; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.SystemError; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyFrameObjectBorrowed; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectBorrowed; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectConstPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectRawPointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyThreadState; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Void; import static com.oracle.graal.python.runtime.nativeaccess.NativeMemory.NULLPTR; import com.oracle.graal.python.PythonLanguage; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCapsuleBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCapsuleBuiltins.java index 03a8fbce2b..6802f964b7 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCapsuleBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCapsuleBuiltins.java @@ -40,14 +40,14 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_CAPSULE_DESTRUCTOR; +import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.AttributeError; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.ValueError; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_CAPSULE_DESTRUCTOR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Pointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectRawPointer; import static com.oracle.graal.python.runtime.nativeaccess.NativeMemory.NULLPTR; import static com.oracle.graal.python.runtime.nativeaccess.NativeMemory.readByteArrayElement; import static com.oracle.graal.python.nodes.ErrorMessages.CALLED_WITH_INCORRECT_NAME; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextClassBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextClassBuiltins.java index 7a251e6164..ed0e0731ef 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextClassBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextClassBuiltins.java @@ -40,9 +40,9 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltinNode.checkNonNullArgUncached; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectRawPointer; import com.oracle.graal.python.PythonLanguage; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCodeBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCodeBuiltins.java index 599556c784..8eed719fd1 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCodeBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCodeBuiltins.java @@ -40,12 +40,12 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyCodeObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyCodeObjectRawPointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectRawPointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.util.PythonUtils.EMPTY_BYTE_ARRAY; import static com.oracle.graal.python.util.PythonUtils.EMPTY_OBJECT_ARRAY; import static com.oracle.graal.python.util.PythonUtils.EMPTY_TRUFFLESTRING_ARRAY; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCodecBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCodecBuiltins.java index 3a2d8dfdfc..de56f0478f 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCodecBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCodecBuiltins.java @@ -40,9 +40,9 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectRawPointer; import com.oracle.graal.python.builtins.modules.CodecsModuleBuiltins; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextComplexBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextComplexBuiltins.java index 875f1685c1..26f35524fe 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextComplexBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextComplexBuiltins.java @@ -40,17 +40,17 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Pointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectRawPointer; import static com.oracle.graal.python.builtins.objects.cext.structs.CStructAccess.writeDoubleField; import com.oracle.graal.python.PythonLanguage; +import com.oracle.graal.python.annotations.ArgDescriptor; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; import com.oracle.graal.python.builtins.objects.PNone; -import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonInternalNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeInternalNode; import com.oracle.graal.python.builtins.objects.cext.structs.CFields; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextContextBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextContextBuiltins.java index fafe17c4ec..5a7a22d672 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextContextBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextContextBuiltins.java @@ -40,13 +40,13 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.VoidNoReturn; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Pointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectRawPointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.VoidNoReturn; import static com.oracle.graal.python.runtime.exception.ExceptionUtils.printPythonLikeStackTrace; import static com.oracle.graal.python.runtime.nativeaccess.NativeMemory.NULLPTR; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDateTimeBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDateTimeBuiltins.java index 8aa57b81c4..6f664574ef 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDateTimeBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDateTimeBuiltins.java @@ -40,15 +40,15 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectBorrowed; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObject; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; import static com.oracle.graal.python.builtins.objects.cext.capi.PyDateTimeCAPIWrapper.T_FOLD; import static com.oracle.graal.python.builtins.objects.cext.capi.PyDateTimeCAPIWrapper.T_FROMTIMESTAMP; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectBorrowed; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyTypeObject; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApi10BuiltinNode; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApi5BuiltinNode; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDescrBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDescrBuiltins.java index 1d14c089a8..1476ca781c 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDescrBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDescrBuiltins.java @@ -40,14 +40,14 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObject; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtrAsTruffleString; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Pointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyTypeObject; import static com.oracle.graal.python.nodes.HiddenAttr.METHOD_DEF_PTR; import static com.oracle.graal.python.nodes.SpecialAttributeNames.T___NAME__; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDictBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDictBuiltins.java index 43d852fb87..7df76a60c2 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDictBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDictBuiltins.java @@ -40,24 +40,24 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleStringStrict; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_HASH_T_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_SSIZE_T_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectBorrowed; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.Py_hash_t; +import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; +import static com.oracle.graal.python.annotations.ArgDescriptor.Void; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.SystemError; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltinNode.checkNonNullArgUncached; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtrAsTruffleStringStrict; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_HASH_T_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_SSIZE_T_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Pointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectBorrowed; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectRawPointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_ssize_t; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_hash_t; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Void; import static com.oracle.graal.python.nodes.ErrorMessages.BAD_ARG_TO_INTERNAL_FUNC; import static com.oracle.graal.python.nodes.ErrorMessages.HASH_MISMATCH; import static com.oracle.graal.python.nodes.SpecialMethodNames.T_KEYS; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextErrBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextErrBuiltins.java index 11a28b0b75..1ffd534df4 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextErrBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextErrBuiltins.java @@ -40,17 +40,17 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyThreadState; +import static com.oracle.graal.python.annotations.ArgDescriptor.Void; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.SystemError; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; import static com.oracle.graal.python.builtins.modules.io.IONodes.T_FLUSH; import static com.oracle.graal.python.builtins.modules.io.IONodes.T_WRITE; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtrAsTruffleString; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyThreadState; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Void; import static com.oracle.graal.python.builtins.objects.exception.PBaseException.T_CODE; import static com.oracle.graal.python.nodes.BuiltinNames.T_EXCEPTHOOK; import static com.oracle.graal.python.nodes.BuiltinNames.T_LAST_TRACEBACK; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFileBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFileBuiltins.java index 6d604461ab..8a1b8afea4 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFileBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFileBuiltins.java @@ -40,10 +40,10 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.io.IONodes.T_WRITE; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; import com.oracle.graal.python.builtins.modules.BuiltinFunctions.ReprNode; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFloatBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFloatBuiltins.java index 9efaf40f1d..369e2c9c7f 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFloatBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFloatBuiltins.java @@ -40,14 +40,14 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; +import com.oracle.graal.python.annotations.ArgDescriptor; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiUnaryBuiltinNode; -import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.lib.PyFloatAsDoubleNode; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFrameBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFrameBuiltins.java index 01658e6630..1e830026da 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFrameBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFrameBuiltins.java @@ -40,20 +40,20 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyCodeObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyFrameObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyFrameObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyCodeObjectTransfer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyFrameObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyFrameObjectTransfer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.runtime.PythonContext.NATIVE_NULL; import com.oracle.graal.python.PythonLanguage; +import com.oracle.graal.python.annotations.ArgDescriptor; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBinaryBuiltinNode; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiUnaryBuiltinNode; import com.oracle.graal.python.builtins.objects.PNone; -import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.frame.FrameBuiltins; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFuncBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFuncBuiltins.java index 5a0c2aa511..dfac3ac3e7 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFuncBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFuncBuiltins.java @@ -40,20 +40,21 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectBorrowed; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.SystemError; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtrAsTruffleString; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectBorrowed; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.nodes.SpecialAttributeNames.T___ANNOTATIONS__; import static com.oracle.graal.python.nodes.SpecialAttributeNames.T___MODULE__; import static com.oracle.graal.python.nodes.SpecialAttributeNames.T___NAME__; import static com.oracle.graal.python.runtime.nativeaccess.NativeMemory.NULLPTR; import com.oracle.graal.python.PythonLanguage; +import com.oracle.graal.python.annotations.ArgDescriptor; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBinaryBuiltinNode; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiUnaryBuiltinNode; @@ -66,7 +67,6 @@ import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonTransferNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeInternalNode; -import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.common.HashingStorageNodes.HashingStorageGetItem; import com.oracle.graal.python.builtins.objects.dict.PDict; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextGenericAliasBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextGenericAliasBuiltins.java index 38812260ac..6ab3520b27 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextGenericAliasBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextGenericAliasBuiltins.java @@ -40,9 +40,9 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; import com.oracle.graal.python.PythonLanguage; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBinaryBuiltinNode; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextHashBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextHashBuiltins.java index 6dd2a96109..ab74aef21c 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextHashBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextHashBuiltins.java @@ -40,22 +40,22 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.CONST_VOID_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.INT8_T_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.Py_hash_t; +import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; +import static com.oracle.graal.python.annotations.ArgDescriptor.Void; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CONST_VOID_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.INT8_T_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_hash_t; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_ssize_t; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Void; import static com.oracle.graal.python.util.PythonUtils.TS_ENCODING_BINARY; +import com.oracle.graal.python.annotations.ArgDescriptor; import com.oracle.graal.python.builtins.modules.SysModuleBuiltins; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBinaryBuiltinNode; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiUnaryBuiltinNode; import com.oracle.graal.python.builtins.objects.PNone; -import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; import com.oracle.graal.python.lib.PyObjectHashNode; import com.oracle.graal.python.runtime.nativeaccess.NativeMemory; import com.oracle.truffle.api.CompilerDirectives; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextImportBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextImportBuiltins.java index 70115de83f..8387061087 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextImportBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextImportBuiltins.java @@ -40,13 +40,13 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleStringStrict; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectBorrowed; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtrAsTruffleStringStrict; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectAsTruffleString; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectBorrowed; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.lib.PyImportImport.T_FROMLIST; import static com.oracle.graal.python.lib.PyImportImport.T_LEVEL; import static com.oracle.graal.python.nodes.BuiltinNames.T_GLOBALS; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextIterBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextIterBuiltins.java index d632d8d4b4..6b98581c87 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextIterBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextIterBuiltins.java @@ -40,9 +40,9 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; import com.oracle.graal.python.PythonLanguage; import com.oracle.graal.python.builtins.modules.BuiltinFunctions.IterNode; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextListBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextListBuiltins.java index 4a052d1108..0e1549204b 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextListBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextListBuiltins.java @@ -40,20 +40,20 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.INT64_T; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyListObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectBorrowed; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.IndexError; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.MemoryError; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.SystemError; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.TypeError; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.INT64_T; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Pointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyListObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectBorrowed; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.nodes.ErrorMessages.BAD_ARG_TO_INTERNAL_FUNC_S; import static com.oracle.graal.python.runtime.nativeaccess.NativeMemory.writePtr; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextLongBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextLongBuiltins.java index 1e240ebbda..664c5c9b16 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextLongBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextLongBuiltins.java @@ -40,25 +40,25 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.CONST_UNSIGNED_CHAR_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.CONST_VOID_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.LONG_LONG; +import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyLongObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; +import static com.oracle.graal.python.annotations.ArgDescriptor.SIZE_T; +import static com.oracle.graal.python.annotations.ArgDescriptor.UNSIGNED_CHAR_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.UNSIGNED_LONG_LONG; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.NotImplementedError; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.TypeError; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.ValueError; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CONST_UNSIGNED_CHAR_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CONST_VOID_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtrAsTruffleString; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.LONG_LONG; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Pointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyLongObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectRawPointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_ssize_t; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.SIZE_T; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.UNSIGNED_CHAR_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.UNSIGNED_LONG_LONG; import static com.oracle.graal.python.runtime.exception.PythonErrorType.OverflowError; import static com.oracle.graal.python.runtime.nativeaccess.NativeMemory.readByteArrayElements; @@ -66,6 +66,7 @@ import java.nio.ByteOrder; import com.oracle.graal.python.PythonLanguage; +import com.oracle.graal.python.annotations.ArgDescriptor; import com.oracle.graal.python.builtins.PythonBuiltinClassType; import com.oracle.graal.python.builtins.modules.SysModuleBuiltins; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApi6BuiltinNode; @@ -76,7 +77,6 @@ import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiUnaryBuiltinNode; import com.oracle.graal.python.builtins.objects.cext.PythonAbstractNativeObject; import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes; -import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTiming; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.CharPtrToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonInternalNode; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMemoryViewBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMemoryViewBuiltins.java index 54387e8d46..b14e2b5914 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMemoryViewBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMemoryViewBuiltins.java @@ -40,12 +40,12 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.CHAR; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.BufferError; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CHAR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.nodes.ErrorMessages.UNDERLYING_BUFFER_IS_NOT_WRITABLE; import static com.oracle.graal.python.nodes.ErrorMessages.WRITABLE_CONTIGUES_FOR_NON_CONTIGUOUS; import static com.oracle.graal.python.util.BufferFormat.T_UINT_8_TYPE_CODE; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMethodBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMethodBuiltins.java index 29b4a8144e..4c96a6f4fb 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMethodBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMethodBuiltins.java @@ -40,14 +40,14 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyMethodDef; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObject; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtrAsTruffleString; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Pointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyMethodDef; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyTypeObject; import static com.oracle.graal.python.builtins.objects.cext.structs.CStructAccess.getArrayElementPtr; import static com.oracle.graal.python.builtins.objects.cext.structs.CStructAccess.readIntField; import static com.oracle.graal.python.builtins.objects.cext.structs.CStructAccess.readPtrField; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextModuleBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextModuleBuiltins.java index 3e47bdd71c..9a40d8038c 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextModuleBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextModuleBuiltins.java @@ -40,25 +40,25 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.CONST_PY_SLOT_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_ABI_INFO_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_SSIZE_T_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyMethodDef; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyModuleDef; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyModuleObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyModuleObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.VOID_PTR_LIST; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.SystemError; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.TypeError; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CONST_PY_SLOT_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtrAsTruffleString; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_ABI_INFO_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_SSIZE_T_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Pointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyMethodDef; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyModuleDef; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyModuleObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyModuleObjectTransfer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectAsTruffleString; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.VOID_PTR_LIST; import static com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes.bindFunctionPointer; import static com.oracle.graal.python.nodes.ErrorMessages.NAMELESS_MODULE; import static com.oracle.graal.python.nodes.ErrorMessages.S_NEEDS_S_AS_FIRST_ARG; @@ -73,6 +73,7 @@ import static com.oracle.graal.python.util.PythonUtils.TS_ENCODING; import com.oracle.graal.python.PythonLanguage; +import com.oracle.graal.python.annotations.ArgDescriptor; import com.oracle.graal.python.builtins.PythonBuiltinClassType; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBinaryBuiltinNode; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.ABI; @@ -88,7 +89,6 @@ import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.ToPythonStringNode; import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodesFactory.CheckPrimitiveFunctionResultNodeGen; import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionSignature; -import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTiming; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.CharPtrToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonInternalNode; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextNamespaceBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextNamespaceBuiltins.java index c3842c39dd..9b1876346c 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextNamespaceBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextNamespaceBuiltins.java @@ -40,9 +40,9 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.runtime.nativeaccess.NativeMemory.NULLPTR; import com.oracle.graal.python.PythonLanguage; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextObjectBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextObjectBuiltins.java index cbee2c0826..f7eb77e80c 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextObjectBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextObjectBuiltins.java @@ -40,26 +40,26 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleStringStrict; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectConstPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyThreadState; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyVarObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.Py_hash_t; +import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; +import static com.oracle.graal.python.annotations.ArgDescriptor.Void; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.NotImplementedError; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.TypeError; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtrAsTruffleString; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtrAsTruffleStringStrict; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Pointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectAsTruffleString; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectConstPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectRawPointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyThreadState; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyVarObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_hash_t; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_ssize_t; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Void; import static com.oracle.graal.python.builtins.objects.ints.PInt.intValue; import static com.oracle.graal.python.builtins.objects.object.PythonObject.IMMORTAL_REFCNT; import static com.oracle.graal.python.nodes.ErrorMessages.UNHASHABLE_TYPE_P; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPickleBufferBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPickleBufferBuiltins.java index 1c12825697..438e02090c 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPickleBufferBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPickleBufferBuiltins.java @@ -40,9 +40,9 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectBorrowed; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectBorrowed; import static com.oracle.graal.python.runtime.exception.PythonErrorType.ValueError; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPosixmoduleBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPosixmoduleBuiltins.java index ebb80711b9..a5b33ee159 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPosixmoduleBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPosixmoduleBuiltins.java @@ -40,9 +40,9 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiUnaryBuiltinNode; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyLifecycleBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyLifecycleBuiltins.java index 02b27a576e..98b5feb3af 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyLifecycleBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyLifecycleBuiltins.java @@ -40,9 +40,9 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.func_voidvoid; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.func_voidvoid; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiUnaryBuiltinNode; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyStateBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyStateBuiltins.java index 0da63705c3..4740fcee5f 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyStateBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyStateBuiltins.java @@ -40,19 +40,20 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyFrameObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectBorrowed; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyThreadState; +import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; +import static com.oracle.graal.python.annotations.ArgDescriptor.Void; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Pointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyFrameObjectTransfer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectBorrowed; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyThreadState; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_ssize_t; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Void; import static com.oracle.graal.python.runtime.nativeaccess.NativeMemory.NULLPTR; import static com.oracle.graal.python.runtime.PythonContext.NATIVE_NULL; +import com.oracle.graal.python.annotations.ArgDescriptor; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBinaryBuiltinNode; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiNullaryBuiltinNode; @@ -61,7 +62,6 @@ import com.oracle.graal.python.builtins.objects.cext.capi.CApiContext; import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.ToNativeBorrowedNode; import com.oracle.graal.python.builtins.objects.cext.capi.PThreadState; -import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; import com.oracle.graal.python.builtins.objects.dict.PDict; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyThreadBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyThreadBuiltins.java index 19c5570906..2cb118a61d 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyThreadBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyThreadBuiltins.java @@ -40,8 +40,8 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.UNSIGNED_LONG; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.UNSIGNED_LONG; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPythonRunBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPythonRunBuiltins.java index 753a2e20a0..291d01e29a 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPythonRunBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPythonRunBuiltins.java @@ -40,14 +40,14 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_COMPILER_FLAGS; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.SystemError; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.TypeError; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtrAsTruffleString; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_COMPILER_FLAGS; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.runtime.nativeaccess.NativeMemory.NULLPTR; import static com.oracle.graal.python.nodes.BuiltinNames.T_COMPILE; import static com.oracle.graal.python.nodes.BuiltinNames.T_EVAL; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSetBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSetBuiltins.java index 0b8b838a0e..e3a6ec5ec8 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSetBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSetBuiltins.java @@ -40,12 +40,12 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.SystemError; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.nodes.ErrorMessages.EXPECTED_S_NOT_P; import static com.oracle.graal.python.runtime.nativeaccess.NativeMemory.NULLPTR; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSliceBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSliceBuiltins.java index 6c6b7eb36d..428da84e3a 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSliceBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSliceBuiltins.java @@ -40,10 +40,10 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; import com.oracle.graal.python.builtins.PythonBuiltinClassType; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSlotBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSlotBuiltins.java index 60e2400d26..36b51d813a 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSlotBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSlotBuiltins.java @@ -40,38 +40,38 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyByteArrayObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyCFunctionObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyCMethodObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyDescrObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyFrameObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyGetSetDef; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyInstanceMethodObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyListObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyLongObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyMethodDef; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyMethodDescrObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyMethodObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyModuleDef; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyModuleObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectBorrowed; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.PySetObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PySliceObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyTupleObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObjectBorrowed; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyVarObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; +import static com.oracle.graal.python.annotations.ArgDescriptor.UINTPTR_T; +import static com.oracle.graal.python.annotations.ArgDescriptor.Void; +import static com.oracle.graal.python.annotations.ArgDescriptor.getter; +import static com.oracle.graal.python.annotations.ArgDescriptor.setter; +import static com.oracle.graal.python.annotations.ArgDescriptor.vectorcallfunc; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtrAsTruffleString; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Pointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyByteArrayObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyCFunctionObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyCMethodObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyDescrObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyFrameObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyGetSetDef; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyInstanceMethodObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyListObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyLongObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyMethodDef; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyMethodDescrObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyMethodObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyModuleDef; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyModuleObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectBorrowed; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PySetObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PySliceObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyTupleObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyTypeObjectBorrowed; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyVarObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_ssize_t; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.UINTPTR_T; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Void; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.getter; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.setter; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.vectorcallfunc; import static com.oracle.graal.python.nodes.HiddenAttr.METHOD_DEF_PTR; import static com.oracle.graal.python.nodes.HiddenAttr.PROMOTED_START; import static com.oracle.graal.python.nodes.HiddenAttr.PROMOTED_STEP; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextStructSeqBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextStructSeqBuiltins.java index 3b17d39135..9c66959627 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextStructSeqBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextStructSeqBuiltins.java @@ -40,15 +40,15 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObjectTransfer; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.SystemError; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtrAsTruffleString; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Pointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyTypeObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyTypeObjectTransfer; import static com.oracle.graal.python.runtime.nativeaccess.NativeMemory.NULLPTR; import static com.oracle.graal.python.runtime.nativeaccess.NativeMemory.readPtrArrayElement; import static com.oracle.graal.python.util.PythonUtils.EMPTY_OBJECT_ARRAY; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSysBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSysBuiltins.java index 77077b4b19..7bd2157379 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSysBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSysBuiltins.java @@ -40,14 +40,14 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectBorrowed; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; import static com.oracle.graal.python.builtins.modules.io.IONodes.T_WRITE; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtrAsTruffleString; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectBorrowed; import static com.oracle.graal.python.nodes.BuiltinNames.T_STDERR; import static com.oracle.graal.python.nodes.BuiltinNames.T_STDOUT; import static com.oracle.graal.python.runtime.PythonContext.NATIVE_NULL; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTracebackBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTracebackBuiltins.java index 6a6e5ba62c..c909f14d81 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTracebackBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTracebackBuiltins.java @@ -40,11 +40,11 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyFrameObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.Void; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtrAsTruffleString; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyFrameObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Void; import static com.oracle.graal.python.runtime.nativeaccess.NativeMemory.NULLPTR; import com.oracle.graal.python.PythonLanguage; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTupleBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTupleBuiltins.java index 1b96eae321..126ebe142d 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTupleBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTupleBuiltins.java @@ -40,15 +40,15 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectBorrowed; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.IndexError; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectBorrowed; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectRawPointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.runtime.PythonContext.NATIVE_NULL; import com.oracle.graal.python.PythonLanguage; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTypeBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTypeBuiltins.java index 99795d8d9d..a31da14b65 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTypeBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTypeBuiltins.java @@ -40,20 +40,20 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyBufferProcs; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectBorrowed; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtrAsTruffleString; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Pointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyBufferProcs; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectBorrowed; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectRawPointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyTypeObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyTypeObjectRawPointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.builtins.objects.cext.structs.CFields.PyTypeObject__tp_name; import static com.oracle.graal.python.nodes.HiddenAttr.AS_BUFFER; import static com.oracle.graal.python.nodes.HiddenAttr.METHOD_DEF_PTR; @@ -64,6 +64,7 @@ import static com.oracle.graal.python.util.PythonUtils.EMPTY_OBJECT_ARRAY; import com.oracle.graal.python.PythonLanguage; +import com.oracle.graal.python.annotations.ArgDescriptor; import com.oracle.graal.python.builtins.PythonBuiltinClassType; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBinaryBuiltinNode; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; @@ -85,7 +86,6 @@ import com.oracle.graal.python.builtins.objects.cext.capi.MethodDescriptorWrapper; import com.oracle.graal.python.builtins.objects.cext.capi.PyMethodFlags; import com.oracle.graal.python.builtins.objects.cext.capi.WrapperDescriptorRootNodesGen; -import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonClassNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextUnicodeBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextUnicodeBuiltins.java index 4978524eda..7e7e34aaaf 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextUnicodeBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextUnicodeBuiltins.java @@ -40,6 +40,22 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.CONST_WCHAR_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleStringStrict; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_SSIZE_T_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_UCS4; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_UNICODE_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectConstPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; +import static com.oracle.graal.python.annotations.ArgDescriptor.Void; +import static com.oracle.graal.python.annotations.ArgDescriptor._PY_ERROR_HANDLER; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.IndexError; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.MemoryError; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.OverflowError; @@ -55,22 +71,6 @@ import static com.oracle.graal.python.builtins.modules.CodecsModuleBuiltins.T_UTF_32_LE; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CONST_WCHAR_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtrAsTruffleString; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtrAsTruffleStringStrict; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_SSIZE_T_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_UCS4; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_UNICODE_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Pointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectAsTruffleString; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectConstPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_ssize_t; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Void; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor._PY_ERROR_HANDLER; import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.GraalPyUnicodeObjectUtil.GRAALPY_UNICODE_INTERN_STATE_INTERNED; import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.GraalPyUnicodeObjectUtil.GRAALPY_UNICODE_INTERN_STATE_NOT_INTERNED; import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.GraalPyUnicodeObjectUtil.GRAALPY_UNICODE_INTERN_STATE_UNDETERMINED; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWarnBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWarnBuiltins.java index e61d956482..12e1d0d283 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWarnBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWarnBuiltins.java @@ -40,11 +40,11 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.nodes.BuiltinNames.T__WARNINGS; import com.oracle.graal.python.builtins.modules.WarningsModuleBuiltins; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWeakrefBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWeakrefBuiltins.java index 2180cc7859..b3362f7dff 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWeakrefBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWeakrefBuiltins.java @@ -40,14 +40,14 @@ */ package com.oracle.graal.python.builtins.modules.cext; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.PYWEAKREFERENCE_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.Void; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PYWEAKREFERENCE_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectRawPointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Void; import static com.oracle.graal.python.nodes.BuiltinNames.T_PROXY_TYPE; import static com.oracle.graal.python.nodes.BuiltinNames.T__WEAKREF; import static com.oracle.graal.python.nodes.ErrorMessages.EXPECTED_A_WEAKREF; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/CApiFunction.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/CApiFunction.java index 9ab9a7f871..39e19f958f 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/CApiFunction.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/CApiFunction.java @@ -40,156 +40,156 @@ */ package com.oracle.graal.python.builtins.objects.cext.capi; +import static com.oracle.graal.python.annotations.ArgDescriptor.CHAR; +import static com.oracle.graal.python.annotations.ArgDescriptor.CHAR_CONST_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.CHAR_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.CHAR_PTR_LIST; +import static com.oracle.graal.python.annotations.ArgDescriptor.CONST_PYCONFIG_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.CONST_PYPRECONFIG_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.CONST_PY_BUFFER; +import static com.oracle.graal.python.annotations.ArgDescriptor.CONST_PY_BUFFER_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.CONST_PY_LONG_LAYOUT_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.CONST_PY_SSIZE_T_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.CONST_PY_UCS4; +import static com.oracle.graal.python.annotations.ArgDescriptor.CONST_UINT8_T_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.CONST_VOID_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.CONST_WCHAR_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstPyInterpreterConfig; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstPyLongObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.DIGIT_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.Double; +import static com.oracle.graal.python.annotations.ArgDescriptor.FILE_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.INITTAB; +import static com.oracle.graal.python.annotations.ArgDescriptor.INT32_T; +import static com.oracle.graal.python.annotations.ArgDescriptor.INT32_T_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.INT64_T; +import static com.oracle.graal.python.annotations.ArgDescriptor.INT64_T_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.INT_LIST; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.LONG_LONG; +import static com.oracle.graal.python.annotations.ArgDescriptor.Long; +import static com.oracle.graal.python.annotations.ArgDescriptor.PYCONFIG_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.PYHASH_FUNCDEF_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.PYMEMALLOCATORDOMAIN; +import static com.oracle.graal.python.annotations.ArgDescriptor.PYMEMALLOCATOREX_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.PYMODULEDEF_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.PYOBJECTARENAALLOCATOR_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.PYPRECONFIG_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.PYSTATUS; +import static com.oracle.graal.python.annotations.ArgDescriptor.PYWIDESTRINGLIST_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_AUDITHOOKFUNCTION; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_BUFFER_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_COMPILER_FLAGS; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_COMPLEX; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_CRITICAL_SECTION2_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_CRITICAL_SECTION_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_C_FUNCTION; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_GEN_OBJECT; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_GIL_STATE_STATE; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_IDENTIFIER; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_INTERPRETER_GUARD_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_INTERPRETER_VIEW_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_LOCK_STATUS; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_LONG_EXPORT_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_LONG_WRITER_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_MONITORING_STATE_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_MUTEX_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_OPENCODEHOOKFUNCTION; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_OS_SIGHANDLER; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_REF_TRACER; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_SLOT_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_SSIZE_T_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_STRUCT_SEQUENCE_DESC; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_THREAD_STATE_TOKEN_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_THREAD_TYPE_LOCK; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_TRACEFUNC; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_TSS_T_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_TYPE_OBJECT_PTR_LIST; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_TYPE_SPEC; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_UCS4; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_UCS4_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PrimitiveResult32; +import static com.oracle.graal.python.annotations.ArgDescriptor.PrimitiveResult64; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyCodeAddressRange; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyCodeObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyCodeObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyCodeObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyCode_WatchCallback; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyDict_WatchCallback; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyFrameObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyFrameObjectBorrowed; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyFunctionObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyFunction_WatchCallback; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyGetSetDef; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyInterpreterState; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyLongObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyMemberDef; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyMethodDef; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyModuleDef; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectBorrowed; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectConstPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectReturn; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PySendResult; +import static com.oracle.graal.python.annotations.ArgDescriptor.PySliceObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyThreadState; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyThreadStatePtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyType_WatchCallback; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyVarObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.Py_hash_t; +import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; +import static com.oracle.graal.python.annotations.ArgDescriptor.SIZE_T; +import static com.oracle.graal.python.annotations.ArgDescriptor.SIZE_T_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.UINT32_T; +import static com.oracle.graal.python.annotations.ArgDescriptor.UINT32_T_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.UINT64_T; +import static com.oracle.graal.python.annotations.ArgDescriptor.UINT64_T_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.UINTPTR_T; +import static com.oracle.graal.python.annotations.ArgDescriptor.UNSIGNED_INT; +import static com.oracle.graal.python.annotations.ArgDescriptor.UNSIGNED_LONG; +import static com.oracle.graal.python.annotations.ArgDescriptor.UNSIGNED_LONG_LONG; +import static com.oracle.graal.python.annotations.ArgDescriptor.VARARGS; +import static com.oracle.graal.python.annotations.ArgDescriptor.VA_LIST; +import static com.oracle.graal.python.annotations.ArgDescriptor.VOID_PTR_LIST; +import static com.oracle.graal.python.annotations.ArgDescriptor.Void; +import static com.oracle.graal.python.annotations.ArgDescriptor.VoidNoReturn; +import static com.oracle.graal.python.annotations.ArgDescriptor.WCHAR_T_CONST_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.WCHAR_T_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.WCHAR_T_PTR_LIST; +import static com.oracle.graal.python.annotations.ArgDescriptor.WCHAR_T_PTR_PTR_LIST; +import static com.oracle.graal.python.annotations.ArgDescriptor.WRAPPERBASE; +import static com.oracle.graal.python.annotations.ArgDescriptor._PYARG_PARSER_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor._PYTIME_T; +import static com.oracle.graal.python.annotations.ArgDescriptor._PYTIME_T_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor._PYUNICODEWRITER_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor._PY_IDENTIFIER_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor._PyFrameEvalFunction; +import static com.oracle.graal.python.annotations.ArgDescriptor._PyInterpreterFrame; +import static com.oracle.graal.python.annotations.ArgDescriptor.atexit_datacallbackfunc; +import static com.oracle.graal.python.annotations.ArgDescriptor.freefunc; +import static com.oracle.graal.python.annotations.ArgDescriptor.func_intvoidptr; +import static com.oracle.graal.python.annotations.ArgDescriptor.func_objvoid; +import static com.oracle.graal.python.annotations.ArgDescriptor.func_voidvoidptr; +import static com.oracle.graal.python.annotations.ArgDescriptor.gcvisitobjects_t; +import static com.oracle.graal.python.annotations.ArgDescriptor.vectorcallfunc; +import static com.oracle.graal.python.annotations.ArgDescriptor.visitproc; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.CImpl; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.NotImplemented; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CHAR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CHAR_CONST_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CHAR_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CHAR_PTR_LIST; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CONST_PYCONFIG_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CONST_PYPRECONFIG_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CONST_PY_BUFFER; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CONST_PY_BUFFER_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CONST_PY_SSIZE_T_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CONST_PY_UCS4; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CONST_UINT8_T_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CONST_VOID_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CONST_WCHAR_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtrAsTruffleString; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstPyInterpreterConfig; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstPyLongObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.DIGIT_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Double; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.FILE_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.INITTAB; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.INT32_T; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.INT32_T_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.INT64_T; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.INT64_T_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.INT_LIST; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.LONG_LONG; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Long; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PYCONFIG_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PYHASH_FUNCDEF_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PYMEMALLOCATORDOMAIN; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PYMEMALLOCATOREX_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PYMODULEDEF_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PYOBJECTARENAALLOCATOR_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PYPRECONFIG_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PYSTATUS; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PYWIDESTRINGLIST_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_AUDITHOOKFUNCTION; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_BUFFER_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_COMPILER_FLAGS; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_COMPLEX; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_CRITICAL_SECTION2_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_CRITICAL_SECTION_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_C_FUNCTION; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_GEN_OBJECT; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_GIL_STATE_STATE; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_IDENTIFIER; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_INTERPRETER_GUARD_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_INTERPRETER_VIEW_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_LOCK_STATUS; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_LONG_EXPORT_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_LONG_WRITER_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_MONITORING_STATE_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_MUTEX_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_OPENCODEHOOKFUNCTION; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_OS_SIGHANDLER; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_REF_TRACER; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_SSIZE_T_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_STRUCT_SEQUENCE_DESC; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_THREAD_STATE_TOKEN_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_THREAD_TYPE_LOCK; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_TRACEFUNC; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_TSS_T_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_TYPE_SPEC; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_SLOT_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_TYPE_OBJECT_PTR_LIST; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_UCS4; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_UCS4_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Pointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PrimitiveResult32; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PrimitiveResult64; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyCodeAddressRange; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyCodeObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyCodeObjectRawPointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyCodeObjectTransfer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyCode_WatchCallback; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyDict_WatchCallback; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyFrameObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyFrameObjectBorrowed; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyFunctionObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyFunction_WatchCallback; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyGetSetDef; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyInterpreterState; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyLongObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyMemberDef; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyMethodDef; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyModuleDef; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectBorrowed; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectConstPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectRawPointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectReturn; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PySendResult; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PySliceObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyThreadState; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyThreadStatePtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyTypeObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyTypeObjectRawPointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyTypeObjectTransfer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyType_WatchCallback; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyVarObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_hash_t; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_ssize_t; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CONST_PY_LONG_LAYOUT_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.SIZE_T; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.SIZE_T_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.UINT64_T; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.UINT64_T_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.UINT32_T; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.UINT32_T_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.UINTPTR_T; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.UNSIGNED_INT; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.UNSIGNED_LONG; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.UNSIGNED_LONG_LONG; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.VARARGS; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.VA_LIST; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.VOID_PTR_LIST; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Void; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.VoidNoReturn; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.WCHAR_T_CONST_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.WCHAR_T_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.WCHAR_T_PTR_LIST; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.WCHAR_T_PTR_PTR_LIST; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.WRAPPERBASE; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor._PYARG_PARSER_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor._PYTIME_T; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor._PYTIME_T_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor._PYUNICODEWRITER_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor._PY_IDENTIFIER_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor._PyFrameEvalFunction; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor._PyInterpreterFrame; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.atexit_datacallbackfunc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.freefunc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.func_intvoidptr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.func_objvoid; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.func_voidvoidptr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.gcvisitobjects_t; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.vectorcallfunc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.visitproc; +import com.oracle.graal.python.annotations.ArgDescriptor; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.ABI; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; -import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; /** * This file contains the specification of all CAPI builtins that aren't explicitly implemented in diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/ExternalFunctionNodes.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/ExternalFunctionNodes.java index 4e0d3c6097..16632cd58b 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/ExternalFunctionNodes.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/ExternalFunctionNodes.java @@ -40,6 +40,7 @@ */ package com.oracle.graal.python.builtins.objects.cext.capi; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectReturn; import static com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.PExternalFunctionWrapper.BINARYFUNC; import static com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.PExternalFunctionWrapper.BINARYFUNC_L; import static com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.PExternalFunctionWrapper.BINARYFUNC_R; @@ -78,7 +79,6 @@ import static com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.PExternalFunctionWrapper.UNARYFUNC; import static com.oracle.graal.python.builtins.objects.cext.capi.NativeCAPISymbol.FUN_PY_DEALLOC; import static com.oracle.graal.python.builtins.objects.cext.capi.NativeCAPISymbol.FUN_PY_TYPE_GENERIC_ALLOC; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectReturn; import static com.oracle.graal.python.builtins.objects.cext.structs.CStructAccess.readLongField; import static com.oracle.graal.python.nodes.StringLiterals.T_EMPTY_STRING; import static com.oracle.graal.python.runtime.nativeaccess.NativeMemory.NULLPTR; @@ -96,6 +96,7 @@ import java.util.logging.Level; import com.oracle.graal.python.PythonLanguage; +import com.oracle.graal.python.annotations.ArgDescriptor; import com.oracle.graal.python.builtins.PythonBuiltinClassType; import com.oracle.graal.python.builtins.objects.PNone; import com.oracle.graal.python.lib.PyLongAsIntNodeGen; @@ -111,7 +112,6 @@ import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodesFactory.PyObjectCheckFunctionResultNodeGen; import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodesFactory.ReleaseNativeArgsTupleNodeGen; import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodesFactory.ToPythonStringNodeGen; -import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTiming; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions; import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.HandlePointerConverter; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/ExternalFunctionSignature.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/ExternalFunctionSignature.java index 25fa86bf80..cdd31b986a 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/ExternalFunctionSignature.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/ExternalFunctionSignature.java @@ -41,35 +41,35 @@ package com.oracle.graal.python.builtins.objects.cext.capi; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CharPtrAsTruffleString; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstPyLongObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Double; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.INT64_T; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.INT8_T_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.INTPTR_T_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Pointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PrimitiveResult64; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_BUFFER_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_CAPSULE_DESTRUCTOR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectReturn; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyThreadState; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyThreadStatePtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyTypeObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_ssize_t; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.SIZE_T; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.UINTPTR_T; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.VA_LIST; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Void; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.visitproc; +import static com.oracle.graal.python.annotations.ArgDescriptor.CharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstPyLongObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.Double; +import static com.oracle.graal.python.annotations.ArgDescriptor.INT64_T; +import static com.oracle.graal.python.annotations.ArgDescriptor.INT8_T_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.INTPTR_T_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_BUFFER_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_CAPSULE_DESTRUCTOR; +import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PrimitiveResult64; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectReturn; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyThreadState; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyThreadStatePtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; +import static com.oracle.graal.python.annotations.ArgDescriptor.SIZE_T; +import static com.oracle.graal.python.annotations.ArgDescriptor.UINTPTR_T; +import static com.oracle.graal.python.annotations.ArgDescriptor.VA_LIST; +import static com.oracle.graal.python.annotations.ArgDescriptor.Void; +import static com.oracle.graal.python.annotations.ArgDescriptor.visitproc; import static com.oracle.graal.python.util.PythonUtils.toTruffleStringUncached; +import com.oracle.graal.python.annotations.ArgDescriptor; import com.oracle.graal.python.annotations.CApiExternalFunctionSignatures; -import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; import com.oracle.graal.python.builtins.objects.cext.common.NativeCExtSymbol; import com.oracle.truffle.api.strings.TruffleString; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/MethodDescriptorWrapper.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/MethodDescriptorWrapper.java index 0a12551eec..ad2a41e95b 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/MethodDescriptorWrapper.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/MethodDescriptorWrapper.java @@ -40,13 +40,14 @@ */ package com.oracle.graal.python.builtins.objects.cext.capi; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectConstArray; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectReturn; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyTypeObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_ssize_t; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectConstArray; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectReturn; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; import com.oracle.graal.python.PythonLanguage; +import com.oracle.graal.python.annotations.ArgDescriptor; import com.oracle.graal.python.builtins.objects.PNone; import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.MethFastcallRoot; import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.MethFastcallWithKeywordsRoot; @@ -55,7 +56,6 @@ import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.MethNoargsRoot; import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.MethORoot; import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.MethVarargsRoot; -import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes; import com.oracle.graal.python.builtins.objects.cext.common.NativeCExtSymbol; import com.oracle.graal.python.builtins.objects.function.PBuiltinFunction; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/NativeCAPISymbol.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/NativeCAPISymbol.java index 673218f930..12b9f313a8 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/NativeCAPISymbol.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/NativeCAPISymbol.java @@ -44,7 +44,7 @@ import java.util.Objects; -import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; +import com.oracle.graal.python.annotations.ArgDescriptor; import com.oracle.graal.python.builtins.objects.cext.common.NativeCExtSymbol; import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; import com.oracle.truffle.api.strings.TruffleString; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/common/NativeCExtSymbol.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/common/NativeCExtSymbol.java index 30b04b1e73..b6fa9ac010 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/common/NativeCExtSymbol.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/common/NativeCExtSymbol.java @@ -40,8 +40,8 @@ */ package com.oracle.graal.python.builtins.objects.cext.common; +import com.oracle.graal.python.annotations.ArgDescriptor; import com.oracle.graal.python.annotations.NativeSimpleType; -import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; import com.oracle.graal.python.runtime.nativeaccess.NativeContext; import com.oracle.graal.python.runtime.nativeaccess.NativeFunctionPointer; import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/structs/CFields.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/structs/CFields.java index bb86f66887..4c26796dc5 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/structs/CFields.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/structs/CFields.java @@ -40,75 +40,75 @@ */ package com.oracle.graal.python.builtins.objects.cext.structs; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CHAR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CHAR_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CharPtrAsTruffleString; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Double; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.INT64_T; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.INT_LIST; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_C_FUNCTION; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PY_SSIZE_T_PTR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Pointer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyAsyncMethods; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyBufferProcs; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyGetSetDef; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyMappingMethods; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyMemberDef; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyMethodDef; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyModuleDefSlot; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyNumberMethods; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectPtr; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PySequenceMethods; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyTypeObject; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_buffer; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_hash_t; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_ssize_t; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.UCHAR; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.UINT16_T; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.UINT64_T; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.UINTPTR_T; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.UNSIGNED_INT; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.UNSIGNED_LONG; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.allocfunc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.binaryfunc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.descrgetfunc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.descrsetfunc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.destructor; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.freefunc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.getattrfunc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.getattrofunc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.getbufferproc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.getiterfunc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.getter; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.hashfunc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.initproc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.inquiry; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.iternextfunc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.lenfunc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.newfunc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.objobjargproc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.objobjproc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.releasebufferproc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.reprfunc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.richcmpfunc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.sendfunc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.setattrfunc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.setattrofunc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.setter; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ssizeargfunc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ssizeobjargproc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ternaryfunc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.traverseproc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.unaryfunc; -import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.vectorcallfunc; +import static com.oracle.graal.python.annotations.ArgDescriptor.CHAR; +import static com.oracle.graal.python.annotations.ArgDescriptor.CHAR_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.CharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.Double; +import static com.oracle.graal.python.annotations.ArgDescriptor.INT64_T; +import static com.oracle.graal.python.annotations.ArgDescriptor.INT_LIST; +import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_C_FUNCTION; +import static com.oracle.graal.python.annotations.ArgDescriptor.PY_SSIZE_T_PTR; +import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyAsyncMethods; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyBufferProcs; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyGetSetDef; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyMappingMethods; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyMemberDef; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyMethodDef; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyModuleDefSlot; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyNumberMethods; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectPtr; +import static com.oracle.graal.python.annotations.ArgDescriptor.PySequenceMethods; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.Py_buffer; +import static com.oracle.graal.python.annotations.ArgDescriptor.Py_hash_t; +import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; +import static com.oracle.graal.python.annotations.ArgDescriptor.UCHAR; +import static com.oracle.graal.python.annotations.ArgDescriptor.UINT16_T; +import static com.oracle.graal.python.annotations.ArgDescriptor.UINT64_T; +import static com.oracle.graal.python.annotations.ArgDescriptor.UINTPTR_T; +import static com.oracle.graal.python.annotations.ArgDescriptor.UNSIGNED_INT; +import static com.oracle.graal.python.annotations.ArgDescriptor.UNSIGNED_LONG; +import static com.oracle.graal.python.annotations.ArgDescriptor.allocfunc; +import static com.oracle.graal.python.annotations.ArgDescriptor.binaryfunc; +import static com.oracle.graal.python.annotations.ArgDescriptor.descrgetfunc; +import static com.oracle.graal.python.annotations.ArgDescriptor.descrsetfunc; +import static com.oracle.graal.python.annotations.ArgDescriptor.destructor; +import static com.oracle.graal.python.annotations.ArgDescriptor.freefunc; +import static com.oracle.graal.python.annotations.ArgDescriptor.getattrfunc; +import static com.oracle.graal.python.annotations.ArgDescriptor.getattrofunc; +import static com.oracle.graal.python.annotations.ArgDescriptor.getbufferproc; +import static com.oracle.graal.python.annotations.ArgDescriptor.getiterfunc; +import static com.oracle.graal.python.annotations.ArgDescriptor.getter; +import static com.oracle.graal.python.annotations.ArgDescriptor.hashfunc; +import static com.oracle.graal.python.annotations.ArgDescriptor.initproc; +import static com.oracle.graal.python.annotations.ArgDescriptor.inquiry; +import static com.oracle.graal.python.annotations.ArgDescriptor.iternextfunc; +import static com.oracle.graal.python.annotations.ArgDescriptor.lenfunc; +import static com.oracle.graal.python.annotations.ArgDescriptor.newfunc; +import static com.oracle.graal.python.annotations.ArgDescriptor.objobjargproc; +import static com.oracle.graal.python.annotations.ArgDescriptor.objobjproc; +import static com.oracle.graal.python.annotations.ArgDescriptor.releasebufferproc; +import static com.oracle.graal.python.annotations.ArgDescriptor.reprfunc; +import static com.oracle.graal.python.annotations.ArgDescriptor.richcmpfunc; +import static com.oracle.graal.python.annotations.ArgDescriptor.sendfunc; +import static com.oracle.graal.python.annotations.ArgDescriptor.setattrfunc; +import static com.oracle.graal.python.annotations.ArgDescriptor.setattrofunc; +import static com.oracle.graal.python.annotations.ArgDescriptor.setter; +import static com.oracle.graal.python.annotations.ArgDescriptor.ssizeargfunc; +import static com.oracle.graal.python.annotations.ArgDescriptor.ssizeobjargproc; +import static com.oracle.graal.python.annotations.ArgDescriptor.ternaryfunc; +import static com.oracle.graal.python.annotations.ArgDescriptor.traverseproc; +import static com.oracle.graal.python.annotations.ArgDescriptor.unaryfunc; +import static com.oracle.graal.python.annotations.ArgDescriptor.vectorcallfunc; import static com.oracle.graal.python.runtime.nativeaccess.NativeMemory.readLongArrayElements; +import com.oracle.graal.python.annotations.ArgDescriptor; import com.oracle.graal.python.annotations.CApiFields; import com.oracle.graal.python.builtins.objects.cext.capi.CApiContext; -import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor; import com.oracle.truffle.api.CompilerAsserts; import com.oracle.truffle.api.CompilerDirectives; import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; From ca8156ae95f97dcb1518bd9a7f9fdf6c587ed38f Mon Sep 17 00:00:00 2001 From: Florian Angerer Date: Tue, 20 Oct 2026 19:32:09 +0200 Subject: [PATCH 07/11] Consolidate conversion-policy ArgDescriptor variants --- .../python/annotations/ArgDescriptor.java | 31 +- .../cext/PythonCextAbstractBuiltins.java | 122 ++-- .../modules/cext/PythonCextArrayBuiltins.java | 14 +- .../modules/cext/PythonCextBoolBuiltins.java | 6 +- .../modules/cext/PythonCextBuiltins.java | 21 +- .../cext/PythonCextByteArrayBuiltins.java | 4 +- .../modules/cext/PythonCextBytesBuiltins.java | 31 +- .../modules/cext/PythonCextCEvalBuiltins.java | 23 +- .../cext/PythonCextCapsuleBuiltins.java | 22 +- .../modules/cext/PythonCextClassBuiltins.java | 6 +- .../modules/cext/PythonCextCodeBuiltins.java | 22 +- .../modules/cext/PythonCextCodecBuiltins.java | 6 +- .../cext/PythonCextComplexBuiltins.java | 10 +- .../cext/PythonCextContextBuiltins.java | 24 +- .../cext/PythonCextDateTimeBuiltins.java | 24 +- .../modules/cext/PythonCextDescrBuiltins.java | 9 +- .../modules/cext/PythonCextDictBuiltins.java | 32 +- .../modules/cext/PythonCextErrBuiltins.java | 23 +- .../modules/cext/PythonCextFloatBuiltins.java | 5 +- .../modules/cext/PythonCextFrameBuiltins.java | 15 +- .../modules/cext/PythonCextFuncBuiltins.java | 44 +- .../cext/PythonCextGenericAliasBuiltins.java | 3 +- .../cext/PythonCextImportBuiltins.java | 21 +- .../modules/cext/PythonCextIterBuiltins.java | 5 +- .../modules/cext/PythonCextListBuiltins.java | 14 +- .../modules/cext/PythonCextLongBuiltins.java | 26 +- .../cext/PythonCextMemoryViewBuiltins.java | 5 +- .../cext/PythonCextMethodBuiltins.java | 7 +- .../cext/PythonCextModuleBuiltins.java | 22 +- .../cext/PythonCextNamespaceBuiltins.java | 3 +- .../cext/PythonCextObjectBuiltins.java | 51 +- .../cext/PythonCextPickleBufferBuiltins.java | 3 +- .../cext/PythonCextPosixmoduleBuiltins.java | 3 +- .../cext/PythonCextPyStateBuiltins.java | 9 +- .../cext/PythonCextPythonRunBuiltins.java | 11 +- .../modules/cext/PythonCextSetBuiltins.java | 7 +- .../modules/cext/PythonCextSliceBuiltins.java | 11 +- .../modules/cext/PythonCextSlotBuiltins.java | 43 +- .../cext/PythonCextStructSeqBuiltins.java | 9 +- .../modules/cext/PythonCextSysBuiltins.java | 4 +- .../cext/PythonCextTracebackBuiltins.java | 4 +- .../modules/cext/PythonCextTupleBuiltins.java | 9 +- .../modules/cext/PythonCextTypeBuiltins.java | 21 +- .../cext/PythonCextUnicodeBuiltins.java | 78 +-- .../modules/cext/PythonCextWarnBuiltins.java | 5 +- .../cext/PythonCextWeakrefBuiltins.java | 16 +- .../objects/cext/capi/CApiFunction.java | 637 +++++++++--------- .../cext/capi/ExternalFunctionNodes.java | 6 +- .../cext/capi/ExternalFunctionSignature.java | 84 ++- .../cext/capi/MethodDescriptorWrapper.java | 15 +- .../objects/cext/structs/CFields.java | 5 +- 51 files changed, 764 insertions(+), 867 deletions(-) diff --git a/graalpython/com.oracle.graal.python.annotations/src/com/oracle/graal/python/annotations/ArgDescriptor.java b/graalpython/com.oracle.graal.python.annotations/src/com/oracle/graal/python/annotations/ArgDescriptor.java index 35901aee66..5f1b03b77d 100644 --- a/graalpython/com.oracle.graal.python.annotations/src/com/oracle/graal/python/annotations/ArgDescriptor.java +++ b/graalpython/com.oracle.graal.python.annotations/src/com/oracle/graal/python/annotations/ArgDescriptor.java @@ -43,21 +43,12 @@ /** C signature and native type metadata, independent of Java/native conversion nodes. */ public enum ArgDescriptor { Void(NativeSimpleType.VOID, "void"), - VoidNoReturn(NativeSimpleType.VOID, "void"), PyObject(NativeSimpleType.POINTER, "PyObject*", true), - PyObjectBorrowed(NativeSimpleType.POINTER, "PyObject*", true), - PyObjectAsTruffleString(NativeSimpleType.POINTER, "PyObject*"), PyTypeObject(NativeSimpleType.POINTER, "PyTypeObject*", true), - PyTypeObjectBorrowed(NativeSimpleType.POINTER, "PyTypeObject*", true), - PyTypeObjectTransfer(NativeSimpleType.POINTER, "PyTypeObject*", true), - PyTypeObjectRawPointer(NativeSimpleType.POINTER, "PyTypeObject*"), PyListObject(NativeSimpleType.POINTER, "PyListObject*", true), PyTupleObject(NativeSimpleType.POINTER, "PyTupleObject*", true), PyMethodObject(NativeSimpleType.POINTER, "PyMethodObject*", true), PyInstanceMethodObject(NativeSimpleType.POINTER, "PyInstanceMethodObject*", true), - PyObjectTransfer(NativeSimpleType.POINTER, "PyObject*", true), - PyObjectReturn(NativeSimpleType.POINTER, "PyObject*", true), - PyObjectRawPointer(NativeSimpleType.POINTER, "PyObject*"), Pointer(NativeSimpleType.POINTER, "void*"), Py_ssize_t(NativeSimpleType.SINT64, "Py_ssize_t"), Py_hash_t(NativeSimpleType.SINT64, "Py_hash_t"), @@ -89,10 +80,7 @@ public enum ArgDescriptor { CHAR_CONST_ARRAY("char*const []"), CHAR_PTR(NativeSimpleType.POINTER, "char*"), CHAR_PTR_LIST(NativeSimpleType.POINTER, "char**"), - ConstCharPtrAsTruffleString(NativeSimpleType.POINTER, "const char*"), - ConstCharPtrAsTruffleStringStrict(NativeSimpleType.POINTER, "const char*"), ConstCharPtr(NativeSimpleType.POINTER, "const char*"), - CharPtrAsTruffleString(NativeSimpleType.POINTER, "char*"), CONST_CHAR_PTR_LIST("const char**"), CONST_PY_BUFFER("const Py_buffer*"), CONST_PY_SSIZE_T("const Py_ssize_t"), @@ -134,8 +122,6 @@ public enum ArgDescriptor { PyCMethodObject(NativeSimpleType.POINTER, "PyCMethodObject*", true), PY_CAPSULE_DESTRUCTOR(NativeSimpleType.POINTER, "PyCapsule_Destructor"), PyCodeObject(NativeSimpleType.POINTER, "PyCodeObject*", true), - PyCodeObjectTransfer(NativeSimpleType.POINTER, "PyCodeObject*", true), - PyCodeObjectRawPointer(NativeSimpleType.POINTER, "PyCodeObject*"), PyCode_WatchCallback(NativeSimpleType.POINTER, "PyCode_WatchCallback"), PY_COMPILER_FLAGS(NativeSimpleType.POINTER, "PyCompilerFlags*"), PY_COMPLEX("Py_complex"), @@ -146,9 +132,6 @@ public enum ArgDescriptor { PyFunctionObject(NativeSimpleType.POINTER, "PyFunctionObject*", true), PyFrameConstructor("PyFrameConstructor*"), PyFrameObject(NativeSimpleType.POINTER, "PyFrameObject*", true), - PyFrameObjectBorrowed(NativeSimpleType.POINTER, "PyFrameObject*", true), - PyFrameObjectTransfer(NativeSimpleType.POINTER, "PyFrameObject*", true), - PyFrameObjectRawPointer(NativeSimpleType.POINTER, "PyFrameObject*"), _PyFrameEvalFunction("_PyFrameEvalFunction"), _PyInterpreterFrame("struct _PyInterpreterFrame*"), PY_GEN_OBJECT(NativeSimpleType.POINTER, "PyGenObject*", true), @@ -164,13 +147,11 @@ public enum ArgDescriptor { PY_LOCK_STATUS("PyLockStatus"), PyLongObject(NativeSimpleType.POINTER, "PyLongObject*", true), ConstPyLongObject(NativeSimpleType.POINTER, "const PyLongObject*", true), - PyLongObjectTransfer(NativeSimpleType.POINTER, "PyLongObject*", true), PY_LONG_EXPORT_PTR(NativeSimpleType.POINTER, "PyLongExport*"), PY_LONG_WRITER_PTR(NativeSimpleType.POINTER, "PyLongWriter*"), CONST_PY_LONG_LAYOUT_PTR(NativeSimpleType.POINTER, "const PyLongLayout*"), PyMemberDef(NativeSimpleType.POINTER, "PyMemberDef*"), PyModuleObject(NativeSimpleType.POINTER, "PyModuleObject*", true), - PyModuleObjectTransfer(NativeSimpleType.POINTER, "PyModuleObject*", true), PyMethodDef(NativeSimpleType.POINTER, "PyMethodDef*"), PY_MONITORING_STATE_PTR(NativeSimpleType.POINTER, "PyMonitoringState*"), PyModuleDef(NativeSimpleType.POINTER, "PyModuleDef*"), // it's unclear if this should be @@ -300,15 +281,15 @@ public enum ArgDescriptor { func_objvoid("PyObject*(*)(void)"), func_objcharsizevoidptr("PyObject*(*)(const char*, Py_ssize_t, void*)"), xid_newobjectfunc(NativeSimpleType.POINTER, "xid_newobjectfunc"), - atexit_datacallbackfunc(NativeSimpleType.POINTER, "atexit_datacallbackfunc"), - - PrimitiveResult32(NativeSimpleType.SINT32, "int"), - PrimitiveResult64(NativeSimpleType.SINT64, "long"); + atexit_datacallbackfunc(NativeSimpleType.POINTER, "atexit_datacallbackfunc"); private final String cSignature; /** Null for descriptors whose native type has not been specified. */ private final NativeSimpleType nativeSimpleType; - /** Whether struct accesses treat this type as a Python object reference rather than raw data. */ + /** + * Whether this native type points to a Python object. Used by struct-access assertions, not to + * select conversions. + */ private final boolean pyObject; ArgDescriptor(String cSignature) { @@ -347,7 +328,7 @@ public boolean isPyObject() { } public boolean isCharPtr() { - return this == CharPtrAsTruffleString || this == CHAR_PTR || this == ConstCharPtr || this == ConstCharPtrAsTruffleString || this == ConstCharPtrAsTruffleStringStrict; + return this == CHAR_PTR || this == ConstCharPtr; } public boolean isI64() { diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextAbstractBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextAbstractBuiltins.java index 3e848b4d29..f070f8bef4 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextAbstractBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextAbstractBuiltins.java @@ -44,8 +44,6 @@ import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectPtr; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.DeprecationWarning; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.KeyError; @@ -181,7 +179,7 @@ public final class PythonCextAbstractBuiltins { /////// PyNumber /////// - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_PyNumber_Index(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); checkNonNullArgUncached(obj); @@ -204,14 +202,14 @@ static long GraalPyPrivate_PyNumber_Index(long objPtr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_PyNumber_IndexCopy(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); Object result = PyLongCopyNodeGen.getUncached().execute(null, obj); return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_PyNumber_Long(long objectPtr) { Object object = NativeToPythonInternalNode.executeUncached(objectPtr, false); Object result = PyNumberLongNode.executeUncached(object); @@ -219,7 +217,7 @@ static long GraalPyPrivate_PyNumber_Long(long objectPtr) { } // TODO(CAPI STATIC): uses nodes without @GenerateUncached - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Int}, call = Direct, acquireGil = false, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, Int}, call = Direct, acquireGil = false, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, int.class}) protected abstract static class PyNumber_ToBase extends CApiBinaryBuiltinNode { @Specialization(guards = "base == 2") @@ -269,14 +267,14 @@ protected boolean checkBase(int base) { } } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_PyNumber_Float(long objectPtr) { Object object = NativeToPythonInternalNode.executeUncached(objectPtr, false); double result = PyNumberFloatNode.executeUncached(object); return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_Add(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -284,7 +282,7 @@ static long GraalPyPrivate_PyNumber_Add(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_Subtract(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -292,7 +290,7 @@ static long GraalPyPrivate_PyNumber_Subtract(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_Multiply(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -300,7 +298,7 @@ static long GraalPyPrivate_PyNumber_Multiply(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_Remainder(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -308,7 +306,7 @@ static long GraalPyPrivate_PyNumber_Remainder(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_TrueDivide(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -316,7 +314,7 @@ static long GraalPyPrivate_PyNumber_TrueDivide(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_FloorDivide(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -324,7 +322,7 @@ static long GraalPyPrivate_PyNumber_FloorDivide(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_Divmod(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -332,7 +330,7 @@ static long GraalPyPrivate_PyNumber_Divmod(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_And(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -340,7 +338,7 @@ static long GraalPyPrivate_PyNumber_And(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_Or(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -348,7 +346,7 @@ static long GraalPyPrivate_PyNumber_Or(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_Xor(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -356,7 +354,7 @@ static long GraalPyPrivate_PyNumber_Xor(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_Lshift(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -364,7 +362,7 @@ static long GraalPyPrivate_PyNumber_Lshift(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_Rshift(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -372,7 +370,7 @@ static long GraalPyPrivate_PyNumber_Rshift(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_MatrixMultiply(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -380,7 +378,7 @@ static long GraalPyPrivate_PyNumber_MatrixMultiply(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_InPlaceAdd(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -388,7 +386,7 @@ static long GraalPyPrivate_PyNumber_InPlaceAdd(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_InPlaceSubtract(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -396,7 +394,7 @@ static long GraalPyPrivate_PyNumber_InPlaceSubtract(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_InPlaceMultiply(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -404,7 +402,7 @@ static long GraalPyPrivate_PyNumber_InPlaceMultiply(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_InPlaceRemainder(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -412,7 +410,7 @@ static long GraalPyPrivate_PyNumber_InPlaceRemainder(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_InPlaceTrueDivide(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -420,7 +418,7 @@ static long GraalPyPrivate_PyNumber_InPlaceTrueDivide(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_InPlaceFloorDivide(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -428,7 +426,7 @@ static long GraalPyPrivate_PyNumber_InPlaceFloorDivide(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_InPlaceAnd(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -436,7 +434,7 @@ static long GraalPyPrivate_PyNumber_InPlaceAnd(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_InPlaceOr(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -444,7 +442,7 @@ static long GraalPyPrivate_PyNumber_InPlaceOr(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_InPlaceXor(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -452,7 +450,7 @@ static long GraalPyPrivate_PyNumber_InPlaceXor(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_InPlaceLshift(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -460,7 +458,7 @@ static long GraalPyPrivate_PyNumber_InPlaceLshift(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_InPlaceRshift(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -468,7 +466,7 @@ static long GraalPyPrivate_PyNumber_InPlaceRshift(long o1Ptr, long o2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_PyNumber_InPlaceMatrixMultiply(long o1Ptr, long o2Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); Object o2 = NativeToPythonInternalNode.executeUncached(o2Ptr, false); @@ -476,7 +474,7 @@ static long GraalPyPrivate_PyNumber_InPlaceMatrixMultiply(long o1Ptr, long o2Ptr return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = { + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject, PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = { long.class, long.class, long.class}) static long GraalPyPrivate_PyNumber_InPlacePower(long o1Ptr, long o2Ptr, long o3Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); @@ -486,7 +484,7 @@ static long GraalPyPrivate_PyNumber_InPlacePower(long o1Ptr, long o2Ptr, long o3 return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = { + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject, PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = { long.class, long.class, long.class}) static long GraalPyPrivate_PyNumber_Power(long o1Ptr, long o2Ptr, long o3Ptr) { Object o1 = NativeToPythonInternalNode.executeUncached(o1Ptr, false); @@ -498,7 +496,7 @@ static long GraalPyPrivate_PyNumber_Power(long o1Ptr, long o2Ptr, long o3Ptr) { /////// PySequence /////// - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Direct, acquireGil = false, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, acquireGil = false, retConversion = long.class, argConversions = {long.class}) static long PySequence_Tuple(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); checkNonNullArgUncached(obj); @@ -506,14 +504,14 @@ static long PySequence_Tuple(long objPtr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Direct, acquireGil = false, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, acquireGil = false, retConversion = long.class, argConversions = {long.class}) static long PySequence_List(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); Object result = ConstructListNode.getUncached().execute(null, obj); return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, Py_ssize_t, PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = int.class, argConversions = {long.class, long.class, + @CApiBuiltin(ret = Int, args = {PyObject, Py_ssize_t, PyObject}, call = Ignored, acquireGil = false, retConversion = int.class, argConversions = {long.class, long.class, long.class}) static int GraalPyPrivate_Sequence_SetItem(long objPtr, long key, long valuePtr) { if ((int) key != key) { @@ -525,7 +523,7 @@ static int GraalPyPrivate_Sequence_SetItem(long objPtr, long key, long valuePtr) return 0; } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, Py_ssize_t, Py_ssize_t}, call = Direct, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, Py_ssize_t, Py_ssize_t}, call = Direct, acquireGil = false, retConversion = long.class, argConversions = {long.class, long.class, long.class}) static long PySequence_GetSlice(long objPtr, long iLow, long iHigh) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); @@ -537,14 +535,14 @@ static long PySequence_GetSlice(long objPtr, long iLow, long iHigh) { throw PRaiseNode.raiseStatic(null, TypeError, ErrorMessages.OBJ_IS_UNSLICEABLE, obj); } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct, acquireGil = false, retConversion = int.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct, acquireGil = false, retConversion = int.class, argConversions = {long.class, long.class}) static int PySequence_Contains(long haystackPtr, long needlePtr) { Object haystack = NativeToPythonInternalNode.executeUncached(haystackPtr, false); Object needle = NativeToPythonInternalNode.executeUncached(needlePtr, false); return PInt.intValue(PySequenceContainsNode.executeUncached(haystack, needle)); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, Py_ssize_t}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, Py_ssize_t}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) static long PySequence_InPlaceRepeat(long objPtr, long n) { if (!PInt.isIntRange(n)) { throw PRaiseNode.raiseStatic(null, OverflowError); @@ -554,7 +552,7 @@ static long PySequence_InPlaceRepeat(long objPtr, long n) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) static long PySequence_Concat(long s1Ptr, long s2Ptr) { Object s1 = NativeToPythonInternalNode.executeUncached(s1Ptr, false); Object s2 = NativeToPythonInternalNode.executeUncached(s2Ptr, false); @@ -562,7 +560,7 @@ static long PySequence_Concat(long s1Ptr, long s2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) static long PySequence_InPlaceConcat(long s1Ptr, long s2Ptr) { Object s1 = NativeToPythonInternalNode.executeUncached(s1Ptr, false); Object s2 = NativeToPythonInternalNode.executeUncached(s2Ptr, false); @@ -570,7 +568,7 @@ static long PySequence_InPlaceConcat(long s1Ptr, long s2Ptr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, Py_ssize_t}, call = Ignored, retConversion = int.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = Int, args = {PyObject, Py_ssize_t}, call = Ignored, retConversion = int.class, argConversions = {long.class, long.class}) static int GraalPyPrivate_Sequence_DelItem(long oPtr, long i) { if ((int) i != i) { throw PRaiseNode.raiseStatic(null, PythonErrorType.OverflowError, ErrorMessages.CANNOT_FIT_P_INTO_INDEXSIZED_INT, i); @@ -580,7 +578,7 @@ static int GraalPyPrivate_Sequence_DelItem(long oPtr, long i) { return 0; } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, Py_ssize_t}, call = Ignored, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, Py_ssize_t}, call = Ignored, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_Sequence_GetItem(long delegatePtr, long position) { if ((int) position != position) { throw PRaiseNode.raiseStatic(null, PythonErrorType.OverflowError, ErrorMessages.CANNOT_FIT_P_INTO_INDEXSIZED_INT, position); @@ -590,13 +588,13 @@ static long GraalPyPrivate_Sequence_GetItem(long delegatePtr, long position) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = Py_ssize_t, args = {PyObjectRawPointer}, call = Ignored, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = Py_ssize_t, args = {PyObject}, call = Ignored, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_Sequence_Size(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); return PySequenceSizeNode.executeUncached(obj); } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, Py_ssize_t, Py_ssize_t, PyObjectRawPointer}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class, long.class, + @CApiBuiltin(ret = Int, args = {PyObject, Py_ssize_t, Py_ssize_t, PyObject}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class, long.class, long.class}) static int PySequence_SetSlice(long sequencePtr, long iLow, long iHigh, long sPtr) { Object sequence = NativeToPythonInternalNode.executeUncached(sequencePtr, false); @@ -611,7 +609,7 @@ static int PySequence_SetSlice(long sequencePtr, long iLow, long iHigh, long sPt } } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, Py_ssize_t, Py_ssize_t}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class, long.class}) + @CApiBuiltin(ret = Int, args = {PyObject, Py_ssize_t, Py_ssize_t}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class, long.class}) static int PySequence_DelSlice(long sequencePtr, long iLow, long iHigh) { Object sequence = NativeToPythonInternalNode.executeUncached(sequencePtr, false); TpSlots slots = GetObjectSlotsNode.executeUncached(sequence); @@ -624,14 +622,14 @@ static int PySequence_DelSlice(long sequencePtr, long iLow, long iHigh) { } } - @CApiBuiltin(ret = Py_ssize_t, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = Py_ssize_t, args = {PyObject, PyObject}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) static long PySequence_Count(long haystackPtr, long needlePtr) { Object haystack = NativeToPythonInternalNode.executeUncached(haystackPtr, false); Object needle = NativeToPythonInternalNode.executeUncached(needlePtr, false); return PySequenceIterSearchNode.executeUncached(haystack, needle, PySequenceIterSearchNode.PY_ITERSEARCH_COUNT); } - @CApiBuiltin(ret = Py_ssize_t, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = Py_ssize_t, args = {PyObject, PyObject}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) static long PySequence_Index(long haystackPtr, long needlePtr) { Object haystack = NativeToPythonInternalNode.executeUncached(haystackPtr, false); Object needle = NativeToPythonInternalNode.executeUncached(needlePtr, false); @@ -640,7 +638,7 @@ static long PySequence_Index(long haystackPtr, long needlePtr) { /////// PyObject /////// - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) static long PyObject_GetItem(long objPtr, long keyPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); Object key = NativeToPythonInternalNode.executeUncached(keyPtr, false); @@ -648,7 +646,7 @@ static long PyObject_GetItem(long objPtr, long keyPtr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(name = "GraalPyPrivate_Object_GetItemString", ret = PyObjectRawPointer, args = {PyObjectRawPointer, ConstCharPtr}, call = Ignored, retConversion = long.class, argConversions = { + @CApiBuiltin(name = "GraalPyPrivate_Object_GetItemString", ret = PyObject, args = {PyObject, ConstCharPtr}, call = Ignored, retConversion = long.class, argConversions = { long.class, long.class}) static long GraalPyPrivate_Object_GetItemString(long objPtr, long keyPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); @@ -657,7 +655,7 @@ static long GraalPyPrivate_Object_GetItemString(long objPtr, long keyPtr) { return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(name = "GraalPyPrivate_Mapping_GetOptionalItemString", ret = Int, args = {PyObjectRawPointer, ConstCharPtr, PyObjectPtr}, call = Ignored, retConversion = int.class, argConversions = { + @CApiBuiltin(name = "GraalPyPrivate_Mapping_GetOptionalItemString", ret = Int, args = {PyObject, ConstCharPtr, PyObjectPtr}, call = Ignored, retConversion = int.class, argConversions = { long.class, long.class, long.class}) static int GraalPyPrivate_Mapping_GetOptionalItemString(long objPtr, long keyPtr, long resultPtr) { NativeMemory.writePtr(resultPtr, NULLPTR); @@ -674,7 +672,7 @@ static int GraalPyPrivate_Mapping_GetOptionalItemString(long objPtr, long keyPtr return 1; } - @CApiBuiltin(ret = Py_ssize_t, args = {PyObjectRawPointer}, call = Ignored, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = Py_ssize_t, args = {PyObject}, call = Ignored, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_Object_Size(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); // Native objects are handled in C @@ -684,7 +682,7 @@ static long GraalPyPrivate_Object_Size(long objPtr) { return PyObjectSizeNode.executeUncached(obj); } - @CApiBuiltin(ret = Py_ssize_t, args = {PyObjectRawPointer, Py_ssize_t}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = Py_ssize_t, args = {PyObject, Py_ssize_t}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) static long PyObject_LengthHint(long objPtr, long defaultValue) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); int len = IteratorNodes.GetLength.executeUncached(obj); @@ -696,7 +694,7 @@ static long PyObject_LengthHint(long objPtr, long defaultValue) { /////// PyMapping /////// - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyMapping_Keys(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); checkNonNullArgUncached(obj); @@ -714,7 +712,7 @@ static long PyMapping_Keys(long objPtr) { return PythonToNativeInternalNode.executeNewRefUncached(listResult); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyMapping_Items(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); checkNonNullArgUncached(obj); @@ -732,7 +730,7 @@ static long PyMapping_Items(long objPtr) { return PythonToNativeInternalNode.executeNewRefUncached(listResult); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyMapping_Values(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); checkNonNullArgUncached(obj); @@ -750,7 +748,7 @@ static long PyMapping_Values(long objPtr) { return PythonToNativeInternalNode.executeNewRefUncached(listResult); } - @CApiBuiltin(ret = Py_ssize_t, args = {PyObjectRawPointer}, call = Ignored, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = Py_ssize_t, args = {PyObject}, call = Ignored, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_Mapping_Size(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); Object cls = GetClassNode.executeUncached(obj); @@ -764,7 +762,7 @@ static long GraalPyPrivate_Mapping_Size(long objPtr) { /////// PyIter /////// - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyIter_Next(long iteratorPtr) { Object iterator = NativeToPythonInternalNode.executeUncached(iteratorPtr, false); try { @@ -778,7 +776,7 @@ static long PyIter_Next(long iteratorPtr) { } } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_Iter_Send(long iterPtr, long argPtr) { Object iter = NativeToPythonInternalNode.executeUncached(iterPtr, false); Object arg = NativeToPythonInternalNode.executeUncached(argPtr, false); @@ -805,7 +803,7 @@ static long GraalPyPrivate_Iter_Send(long iterPtr, long argPtr) { } } - @CApiBuiltin(ret = ConstCharPtr, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = ConstCharPtr, args = {PyObject}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyObject_GetDoc(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); try { @@ -819,7 +817,7 @@ static long PyObject_GetDoc(long objPtr) { return NULLPTR; } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, ConstCharPtr}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtr}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class}) static int PyObject_SetDoc(long objPtr, long valuePtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); Object value = CharPtrToPythonNode.executeUncached(valuePtr); diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextArrayBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextArrayBuiltins.java index f33c51c9ce..7963b5127c 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextArrayBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextArrayBuiltins.java @@ -44,8 +44,6 @@ import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.PY_BUFFER_PTR; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.annotations.ArgDescriptor.Void; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.MemoryError; @@ -82,7 +80,7 @@ public final class PythonCextArrayBuiltins { - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Py_ssize_t, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, long.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, Py_ssize_t, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, long.class, int.class}) static long GraalPyPrivate_Array_New(long clsPtr, long size, int typeCode) { Object cls = NativeToPythonInternalNode.executeUncached(clsPtr, false); @@ -97,7 +95,7 @@ static long GraalPyPrivate_Array_New(long clsPtr, long size, int typeCode) { } } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer}, call = Ignored, retConversion = int.class, argConversions = {long.class}) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Ignored, retConversion = int.class, argConversions = {long.class}) static int GraalPyPrivate_Array_TypeCode(long arrayPtr) { return expectArray(arrayPtr, "GraalPyArray_GetDescriptor").getFormatString().codePointAtIndexUncached(0, TS_ENCODING); } @@ -105,7 +103,7 @@ static int GraalPyPrivate_Array_TypeCode(long arrayPtr) { /** * Graalpy-specific function implemented for Cython */ - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, Py_ssize_t}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = Int, args = {PyObject, Py_ssize_t}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class}) static int GraalPyArray_Resize(long arrayPtr, long newSize) { PArray array = expectArray(arrayPtr, "GraalPyArray_Resize"); ArrayNodes.EnsureCapacityNode.executeUncached(array, (int) newSize); @@ -113,7 +111,7 @@ static int GraalPyArray_Resize(long arrayPtr, long newSize) { return 0; } - @CApiBuiltin(ret = CHAR_PTR, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = CHAR_PTR, args = {PyObject}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long GraalPyArray_Data(long arrayPtr) { PArray array = expectArray(arrayPtr, "GraalPyArray_Data"); if (array.getBytesLength() > 0) { @@ -122,7 +120,7 @@ static long GraalPyArray_Data(long arrayPtr) { return NULLPTR; } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, PY_BUFFER_PTR, Int}, call = Ignored, retConversion = int.class, argConversions = {long.class, long.class, int.class}) + @CApiBuiltin(ret = Int, args = {PyObject, PY_BUFFER_PTR, Int}, call = Ignored, retConversion = int.class, argConversions = {long.class, long.class, int.class}) static int GraalPyPrivate_Array_getbuffer(long arrayPtr, long pyBufferPtr, int flags) { PArray array = expectArray(arrayPtr, "GraalPyPrivate_Array_getbuffer"); long bufPtr = ArrayNodes.EnsureNativeStorageNode.executeUncached(array).getPtr(); @@ -162,7 +160,7 @@ static int GraalPyPrivate_Array_getbuffer(long arrayPtr, long pyBufferPtr, int f return 0; } - @CApiBuiltin(ret = Void, args = {PyObjectRawPointer, PY_BUFFER_PTR}, call = Ignored, retConversion = void.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = Void, args = {PyObject, PY_BUFFER_PTR}, call = Ignored, retConversion = void.class, argConversions = {long.class, long.class}) static void GraalPyPrivate_Array_releasebuffer(long arrayPtr, long pyBufferPtr) { PArray array = expectArray(arrayPtr, "GraalPyPrivate_Array_releasebuffer"); array.getExports().decrementAndGet(); diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBoolBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBoolBuiltins.java index 42246d9e6c..a86dda96d2 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBoolBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBoolBuiltins.java @@ -40,7 +40,7 @@ */ package com.oracle.graal.python.builtins.modules.cext; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; @@ -52,14 +52,14 @@ public final class PythonCextBoolBuiltins { // These two should only be used during C API initialization, so the performance hardly // matters, but keeping their codesize small still makes sense. - @CApiBuiltin(ret = PyObjectRawPointer, call = Ignored, acquireGil = false, canRaise = false, retConversion = long.class, argConversions = {}) + @CApiBuiltin(ret = PyObject, call = Ignored, acquireGil = false, canRaise = false, retConversion = long.class, argConversions = {}) public static long GraalPyPrivate_True() { Object trueValue = PythonContext.get(null).getTrue(); assert EnsurePythonObjectNode.doesNotNeedPromotion(trueValue); return PythonToNativeInternalNode.executeUncached(trueValue, true); } - @CApiBuiltin(ret = PyObjectRawPointer, call = Ignored, acquireGil = false, canRaise = false, retConversion = long.class, argConversions = {}) + @CApiBuiltin(ret = PyObject, call = Ignored, acquireGil = false, canRaise = false, retConversion = long.class, argConversions = {}) public static long GraalPyPrivate_False() { Object falseValue = PythonContext.get(null).getFalse(); assert EnsurePythonObjectNode.doesNotNeedPromotion(falseValue); diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBuiltins.java index e476758d53..29d9d74297 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBuiltins.java @@ -44,12 +44,11 @@ import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyCodeObjectRawPointer; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyFrameObjectRawPointer; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyCodeObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyFrameObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; import static com.oracle.graal.python.annotations.ArgDescriptor.PyThreadState; import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObjectRawPointer; import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.annotations.ArgDescriptor.SIZE_T; import static com.oracle.graal.python.annotations.ArgDescriptor.UINTPTR_T; @@ -878,7 +877,7 @@ public boolean inherits(ABI candidate) { ABI[] abi() default {ABI.GRAALPY}; } - @CApiBuiltin(ret = PyObjectRawPointer, call = Ignored, retConversion = long.class, argConversions = {}) + @CApiBuiltin(ret = PyObject, call = Ignored, retConversion = long.class, argConversions = {}) static long GraalPyPrivate_FileSystemDefaultEncoding() { return PythonToNativeInternalNode.executeNewRefUncached(GetFileSystemEncodingNode.getFileSystemEncoding()); } @@ -888,7 +887,7 @@ static long GraalPyPrivate_FileSystemDefaultEncoding() { T_BUILTINS }; - @CApiBuiltin(ret = PyTypeObjectRawPointer, args = {ConstCharPtr}, call = Ignored, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyTypeObject, args = {ConstCharPtr}, call = Ignored, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_Type(long typeNamePtr) { TruffleString typeName = (TruffleString) CharPtrToPythonNode.executeUncached(typeNamePtr); Python3Core core = PythonContext.get(null).getCore(); @@ -906,7 +905,7 @@ static long GraalPyPrivate_Type(long typeNamePtr) { throw PRaiseNode.raiseStatic(null, PythonErrorType.KeyError, ErrorMessages.APOSTROPHE_S, typeName); } - @CApiBuiltin(ret = Void, args = {PyTypeObjectRawPointer}, call = Ignored, retConversion = void.class, argConversions = {long.class}) + @CApiBuiltin(ret = Void, args = {PyTypeObject}, call = Ignored, retConversion = void.class, argConversions = {long.class}) @TruffleBoundary static void GraalPyPrivate_AddInheritedSlots(long pythonClassPtr) { /** @@ -934,7 +933,7 @@ public static void GraalPyPrivate_NotifyTypeReady(long pointer) { } } - @CApiBuiltin(ret = PyFrameObjectRawPointer, args = {PyThreadState, PyCodeObjectRawPointer, PyObjectRawPointer, PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = { + @CApiBuiltin(ret = PyFrameObject, args = {PyThreadState, PyCodeObject, PyObject, PyObject}, call = Direct, retConversion = long.class, argConversions = { long.class, long.class, long.class, long.class}) static long PyFrame_New(long threadState, long codePtr, long globalsPtr, long localsPtr) { PCode code = (PCode) NativeToPythonInternalNode.executeUncached(codePtr, false); @@ -945,7 +944,7 @@ static long PyFrame_New(long threadState, long codePtr, long globalsPtr, long lo return PythonToNativeInternalNode.executeNewRefUncached(PFactory.createPFrame(language, threadState, code, globals, frameLocals)); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {Pointer, PyObjectRawPointer, Py_ssize_t, Int, Py_ssize_t, ConstCharPtr, Int, Pointer, Pointer, Pointer, + @CApiBuiltin(ret = PyObject, args = {Pointer, PyObject, Py_ssize_t, Int, Py_ssize_t, ConstCharPtr, Int, Pointer, Pointer, Pointer, Pointer}, call = Ignored, retConversion = long.class, argConversions = {long.class, long.class, long.class, int.class, long.class, long.class, int.class, long.class, long.class, long.class, long.class}) static long GraalPyPrivate_MemoryViewFromBuffer(long bufferStructPointer, long ownerPtr, long lenArg, int readonlyArg, long itemsizeArg, long formatPtr, int ndim, long bufPointer, @@ -1612,7 +1611,7 @@ private static PythonManagedClass lookupBuiltinTypeWithName(PythonContext contex return clazz; } - @CApiBuiltin(ret = CHAR_PTR, args = {PyObjectRawPointer}, call = Ignored, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = CHAR_PTR, args = {PyObject}, call = Ignored, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_GetMMapData(long objectPtr) { PMMap object = (PMMap) NativeToPythonInternalNode.executeUncached(objectPtr, false); PythonContext context = PythonContext.get(null); @@ -1623,7 +1622,7 @@ static long GraalPyPrivate_GetMMapData(long objectPtr) { } } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer}, call = Ignored, retConversion = int.class, argConversions = {long.class}) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Ignored, retConversion = int.class, argConversions = {long.class}) static int GraalPyPrivate_MMap_IsReadonly(long objectPtr) { PMMap object = (PMMap) NativeToPythonInternalNode.executeUncached(objectPtr, false); return object.isWriteable() ? 0 : 1; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextByteArrayBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextByteArrayBuiltins.java index eb8519501e..f8ad31c8cc 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextByteArrayBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextByteArrayBuiltins.java @@ -41,7 +41,7 @@ package com.oracle.graal.python.builtins.modules.cext; import static com.oracle.graal.python.annotations.ArgDescriptor.CHAR_PTR; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.objects.cext.structs.CStructAccess.getFieldPtr; @@ -60,7 +60,7 @@ public final class PythonCextByteArrayBuiltins { - @CApiBuiltin(ret = CHAR_PTR, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = CHAR_PTR, args = {PyObject}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyByteArray_AsString(long bytesPtr) { Object obj = NativeToPythonInternalNode.executeUncached(bytesPtr, false); if (obj instanceof PByteArray bytes) { diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBytesBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBytesBuiltins.java index 410fda7c17..28241cdf71 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBytesBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBytesBuiltins.java @@ -42,11 +42,8 @@ import static com.oracle.graal.python.annotations.ArgDescriptor.CHAR_PTR; import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; -import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.IndexError; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.SystemError; @@ -110,7 +107,7 @@ public final class PythonCextBytesBuiltins { /* * Moving this to native regresses median time by about 1.84x, so leaving it here. */ - @CApiBuiltin(ret = Py_ssize_t, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = Py_ssize_t, args = {PyObject}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyBytes_Size(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); if (obj instanceof PBytes bytes) { @@ -122,7 +119,7 @@ static long PyBytes_Size(long objPtr) { throw PRaiseNode.raiseStatic(null, TypeError, ErrorMessages.EXPECTED_BYTES_P_FOUND, obj); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_Bytes_Concat(long originalPtr, long newPartPtr) { Object original = NativeToPythonInternalNode.executeUncached(originalPtr, false); Object newPart = NativeToPythonInternalNode.executeUncached(newPartPtr, false); @@ -131,7 +128,7 @@ static long GraalPyPrivate_Bytes_Concat(long originalPtr, long newPartPtr) { } // TODO(CAPI STATIC): uses nodes without @GenerateUncached - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class _PyBytes_Join extends CApiBinaryBuiltinNode { @Specialization @@ -142,7 +139,7 @@ static Object join(Object original, Object newPart, } // TODO(CAPI STATIC): uses nodes without @GenerateUncached - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {ConstCharPtr, PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonNode.class, NativeToPythonNode.class}) abstract static class GraalPyPrivate_Bytes_FromFormat extends CApiBinaryBuiltinNode { @Specialization @@ -155,7 +152,7 @@ static Object fromFormat(TruffleString fmt, Object args, } // TODO(CAPI STATIC): uses nodes without @GenerateUncached - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyBytes_FromObject extends CApiUnaryBuiltinNode { @Specialization(guards = "isBuiltinBytes(bytes)") static Object bytes(PBytes bytes) { @@ -171,7 +168,7 @@ static Object fromObject(Object obj, } } - @CApiBuiltin(ret = PyObjectRawPointer, args = {ConstCharPtr, Py_ssize_t}, call = Ignored, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {ConstCharPtr, Py_ssize_t}, call = Ignored, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_Bytes_FromStringAndSize(long nativePointer, long size) { try { byte[] bytes = getByteArray(nativePointer, size); @@ -182,7 +179,7 @@ static long GraalPyPrivate_Bytes_FromStringAndSize(long nativePointer, long size } } - @CApiBuiltin(ret = PyObjectRawPointer, args = {ConstCharPtr, Py_ssize_t}, call = Ignored, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {ConstCharPtr, Py_ssize_t}, call = Ignored, retConversion = long.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_ByteArray_FromStringAndSize(long nativePointer, long size) { try { byte[] bytes = getByteArray(nativePointer, size); @@ -193,8 +190,8 @@ static long GraalPyPrivate_ByteArray_FromStringAndSize(long nativePointer, long } } - @CApiBuiltin(name = "PyByteArray_Resize", ret = Int, args = {PyObjectRawPointer, Py_ssize_t}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class}) - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, Py_ssize_t}, call = Ignored, retConversion = int.class, argConversions = {long.class, long.class}) + @CApiBuiltin(name = "PyByteArray_Resize", ret = Int, args = {PyObject, Py_ssize_t}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = Int, args = {PyObject, Py_ssize_t}, call = Ignored, retConversion = int.class, argConversions = {long.class, long.class}) static int GraalPyPrivate_Bytes_Resize(long selfPtr, long newSizeL) { Object self = NativeToPythonInternalNode.executeUncached(selfPtr, false); if (CompilerDirectives.injectBranchProbability(CompilerDirectives.SLOWPATH_PROBABILITY, !(self instanceof PBytesLike))) { @@ -213,7 +210,7 @@ static int GraalPyPrivate_Bytes_Resize(long selfPtr, long newSizeL) { return 0; } - @CApiBuiltin(ret = PyObjectRawPointer, args = {ArgDescriptor.Long}, call = Ignored, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyObject, args = {ArgDescriptor.Long}, call = Ignored, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_Bytes_EmptyWithCapacity(long size) { try { Object result = PFactory.createBytes(PythonLanguage.get(null), new byte[PInt.intValueExact(size)]); @@ -223,12 +220,12 @@ static long GraalPyPrivate_Bytes_EmptyWithCapacity(long size) { } } - @CApiBuiltin(ret = PyObjectRawPointer, call = Ignored, retConversion = long.class, argConversions = {}) + @CApiBuiltin(ret = PyObject, call = Ignored, retConversion = long.class, argConversions = {}) static long GraalPyPrivate_Bytes_Empty() { return PythonToNativeInternalNode.executeNewRefUncached(PFactory.createEmptyBytes(PythonLanguage.get(null))); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {Py_ssize_t}, call = Ignored, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyObject, args = {Py_ssize_t}, call = Ignored, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_ByteArray_EmptyWithCapacity(long size) { try { Object result = PFactory.createByteArray(PythonLanguage.get(null), new byte[PInt.intValueExact(size)]); @@ -238,7 +235,7 @@ static long GraalPyPrivate_ByteArray_EmptyWithCapacity(long size) { } } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer}, call = CApiCallPath.Ignored, retConversion = int.class, argConversions = {long.class}) + @CApiBuiltin(ret = Int, args = {PyObject}, call = CApiCallPath.Ignored, retConversion = int.class, argConversions = {long.class}) static int GraalPyPrivate_Bytes_CheckEmbeddedNull(long bytesPtr) { Object bytes = NativeToPythonInternalNode.executeUncached(bytesPtr, false); SequenceStorage sequenceStorage = GetBytesStorage.executeUncached(bytes); @@ -255,7 +252,7 @@ static int GraalPyPrivate_Bytes_CheckEmbeddedNull(long bytesPtr) { return 0; } - @CApiBuiltin(ret = CHAR_PTR, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = CHAR_PTR, args = {PyObject}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyBytes_AsString(long bytesPtr) { Object obj = NativeToPythonInternalNode.executeUncached(bytesPtr, false); if (obj instanceof PBytes bytes) { diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCEvalBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCEvalBuiltins.java index 33cefca8df..b6b9dbc7d1 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCEvalBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCEvalBuiltins.java @@ -41,10 +41,9 @@ package com.oracle.graal.python.builtins.modules.cext; import static com.oracle.graal.python.annotations.ArgDescriptor.Int; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyFrameObjectBorrowed; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectBorrowed; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyFrameObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectConstPtr; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; import static com.oracle.graal.python.annotations.ArgDescriptor.PyThreadState; import static com.oracle.graal.python.annotations.ArgDescriptor.Void; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.SystemError; @@ -116,27 +115,27 @@ static void PyEval_RestoreThread(@SuppressWarnings("unused") long ptr) { GilNode.getUncached().acquire(context, null); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {}) + @CApiBuiltin(ret = PyObject, args = {}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {}) static long PyEval_GetBuiltins() { PythonModule cext = PythonContext.get(null).getBuiltins(); return ToNativeBorrowedNode.executeUncached(GetDictIfExistsNode.getUncached().execute(cext)); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {}, call = Direct, retConversion = long.class, argConversions = {}) + @CApiBuiltin(ret = PyObject, args = {}, call = Direct, retConversion = long.class, argConversions = {}) static long PyEval_GetFrameBuiltins() { PythonModule builtins = PythonContext.get(null).getBuiltins(); Object dict = GetDictIfExistsNode.getUncached().execute(builtins); return PythonToNativeInternalNode.executeNewRefUncached(dict); } - @CApiBuiltin(ret = PyFrameObjectBorrowed, args = {}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {}) + @CApiBuiltin(ret = PyFrameObject, args = {}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {}) static long PyEval_GetFrame() { PFrame pFrame = ReadFrameNode.getUncached().getCurrentPythonFrame(null); return pFrame != null ? ToNativeBorrowedNode.executeUncached(pFrame) : NULLPTR; } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer, PyObjectRawPointer, PyObjectConstPtr, Int, PyObjectConstPtr, Int, PyObjectConstPtr, Int, - PyObjectRawPointer, PyObjectRawPointer}, call = Ignored, retConversion = long.class, argConversions = {long.class, long.class, long.class, long.class, int.class, long.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject, PyObject, PyObjectConstPtr, Int, PyObjectConstPtr, Int, PyObjectConstPtr, Int, + PyObject, PyObject}, call = Ignored, retConversion = long.class, argConversions = {long.class, long.class, long.class, long.class, int.class, long.class, int.class, long.class, int.class, long.class, long.class}) static long GraalPyPrivate_Eval_EvalCodeEx(long codePtr, long globalsPtr, long localsPtr, long argumentArrayPtr, int argumentCount, long kwsPtr, int kwsCount, long defaultValueArrayPtr, int defaultValueCount, @@ -181,13 +180,13 @@ static long GraalPyPrivate_Eval_EvalCodeEx(long codePtr, long globalsPtr, long l return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {}) + @CApiBuiltin(ret = PyObject, args = {}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {}) static long PyEval_GetGlobals() { PythonObject globals = PyEvalGetGlobals.executeUncached(null); return globals != null ? ToNativeBorrowedNode.executeUncached(globals) : NULLPTR; } - @CApiBuiltin(ret = PyObjectBorrowed, args = {}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {}) + @CApiBuiltin(ret = PyObject, args = {}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {}) static long PyEval_GetLocals() { PFrame frame = ReadFrameNode.getUncached().getCurrentPythonFrame(null, CallerFlags.NEEDS_LOCALS); if (frame == null) { @@ -208,13 +207,13 @@ static long PyEval_GetLocals() { return ToNativeBorrowedNode.executeUncached(localsCache); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {}, call = Direct, retConversion = long.class, argConversions = {}) + @CApiBuiltin(ret = PyObject, args = {}, call = Direct, retConversion = long.class, argConversions = {}) static long PyEval_GetFrameGlobals() { PythonObject globals = PyEvalGetGlobals.executeUncached(null); return globals != null ? PythonToNativeInternalNode.executeNewRefUncached(globals) : NULLPTR; } - @CApiBuiltin(ret = PyObjectRawPointer, args = {}, call = Direct, retConversion = long.class, argConversions = {}) + @CApiBuiltin(ret = PyObject, args = {}, call = Direct, retConversion = long.class, argConversions = {}) static long PyEval_GetFrameLocals() { PFrame frame = ReadFrameNode.getUncached().getCurrentPythonFrame(null, CallerFlags.NEEDS_LOCALS); if (frame == null) { diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCapsuleBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCapsuleBuiltins.java index 6802f964b7..8e2ddcd4f9 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCapsuleBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCapsuleBuiltins.java @@ -44,7 +44,7 @@ import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.PY_CAPSULE_DESTRUCTOR; import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.AttributeError; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.ValueError; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; @@ -82,7 +82,7 @@ public final class PythonCextCapsuleBuiltins { - @CApiBuiltin(ret = PyObjectRawPointer, args = {Pointer, ConstCharPtr, PY_CAPSULE_DESTRUCTOR}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {Pointer, ConstCharPtr, PY_CAPSULE_DESTRUCTOR}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class, long.class}) static long PyCapsule_New(long pointer, long namePtr, long destructor) { PyCapsule capsule = PyCapsuleNewNode.executeUncached(pointer, namePtr, destructor); return PythonToNativeInternalNode.executeNewRefUncached(capsule); @@ -115,7 +115,7 @@ static PyCapsule doGeneric(Node inliningTarget, long pointer, long namePtr, long } } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, ConstCharPtr}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtr}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class}) static int PyCapsule_IsValid(long oPtr, long namePtr) { Object obj = NativeToPythonInternalNode.executeUncached(oPtr, false); if (!(obj instanceof PyCapsule capsule)) { @@ -130,7 +130,7 @@ static int PyCapsule_IsValid(long oPtr, long namePtr) { return 1; } - @CApiBuiltin(ret = Pointer, args = {PyObjectRawPointer, ConstCharPtr}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = Pointer, args = {PyObject, ConstCharPtr}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) static long PyCapsule_GetPointer(long oPtr, long namePtr) { Object capsule = NativeToPythonInternalNode.executeUncached(oPtr, false); return PyCapsuleGetPointerNode.executeUncached(capsule, namePtr); @@ -170,25 +170,25 @@ static long doError(Node inliningTarget, @SuppressWarnings("unused") Object o, @ } } - @CApiBuiltin(ret = ConstCharPtr, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = ConstCharPtr, args = {PyObject}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyCapsule_GetName(long oPtr) { PyCapsule capsule = expectCapsule(oPtr, "PyCapsule_GetName"); return capsule.getNamePtr(); } - @CApiBuiltin(ret = PY_CAPSULE_DESTRUCTOR, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = PY_CAPSULE_DESTRUCTOR, args = {PyObject}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyCapsule_GetDestructor(long oPtr) { PyCapsule capsule = expectCapsule(oPtr, "PyCapsule_GetDestructor"); return capsule.getDestructor(); } - @CApiBuiltin(ret = Pointer, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = Pointer, args = {PyObject}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyCapsule_GetContext(long oPtr) { PyCapsule capsule = expectCapsule(oPtr, "PyCapsule_GetContext"); return capsule.getContext(); } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, Pointer}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = Int, args = {PyObject, Pointer}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class}) static int PyCapsule_SetPointer(long oPtr, long pointer) { if (pointer == NULLPTR) { throw PRaiseNode.raiseStatic(null, ValueError, CALLED_WITH_NULL_POINTER, "PyCapsule_SetPointer"); @@ -198,21 +198,21 @@ static int PyCapsule_SetPointer(long oPtr, long pointer) { return 0; } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, ConstCharPtr}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtr}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class}) static int PyCapsule_SetName(long oPtr, long namePtr) { PyCapsule capsule = expectCapsule(oPtr, "PyCapsule_SetName"); capsule.setNamePtr(namePtr); return 0; } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, PY_CAPSULE_DESTRUCTOR}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = Int, args = {PyObject, PY_CAPSULE_DESTRUCTOR}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class}) static int PyCapsule_SetDestructor(long oPtr, long destructor) { PyCapsule capsule = expectCapsule(oPtr, "PyCapsule_SetDestructor"); capsule.registerDestructor(destructor); return 0; } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, Pointer}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = Int, args = {PyObject, Pointer}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class}) static int PyCapsule_SetContext(long oPtr, long context) { PyCapsule capsule = expectCapsule(oPtr, "PyCapsule_SetContext"); capsule.setContext(context); diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextClassBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextClassBuiltins.java index ed0e0731ef..db66285c86 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextClassBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextClassBuiltins.java @@ -40,7 +40,7 @@ */ package com.oracle.graal.python.builtins.modules.cext; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltinNode.checkNonNullArgUncached; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; @@ -53,7 +53,7 @@ public final class PythonCextClassBuiltins { - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyInstanceMethod_New(long funcPtr) { Object func = NativeToPythonInternalNode.executeUncached(funcPtr, false); checkNonNullArgUncached(func); @@ -62,7 +62,7 @@ static long PyInstanceMethod_New(long funcPtr) { return PythonToNativeInternalNode.executeNewRefUncached(res); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) static long PyMethod_New(long funcPtr, long selfPtr) { Object func = NativeToPythonInternalNode.executeUncached(funcPtr, false); Object self = NativeToPythonInternalNode.executeUncached(selfPtr, false); diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCodeBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCodeBuiltins.java index 8eed719fd1..edb669563d 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCodeBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCodeBuiltins.java @@ -42,8 +42,8 @@ import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; import static com.oracle.graal.python.annotations.ArgDescriptor.Int; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyCodeObjectRawPointer; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyCodeObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.util.PythonUtils.EMPTY_BYTE_ARRAY; @@ -62,21 +62,21 @@ public final class PythonCextCodeBuiltins { - @CApiBuiltin(ret = Py_ssize_t, args = {PyCodeObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = Py_ssize_t, args = {PyCodeObject}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long GraalPyCode_GetNumFree(long codePtr) { PCode code = (PCode) NativeToPythonInternalNode.executeUncached(codePtr, false); return code.getFreeVars().length; } - @CApiBuiltin(ret = Int, args = {PyCodeObjectRawPointer}, call = Direct, retConversion = int.class, argConversions = {long.class}) + @CApiBuiltin(ret = Int, args = {PyCodeObject}, call = Direct, retConversion = int.class, argConversions = {long.class}) static int GraalPyCode_GetFirstFree(long codePtr) { PCode code = (PCode) NativeToPythonInternalNode.executeUncached(codePtr, false); return code.getVarnames().length + code.getCellVars().length; } - @CApiBuiltin(ret = PyCodeObjectRawPointer, args = {Int, Int, Int, Int, Int, Int, PyObjectRawPointer, PyObjectRawPointer, PyObjectRawPointer, PyObjectRawPointer, PyObjectRawPointer, - PyObjectRawPointer, PyObjectRawPointer, PyObjectRawPointer, PyObjectRawPointer, Int, PyObjectRawPointer, - PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {int.class, int.class, int.class, int.class, int.class, int.class, long.class, long.class, + @CApiBuiltin(ret = PyCodeObject, args = {Int, Int, Int, Int, Int, Int, PyObject, PyObject, PyObject, PyObject, PyObject, + PyObject, PyObject, PyObject, PyObject, Int, PyObject, + PyObject}, call = Direct, retConversion = long.class, argConversions = {int.class, int.class, int.class, int.class, int.class, int.class, long.class, long.class, long.class, long.class, long.class, long.class, long.class, long.class, long.class, int.class, long.class, long.class}) static long PyUnstable_Code_NewWithPosOnlyArgs(int argcount, int posonlyargcount, int kwonlyargcount, int nlocals, int stacksize, int flags, long codePtr, long constsPtr, long namesPtr, long varnamesPtr, long freevarsPtr, long cellvarsPtr, @@ -108,14 +108,14 @@ static long PyUnstable_Code_NewWithPosOnlyArgs(int argcount, int posonlyargcount return PythonToNativeInternalNode.executeNewRefUncached(CallNode.executeUncached(PythonBuiltinClassType.PCode, args)); } - @CApiBuiltin(ret = PyCodeObjectRawPointer, args = {ConstCharPtr, ConstCharPtr, Int}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class, int.class}) + @CApiBuiltin(ret = PyCodeObject, args = {ConstCharPtr, ConstCharPtr, Int}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class, int.class}) static long PyCode_NewEmpty(long filenamePtr, long funcnamePtr, int lineno) { TruffleString filename = (TruffleString) CharPtrToPythonNode.executeUncached(filenamePtr); TruffleString funcname = (TruffleString) CharPtrToPythonNode.executeUncached(funcnamePtr); return PythonToNativeInternalNode.executeNewRefUncached(createCodeNewEmpty(filename, funcname, lineno)); } - @CApiBuiltin(ret = Int, args = {PyCodeObjectRawPointer, Int}, call = Direct, retConversion = int.class, argConversions = {long.class, int.class}) + @CApiBuiltin(ret = Int, args = {PyCodeObject, Int}, call = Direct, retConversion = int.class, argConversions = {long.class, int.class}) static int PyCode_Addr2Line(long codePtr, int lasti) { PCode code = (PCode) NativeToPythonInternalNode.executeUncached(codePtr, false); if (lasti < 0) { @@ -124,13 +124,13 @@ static int PyCode_Addr2Line(long codePtr, int lasti) { return code.lastiToLine(lasti); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyCodeObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyObject, args = {PyCodeObject}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long GraalPyCode_GetName(long codePtr) { PCode code = (PCode) NativeToPythonInternalNode.executeUncached(codePtr, false); return PythonToNativeInternalNode.executeNewRefUncached(code.getName()); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyCodeObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyObject, args = {PyCodeObject}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long GraalPyCode_GetFileName(long codePtr) { PCode code = (PCode) NativeToPythonInternalNode.executeUncached(codePtr, false); return PythonToNativeInternalNode.executeNewRefUncached(code.getFilename()); diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCodecBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCodecBuiltins.java index de56f0478f..855b0809fa 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCodecBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCodecBuiltins.java @@ -41,7 +41,7 @@ package com.oracle.graal.python.builtins.modules.cext; import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import com.oracle.graal.python.builtins.modules.CodecsModuleBuiltins; @@ -54,14 +54,14 @@ public final class PythonCextCodecBuiltins { - @CApiBuiltin(ret = PyObjectRawPointer, args = {ConstCharPtr}, call = Direct, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyObject, args = {ConstCharPtr}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyCodec_Encoder(long encodingPtr) { TruffleString encoding = (TruffleString) CharPtrToPythonNode.executeUncached(encodingPtr); PTuple codecInfo = CodecsModuleBuiltins.PyCodecLookupNode.executeUncached(encoding); return PythonToNativeInternalNode.executeNewRefUncached(SequenceStorageNodes.GetItemScalarNode.executeUncached(codecInfo.getSequenceStorage(), 0)); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {ConstCharPtr}, call = Direct, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyObject, args = {ConstCharPtr}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyCodec_Decoder(long encodingPtr) { TruffleString encoding = (TruffleString) CharPtrToPythonNode.executeUncached(encodingPtr); PTuple codecInfo = CodecsModuleBuiltins.PyCodecLookupNode.executeUncached(encoding); diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextComplexBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextComplexBuiltins.java index 26f35524fe..51297b6bcb 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextComplexBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextComplexBuiltins.java @@ -42,7 +42,7 @@ import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; import static com.oracle.graal.python.builtins.objects.cext.structs.CStructAccess.writeDoubleField; @@ -63,7 +63,7 @@ public final class PythonCextComplexBuiltins { - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, Pointer}, call = Ignored, retConversion = int.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = Int, args = {PyObject, Pointer}, call = Ignored, retConversion = int.class, argConversions = {long.class, long.class}) static int GraalPyPrivate_Complex_AsCComplex(long objPtr, long out) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); double real, imag; @@ -87,7 +87,7 @@ static int GraalPyPrivate_Complex_AsCComplex(long objPtr, long out) { return 0; } - @CApiBuiltin(ret = ArgDescriptor.Double, args = {PyObjectRawPointer}, call = Ignored, retConversion = double.class, argConversions = {long.class}) + @CApiBuiltin(ret = ArgDescriptor.Double, args = {PyObject}, call = Ignored, retConversion = double.class, argConversions = {long.class}) static double GraalPyPrivate_Complex_RealAsDouble(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); if (PyComplexCheckNode.executeUncached(obj)) { @@ -101,7 +101,7 @@ static double GraalPyPrivate_Complex_RealAsDouble(long objPtr) { } } - @CApiBuiltin(ret = ArgDescriptor.Double, args = {PyObjectRawPointer}, call = Ignored, retConversion = double.class, argConversions = {long.class}) + @CApiBuiltin(ret = ArgDescriptor.Double, args = {PyObject}, call = Ignored, retConversion = double.class, argConversions = {long.class}) static double GraalPyPrivate_Complex_ImagAsDouble(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); if (PyComplexCheckNode.executeUncached(obj)) { @@ -115,7 +115,7 @@ static double GraalPyPrivate_Complex_ImagAsDouble(long objPtr) { return 0.0; } - @CApiBuiltin(ret = PyObjectRawPointer, args = {ArgDescriptor.Double, ArgDescriptor.Double}, call = Direct, retConversion = long.class, argConversions = {double.class, double.class}) + @CApiBuiltin(ret = PyObject, args = {ArgDescriptor.Double, ArgDescriptor.Double}, call = Direct, retConversion = long.class, argConversions = {double.class, double.class}) static long PyComplex_FromDoubles(double r, double i) { return PythonToNativeInternalNode.executeNewRefUncached(PFactory.createComplex(PythonLanguage.get(null), r, i)); } diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextContextBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextContextBuiltins.java index 5a7a22d672..a8613db102 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextContextBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextContextBuiltins.java @@ -43,8 +43,8 @@ import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; -import static com.oracle.graal.python.annotations.ArgDescriptor.VoidNoReturn; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; +import static com.oracle.graal.python.annotations.ArgDescriptor.Void; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; import static com.oracle.graal.python.runtime.exception.ExceptionUtils.printPythonLikeStackTrace; @@ -72,13 +72,13 @@ public final class PythonCextContextBuiltins { - @CApiBuiltin(ret = VoidNoReturn, args = {}, call = Ignored, retConversion = void.class, argConversions = {}) + @CApiBuiltin(ret = Void, args = {}, call = Ignored, retConversion = void.class, argConversions = {}) @TruffleBoundary static void GraalPyPrivate_PrintStacktrace() { printPythonLikeStackTrace(); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {ConstCharPtr, PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {ConstCharPtr, PyObject}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) static long PyContextVar_New(long namePtr, long defPtr) { if (namePtr == NULLPTR) { return NULLPTR; @@ -88,7 +88,7 @@ static long PyContextVar_New(long namePtr, long defPtr) { return PythonToNativeInternalNode.executeNewRefUncached(CallNode.executeUncached(PythonBuiltinClassType.ContextVar, name, def)); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer, Pointer}, call = Ignored, retConversion = long.class, argConversions = {long.class, long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject, Pointer}, call = Ignored, retConversion = long.class, argConversions = {long.class, long.class, long.class}) static long GraalPyPrivate_ContextVar_Get(long varPtr, long defPtr, long marker) { Object var = NativeToPythonInternalNode.executeUncached(varPtr, false); if (!(var instanceof PContextVar pvar)) { @@ -107,7 +107,7 @@ static long GraalPyPrivate_ContextVar_Get(long varPtr, long defPtr, long marker) return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class}) static long PyContextVar_Set(long varPtr, long valPtr) { Object var = NativeToPythonInternalNode.executeUncached(varPtr, false); Object val = NativeToPythonInternalNode.executeUncached(valPtr, false); @@ -122,7 +122,7 @@ static long PyContextVar_Set(long varPtr, long valPtr) { return PythonToNativeInternalNode.executeNewRefUncached(PFactory.createContextVarsToken(language, pvar, threadState.getContextVarsContext(null), oldValue)); } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class}) static int PyContextVar_Reset(long varPtr, long tokenPtr) { Object var = NativeToPythonInternalNode.executeUncached(varPtr, false); if (!(var instanceof PContextVar pvar)) { @@ -138,23 +138,23 @@ static int PyContextVar_Reset(long varPtr, long tokenPtr) { return 0; } - @CApiBuiltin(ret = PyObjectRawPointer, call = Direct, retConversion = long.class, argConversions = {}) + @CApiBuiltin(ret = PyObject, call = Direct, retConversion = long.class, argConversions = {}) static long PyContext_CopyCurrent() { return PythonToNativeInternalNode.executeNewRefUncached(PyContextCopyCurrent.executeUncached()); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Direct, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = long.class, argConversions = {long.class}) static long PyContext_Copy(long contextPtr) { PContextVarsContext context = (PContextVarsContext) NativeToPythonInternalNode.executeUncached(contextPtr, false); return PythonToNativeInternalNode.executeNewRefUncached(PFactory.copyContextVarsContext(PythonLanguage.get(null), context)); } - @CApiBuiltin(ret = PyObjectRawPointer, call = Direct, retConversion = long.class, argConversions = {}) + @CApiBuiltin(ret = PyObject, call = Direct, retConversion = long.class, argConversions = {}) static long PyContext_New() { return PythonToNativeInternalNode.executeNewRefUncached(PFactory.createContextVarsContext(PythonLanguage.get(null))); } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer}, call = Direct, retConversion = int.class, argConversions = {long.class}) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct, retConversion = int.class, argConversions = {long.class}) static int PyContext_Enter(long contextPtr) { PContextVarsContext context = (PContextVarsContext) NativeToPythonInternalNode.executeUncached(contextPtr, false); PythonContext pythonContext = PythonContext.get(null); @@ -163,7 +163,7 @@ static int PyContext_Enter(long contextPtr) { return 0; } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer}, call = Direct, retConversion = int.class, argConversions = {long.class}) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Direct, retConversion = int.class, argConversions = {long.class}) static int PyContext_Exit(long contextPtr) { PContextVarsContext context = (PContextVarsContext) NativeToPythonInternalNode.executeUncached(contextPtr, false); PythonContext pythonContext = PythonContext.get(null); diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDateTimeBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDateTimeBuiltins.java index 6f664574ef..5ccdd4168d 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDateTimeBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDateTimeBuiltins.java @@ -42,8 +42,6 @@ import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectBorrowed; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObject; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; @@ -82,7 +80,7 @@ */ public final class PythonCextDateTimeBuiltins { - @CApiBuiltin(ret = PyObjectTransfer, args = {Int, Int, Int, PyTypeObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {int.class, int.class, int.class, + @CApiBuiltin(ret = PyObject, args = {Int, Int, Int, PyTypeObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {int.class, int.class, int.class, NativeToPythonClassNode.class}) abstract static class GraalPyPrivate_DateTimeCAPI_Date_FromDate extends CApiQuaternaryBuiltinNode { @Specialization @@ -92,7 +90,7 @@ static Object values(int year, int month, int day, Object type, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {Int, Int, Int, Int, Int, Int, Int, PyObject, PyTypeObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { + @CApiBuiltin(ret = PyObject, args = {Int, Int, Int, Int, Int, Int, Int, PyObject, PyTypeObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { int.class, int.class, int.class, int.class, int.class, int.class, int.class, NativeToPythonNode.class, NativeToPythonClassNode.class}) abstract static class GraalPyPrivate_DateTimeCAPI_DateTime_FromDateAndTime extends CApi9BuiltinNode { @Specialization @@ -102,7 +100,7 @@ static Object values(int year, int month, int day, int hour, int minute, int sec } } - @CApiBuiltin(ret = PyObjectTransfer, args = {Int, Int, Int, Int, PyObject, PyTypeObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {int.class, int.class, + @CApiBuiltin(ret = PyObject, args = {Int, Int, Int, Int, PyObject, PyTypeObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {int.class, int.class, int.class, int.class, NativeToPythonNode.class, NativeToPythonClassNode.class}) abstract static class GraalPyPrivate_DateTimeCAPI_Time_FromTime extends CApi6BuiltinNode { @Specialization @@ -112,7 +110,7 @@ static Object values(int hour, int minute, int second, int usecond, Object tzinf } } - @CApiBuiltin(ret = PyObjectTransfer, args = {Int, Int, Int, Int, PyTypeObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {int.class, int.class, int.class, + @CApiBuiltin(ret = PyObject, args = {Int, Int, Int, Int, PyTypeObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {int.class, int.class, int.class, int.class, NativeToPythonClassNode.class}) abstract static class GraalPyPrivate_DateTimeCAPI_Delta_FromDelta extends CApi5BuiltinNode { @Specialization @@ -123,7 +121,7 @@ static Object values(int days, int seconds, int useconds, @SuppressWarnings("unu } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class GraalPyPrivate_DateTimeCAPI_TimeZone_FromTimeZone extends CApiBinaryBuiltinNode { @Specialization @@ -133,7 +131,7 @@ Object values(Object offset, Object name, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject, PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject, PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class GraalPyPrivate_DateTimeCAPI_DateTime_FromTimestamp extends CApiTernaryBuiltinNode { @Specialization @@ -150,7 +148,7 @@ static Object values(Object type, Object args, Object kwargs, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class GraalPyPrivate_DateTimeCAPI_Date_FromTimestamp extends CApiBinaryBuiltinNode { @Specialization @@ -165,7 +163,7 @@ static Object values(Object type, Object args, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {Int, Int, Int, Int, Int, Int, Int, PyObject, Int, PyTypeObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { + @CApiBuiltin(ret = PyObject, args = {Int, Int, Int, Int, Int, Int, Int, PyObject, Int, PyTypeObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { int.class, int.class, int.class, int.class, int.class, int.class, int.class, NativeToPythonNode.class, int.class, NativeToPythonClassNode.class}) abstract static class GraalPyPrivate_DateTimeCAPI_DateTime_FromDateAndTimeAndFold extends CApi10BuiltinNode { @Specialization @@ -175,7 +173,7 @@ static Object values(int year, int month, int day, int hour, int minute, int sec } } - @CApiBuiltin(ret = PyObjectTransfer, args = {Int, Int, Int, Int, PyObject, Int, PyTypeObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {int.class, + @CApiBuiltin(ret = PyObject, args = {Int, Int, Int, Int, PyObject, Int, PyTypeObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {int.class, int.class, int.class, int.class, NativeToPythonNode.class, int.class, NativeToPythonClassNode.class}) abstract static class GraalPyPrivate_DateTimeCAPI_Time_FromTimeAndFold extends CApi7BuiltinNode { @Specialization @@ -273,7 +271,7 @@ static Object get(Object obj, } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyDateTime_DATE_GET_TZINFO extends CApiUnaryBuiltinNode { @Specialization static Object get(Object obj, @@ -338,7 +336,7 @@ static Object get(Object obj, } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyDateTime_TIME_GET_TZINFO extends CApiUnaryBuiltinNode { @Specialization static Object get(Object obj, diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDescrBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDescrBuiltins.java index 1476ca781c..49c057651c 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDescrBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDescrBuiltins.java @@ -40,11 +40,10 @@ */ package com.oracle.graal.python.builtins.modules.cext; -import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObject; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; @@ -78,7 +77,7 @@ public final class PythonCextDescrBuiltins { - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyDictProxy_New extends CApiUnaryBuiltinNode { @Specialization static Object values(Object obj, @@ -87,7 +86,7 @@ static Object values(Object obj, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, PyTypeObject, Pointer, Pointer, ConstCharPtrAsTruffleString, + @CApiBuiltin(ret = PyObject, args = {ConstCharPtr, PyTypeObject, Pointer, Pointer, ConstCharPtr, Pointer}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonNode.class, NativeToPythonClassNode.class, long.class, long.class, CharPtrToPythonNode.class, long.class}) abstract static class GraalPyPrivate_Descr_NewGetSet extends CApi6BuiltinNode { @@ -99,7 +98,7 @@ static Object doNativeCallable(TruffleString name, Object cls, long getter, long } /** Implementation of {@code PyDescr_NewClassMethod}. */ - @CApiBuiltin(ret = PyObjectTransfer, args = {Pointer, ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString, Int, Pointer, + @CApiBuiltin(ret = PyObject, args = {Pointer, ConstCharPtr, ConstCharPtr, Int, Pointer, PyTypeObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, CharPtrToPythonNode.class, CharPtrToPythonNode.class, int.class, long.class, NativeToPythonClassNode.class}) public static long GraalPyPrivate_Descr_NewClassMethod(long methodDefPtr, long nameRaw, long docRaw, int flags, long methPtr, long typeRaw) { diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDictBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDictBuiltins.java index 7df76a60c2..db20b45a2c 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDictBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDictBuiltins.java @@ -41,16 +41,12 @@ package com.oracle.graal.python.builtins.modules.cext; import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; -import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleStringStrict; import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.PY_HASH_T_PTR; import static com.oracle.graal.python.annotations.ArgDescriptor.PY_SSIZE_T_PTR; import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectBorrowed; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectPtr; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.annotations.ArgDescriptor.Py_hash_t; import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.annotations.ArgDescriptor.Void; @@ -165,7 +161,7 @@ static long GraalPyDict_GET_SIZE(long dictPtr) { return HashingStorageLen.executeUncached(dict.getDictStorage()); } - @CApiBuiltin(ret = PyObjectTransfer, args = {}, call = Direct, acquireGil = false, retConversion = PythonToNativeNewRefNode.class, argConversions = {}) + @CApiBuiltin(ret = PyObject, args = {}, call = Direct, acquireGil = false, retConversion = PythonToNativeNewRefNode.class, argConversions = {}) static long PyDict_New() { CApiTiming.enter(); try { @@ -177,7 +173,7 @@ static long PyDict_New() { } } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, PyObjectRawPointer, PyObjectPtr}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class, long.class}) + @CApiBuiltin(ret = Int, args = {PyObject, PyObject, PyObjectPtr}, call = Direct, retConversion = int.class, argConversions = {long.class, long.class, long.class}) static int PyDict_Pop(long dictPtr, long keyPtr, long resultPtr) { long result = NULLPTR; try { @@ -323,7 +319,7 @@ static int run(Object dict, Object posPtr, Object keyPtr, Object valuePtr, Objec } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class _PyDict_Pop extends CApiTernaryBuiltinNode { @Specialization @@ -338,7 +334,7 @@ public Object fallback(Object dict, @SuppressWarnings("unused") Object key, @Sup } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyDict_Copy extends CApiUnaryBuiltinNode { @Specialization static Object copy(PDict dict, @@ -392,7 +388,7 @@ static Object doOther(Node inliningTarget, @SuppressWarnings("unused") Object ob } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject, PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) public abstract static class PyDict_GetItem extends CApiBinaryBuiltinNode { @Specialization @@ -436,7 +432,7 @@ static Object doOther(Node inliningTarget, @SuppressWarnings("unused") Object ob } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject, PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class PyDict_GetItemWithError extends CApiBinaryBuiltinNode { @Specialization static Object doGeneric(Object dict, Object key, @@ -565,7 +561,7 @@ int fallback(Object dict, @SuppressWarnings("unused") Object key, Object resultP } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject, ConstCharPtrAsTruffleStringStrict}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, ConstCharPtr}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class, CharPtrToPythonStrictNode.class}) abstract static class _PyDict_GetItemStringWithError extends CApiBinaryBuiltinNode { @Specialization @@ -576,7 +572,7 @@ static Object doGeneric(Object dict, Object key, } } - @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtrAsTruffleStringStrict, PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtr, PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, CharPtrToPythonStrictNode.class, NativeToPythonNode.class}) @ImportStatic(PGuards.class) abstract static class PyDict_SetItemString extends CApiTernaryBuiltinNode { @@ -644,7 +640,7 @@ int fallback(Object dict, Object key, Object value, Object givenHash) { } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject, PyObject, PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject, PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class PyDict_SetDefault extends CApiTernaryBuiltinNode { @Specialization @@ -712,7 +708,7 @@ int fallback(Object dict, @SuppressWarnings("unused") Object key, @SuppressWarni } } - @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtrAsTruffleStringStrict}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtr}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, CharPtrToPythonStrictNode.class}) @ImportStatic(PGuards.class) abstract static class PyDict_DelItemString extends CApiBinaryBuiltinNode { @@ -766,7 +762,7 @@ public int fallback(Object dict, @SuppressWarnings("unused") Object other) { } @CApiBuiltin(ret = Int, args = {PyObject, PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) - @CApiBuiltin(name = "PyDict_ContainsString", ret = Int, args = {PyObject, ConstCharPtrAsTruffleStringStrict}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(name = "PyDict_ContainsString", ret = Int, args = {PyObject, ConstCharPtr}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, CharPtrToPythonStrictNode.class}) abstract static class PyDict_Contains extends CApiBinaryBuiltinNode { @Specialization @@ -796,7 +792,7 @@ public Object fallback(Object dict) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyDict_Keys extends CApiUnaryBuiltinNode { @Specialization static Object keys(PDict dict, @@ -811,7 +807,7 @@ Object fallback(Object dict) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyDict_Values extends CApiUnaryBuiltinNode { @Specialization static Object values(PDict dict, @@ -826,7 +822,7 @@ Object fallback(Object dict) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyDict_Items extends CApiUnaryBuiltinNode { @Specialization static Object items(PDict dict, diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextErrBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextErrBuiltins.java index 1ffd534df4..4f9e199271 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextErrBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextErrBuiltins.java @@ -40,10 +40,9 @@ */ package com.oracle.graal.python.builtins.modules.cext; -import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.annotations.ArgDescriptor.PyThreadState; import static com.oracle.graal.python.annotations.ArgDescriptor.Void; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.SystemError; @@ -226,7 +225,7 @@ protected static boolean isExceptionClass(Node inliningTarget, Object obj, IsTyp } } - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { + @CApiBuiltin(ret = PyObject, args = {ConstCharPtr, PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { CharPtrToPythonNode.class, NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class PyErr_NewException extends CApiTernaryBuiltinNode { @@ -273,7 +272,7 @@ static Object newEx(TruffleString name, Object base, Object dict, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString, PyObject, + @CApiBuiltin(ret = PyObject, args = {ConstCharPtr, ConstCharPtr, PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonNode.class, CharPtrToPythonNode.class, NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class PyErr_NewExceptionWithDoc extends CApiQuaternaryBuiltinNode { @@ -297,7 +296,7 @@ static Object raise(TruffleString name, Object doc, Object base, Object dict, } } - @CApiBuiltin(ret = PyObjectTransfer, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {}) + @CApiBuiltin(ret = PyObject, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {}) abstract static class GraalPyPrivate_Err_GetExcInfo extends CApiNullaryBuiltinNode { @Specialization Object info( @@ -320,7 +319,7 @@ Object info( } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyThreadState}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyObject, args = {PyThreadState}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class}) abstract static class _PyErr_GetHandledException extends CApiUnaryBuiltinNode { @Specialization @@ -337,7 +336,7 @@ static Object get(@SuppressWarnings("unused") long threadState, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class _Py_CalculateSuggestions extends CApiBinaryBuiltinNode { @@ -348,7 +347,7 @@ static Object calculate(@SuppressWarnings("unused") Object dir, @SuppressWarning } } - @CApiBuiltin(ret = Void, args = {ConstCharPtrAsTruffleString, PyObject}, call = Ignored, retConversion = void.class, argConversions = {CharPtrToPythonNode.class, NativeToPythonNode.class}) + @CApiBuiltin(ret = Void, args = {ConstCharPtr, PyObject}, call = Ignored, retConversion = void.class, argConversions = {CharPtrToPythonNode.class, NativeToPythonNode.class}) abstract static class GraalPyPrivate_WriteUnraisable extends CApiBinaryBuiltinNode { @Specialization static Object write(Object msg, Object obj, @@ -492,7 +491,7 @@ Object setCause(Object exc, Object cause, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyException_GetCause extends CApiUnaryBuiltinNode { @Specialization Object getCause(Object exc, @@ -502,7 +501,7 @@ Object getCause(Object exc, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyException_GetContext extends CApiUnaryBuiltinNode { @Specialization Object setCause(Object exc, @@ -523,7 +522,7 @@ Object setContext(Object exc, Object context, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyException_GetTraceback extends CApiUnaryBuiltinNode { @Specialization @@ -546,7 +545,7 @@ Object setTraceback(Object exc, Object traceback, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyException_GetArgs extends CApiUnaryBuiltinNode { @Specialization diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFloatBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFloatBuiltins.java index 369e2c9c7f..60e1ac22e6 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFloatBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFloatBuiltins.java @@ -41,7 +41,6 @@ package com.oracle.graal.python.builtins.modules.cext; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; @@ -59,7 +58,7 @@ public final class PythonCextFloatBuiltins { - @CApiBuiltin(ret = PyObjectTransfer, args = {ArgDescriptor.Double}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {double.class}) + @CApiBuiltin(ret = PyObject, args = {ArgDescriptor.Double}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {double.class}) abstract static class GraalPyPrivate_Float_FromDouble extends CApiUnaryBuiltinNode { @Specialization static double fromDouble(double d) { @@ -77,7 +76,7 @@ static double doGenericErr(Object object, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyFloat_FromString extends CApiUnaryBuiltinNode { @Specialization diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFrameBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFrameBuiltins.java index 1e830026da..85198bb020 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFrameBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFrameBuiltins.java @@ -41,10 +41,9 @@ package com.oracle.graal.python.builtins.modules.cext; import static com.oracle.graal.python.annotations.ArgDescriptor.Int; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyCodeObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyCodeObject; import static com.oracle.graal.python.annotations.ArgDescriptor.PyFrameObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyFrameObjectTransfer; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.runtime.PythonContext.NATIVE_NULL; @@ -67,7 +66,7 @@ import com.oracle.truffle.api.nodes.Node; public final class PythonCextFrameBuiltins { - @CApiBuiltin(ret = PyCodeObjectTransfer, args = {PyFrameObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyCodeObject, args = {PyFrameObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyFrame_GetCode extends CApiUnaryBuiltinNode { @Specialization static Object get(PFrame frame, @@ -94,7 +93,7 @@ static Object get(PFrame frame, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyFrameObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyFrameObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyFrame_GetLocals extends CApiUnaryBuiltinNode { @Specialization static Object get(PFrame frame, @@ -108,7 +107,7 @@ static Object get(PFrame frame, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyFrameObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyFrameObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyFrame_GetGlobals extends CApiUnaryBuiltinNode { @Specialization static Object get(PFrame frame, @@ -117,7 +116,7 @@ static Object get(PFrame frame, } } - @CApiBuiltin(ret = PyFrameObjectTransfer, args = {PyFrameObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyFrameObject, args = {PyFrameObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyFrame_GetBack extends CApiUnaryBuiltinNode { @Specialization Object get(PFrame frame, @@ -130,7 +129,7 @@ Object get(PFrame frame, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyFrameObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyFrameObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyFrame_GetBuiltins extends CApiUnaryBuiltinNode { @Specialization static Object get(PFrame frame, diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFuncBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFuncBuiltins.java index dfac3ac3e7..b34c65b828 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFuncBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFuncBuiltins.java @@ -40,11 +40,9 @@ */ package com.oracle.graal.python.builtins.modules.cext; -import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectBorrowed; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.SystemError; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; @@ -114,7 +112,7 @@ private static void checkCell(long cellPtr) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) static long PyCell_Get(long cellPtr) { checkCell(cellPtr); Object ref = getPromotedCellRef(cellPtr); @@ -128,13 +126,13 @@ static int PyCell_Set(long cellPtr, long valuePtr) { return 0; } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long GraalPyCell_GET(long cellPtr) { Object ref = getPromotedCellRef(cellPtr); return ref == null ? NULLPTR : ToNativeBorrowedNode.executeUncached(ref); } - @CApiBuiltin(ret = ArgDescriptor.Void, args = {PyObject, PyObjectTransfer}, call = Direct, retConversion = void.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = ArgDescriptor.Void, args = {PyObject, PyObject}, call = Direct, retConversion = void.class, argConversions = {NativeToPythonNode.class, NativeToPythonTransferNode.class}) static void GraalPyCell_SET(long cellPtr, long valuePtr) { getCell(cellPtr).setRef(valuePtr == NULLPTR ? null : NativeToPythonInternalNode.executeUncached(valuePtr, true)); @@ -147,62 +145,62 @@ private static void checkFunction(long functionPtr) { } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long PyFunction_GetCode(long functionPtr) { checkFunction(functionPtr); return GraalPyFunction_GET_CODE(functionPtr); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long PyFunction_GetGlobals(long functionPtr) { checkFunction(functionPtr); return GraalPyFunction_GET_GLOBALS(functionPtr); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long PyFunction_GetModule(long functionPtr) { checkFunction(functionPtr); return GraalPyFunction_GET_MODULE(functionPtr); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long PyFunction_GetDefaults(long functionPtr) { checkFunction(functionPtr); return GraalPyFunction_GET_DEFAULTS(functionPtr); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long PyFunction_GetKwDefaults(long functionPtr) { checkFunction(functionPtr); return GraalPyFunction_GET_KW_DEFAULTS(functionPtr); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long PyFunction_GetClosure(long functionPtr) { checkFunction(functionPtr); return GraalPyFunction_GET_CLOSURE(functionPtr); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long PyFunction_GetAnnotations(long functionPtr) { checkFunction(functionPtr); return GraalPyFunction_GET_ANNOTATIONS(functionPtr); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long GraalPyFunction_GET_CODE(long functionPtr) { PFunction function = (PFunction) NativeToPythonInternalNode.executeUncached(functionPtr, false); return ToNativeBorrowedNode.executeUncached(function.getCode()); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long GraalPyFunction_GET_GLOBALS(long functionPtr) { PFunction function = (PFunction) NativeToPythonInternalNode.executeUncached(functionPtr, false); Object globals = function.getGlobals(); return ToNativeBorrowedNode.executeUncached(globals instanceof PythonModule ? GetOrCreateDictNode.executeUncached(globals) : globals); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long GraalPyFunction_GET_MODULE(long functionPtr) { PFunction function = (PFunction) NativeToPythonInternalNode.executeUncached(functionPtr, false); Object module = ReadAttributeFromObjectNode.getUncached().execute(function, T___MODULE__); @@ -227,35 +225,35 @@ static long GraalPyFunction_GET_MODULE(long functionPtr) { return ToNativeBorrowedNode.executeUncached(promotedModule); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long GraalPyFunction_GET_DEFAULTS(long functionPtr) { PFunction function = (PFunction) NativeToPythonInternalNode.executeUncached(functionPtr, false); Object[] defaults = function.getDefaults(); return defaults.length == 0 ? NULLPTR : ToNativeBorrowedNode.executeUncached(PFactory.createTuple(PythonLanguage.get(null), defaults)); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long GraalPyFunction_GET_KW_DEFAULTS(long functionPtr) { PFunction function = (PFunction) NativeToPythonInternalNode.executeUncached(functionPtr, false); Object defaults = function.getKwDefaultsDict(PythonLanguage.get(null)); return defaults == PNone.NONE ? NULLPTR : ToNativeBorrowedNode.executeUncached(defaults); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long GraalPyFunction_GET_CLOSURE(long functionPtr) { PFunction function = (PFunction) NativeToPythonInternalNode.executeUncached(functionPtr, false); PCell[] closure = function.getClosure(); return closure == null ? NULLPTR : ToNativeBorrowedNode.executeUncached(PFactory.createTuple(PythonLanguage.get(null), closure)); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) static long GraalPyFunction_GET_ANNOTATIONS(long functionPtr) { PFunction function = (PFunction) NativeToPythonInternalNode.executeUncached(functionPtr, false); Object annotations = ReadAttributeFromObjectNode.getUncached().execute(function, T___ANNOTATIONS__); return annotations != PNone.NO_VALUE ? ToNativeBorrowedNode.executeUncached(annotations) : NULLPTR; } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyStaticMethod_New extends CApiUnaryBuiltinNode { @Specialization static Object staticmethod(Object func, @@ -266,7 +264,7 @@ static Object staticmethod(Object func, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyClassMethod_New extends CApiUnaryBuiltinNode { @Specialization static Object staticmethod(Object callable, @@ -275,7 +273,7 @@ static Object staticmethod(Object callable, } } - @CApiBuiltin(ret = ArgDescriptor.Void, args = {PyObject, ConstCharPtrAsTruffleString}, call = Ignored, retConversion = void.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = ArgDescriptor.Void, args = {PyObject, ConstCharPtr}, call = Ignored, retConversion = void.class, argConversions = {NativeToPythonNode.class, CharPtrToPythonNode.class}) abstract static class GraalPyPrivate_CFunction_SetDoc extends CApiBinaryBuiltinNode { @Specialization diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextGenericAliasBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextGenericAliasBuiltins.java index 6ab3520b27..6c6ea8866a 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextGenericAliasBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextGenericAliasBuiltins.java @@ -41,7 +41,6 @@ package com.oracle.graal.python.builtins.modules.cext; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import com.oracle.graal.python.PythonLanguage; @@ -62,7 +61,7 @@ public final class PythonCextGenericAliasBuiltins { private PythonCextGenericAliasBuiltins() { } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class Py_GenericAlias extends CApiBinaryBuiltinNode { @Specialization diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextImportBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextImportBuiltins.java index 8387061087..d73463ec17 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextImportBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextImportBuiltins.java @@ -40,12 +40,9 @@ */ package com.oracle.graal.python.builtins.modules.cext; -import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleStringStrict; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectAsTruffleString; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectBorrowed; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.lib.PyImportImport.T_FROMLIST; import static com.oracle.graal.python.lib.PyImportImport.T_LEVEL; @@ -90,11 +87,11 @@ public final class PythonCextImportBuiltins { - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleStringStrict}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonStrictNode.class}) - @CApiBuiltin(name = "PyImport_Import", ret = PyObjectTransfer, args = {PyObjectAsTruffleString}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { + @CApiBuiltin(ret = PyObject, args = {ConstCharPtr}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonStrictNode.class}) + @CApiBuiltin(name = "PyImport_Import", ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { ToPythonStringNode.class}) - @CApiBuiltin(name = "PyImport_ImportModuleNoBlock", ret = PyObjectTransfer, args = { - ConstCharPtrAsTruffleStringStrict}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonStrictNode.class}) + @CApiBuiltin(name = "PyImport_ImportModuleNoBlock", ret = PyObject, args = { + ConstCharPtr}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonStrictNode.class}) abstract static class PyImport_ImportModule extends CApiUnaryBuiltinNode { @Specialization static Object imp(TruffleString name) { @@ -102,7 +99,7 @@ static Object imp(TruffleString name) { } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {}) + @CApiBuiltin(ret = PyObject, args = {}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {}) abstract static class PyImport_GetModuleDict extends CApiNullaryBuiltinNode { @Specialization Object getModuleDict() { @@ -110,7 +107,7 @@ Object getModuleDict() { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleStringStrict}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonStrictNode.class}) + @CApiBuiltin(ret = PyObject, args = {ConstCharPtr}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonStrictNode.class}) abstract static class PyImport_AddModuleRef extends CApiUnaryBuiltinNode { @Specialization static Object addModule(TruffleString name, @@ -129,7 +126,7 @@ static Object addModule(TruffleString name, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObjectAsTruffleString, PyObject, PyObject, PyObject, Int}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject, PyObject, PyObject, Int}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { ToPythonStringNode.class, NativeToPythonNode.class, NativeToPythonNode.class, NativeToPythonNode.class, int.class}) abstract static class PyImport_ImportModuleLevelObject extends CApi5BuiltinNode { @Specialization @@ -147,7 +144,7 @@ Object importModuleLevelObject(TruffleString name, Object globals, Object locals } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyImport_GetModule extends CApiUnaryBuiltinNode { private static final TruffleString T__LOCK_UNLOCK_MODULE = tsLiteral("_lock_unlock_module"); diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextIterBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextIterBuiltins.java index 6b98581c87..48ffe421ee 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextIterBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextIterBuiltins.java @@ -41,7 +41,6 @@ package com.oracle.graal.python.builtins.modules.cext; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import com.oracle.graal.python.PythonLanguage; @@ -59,7 +58,7 @@ public final class PythonCextIterBuiltins { - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PySeqIter_New extends CApiUnaryBuiltinNode { @Specialization static PSequenceIterator call(Object seq, @@ -68,7 +67,7 @@ static PSequenceIterator call(Object seq, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class PyCallIter_New extends CApiBinaryBuiltinNode { @Specialization diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextListBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextListBuiltins.java index 0e1549204b..ca7c3c7a63 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextListBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextListBuiltins.java @@ -45,8 +45,6 @@ import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; import static com.oracle.graal.python.annotations.ArgDescriptor.PyListObject; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectBorrowed; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.IndexError; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.MemoryError; @@ -105,7 +103,7 @@ public final class PythonCextListBuiltins { private static final CApiTiming TIMING_PYLIST_NEW = CApiTiming.create(false, "PyList_New"); - @CApiBuiltin(ret = PyObjectTransfer, args = {Py_ssize_t}, call = Direct, acquireGil = false, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyObject, args = {Py_ssize_t}, call = Direct, acquireGil = false, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class}) static long PyList_New(long size) { CApiTiming.enter(); try { @@ -131,7 +129,7 @@ static long PyList_New(long size) { } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject, Py_ssize_t}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, Py_ssize_t}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class, long.class}) abstract static class PyList_GetItem extends CApiBinaryBuiltinNode { @Specialization @@ -167,7 +165,7 @@ Object fallback(Object list, @SuppressWarnings("unused") Object pos) { private static final CApiTiming TIMING_PYLIST_GETITEMREF = CApiTiming.create(false, "PyList_GetItemRef"); - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Py_ssize_t}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, Py_ssize_t}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, long.class}) static long PyList_GetItemRef(long opPtr, long key) { CApiTiming.enter(); try { @@ -212,7 +210,7 @@ static int PyList_Append(long opPtr, long itemPtr) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyList_AsTuple extends CApiUnaryBuiltinNode { @Specialization @@ -227,7 +225,7 @@ Object fallback(Object list) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Py_ssize_t, Py_ssize_t}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, Py_ssize_t, Py_ssize_t}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, long.class, long.class}) abstract static class PyList_GetSlice extends CApiTernaryBuiltinNode { @Specialization @@ -279,7 +277,7 @@ int fallback(Object list, @SuppressWarnings("unused") Object iterable) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyListObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyListObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class _PyList_Extend extends CApiBinaryBuiltinNode { diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextLongBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextLongBuiltins.java index 664c5c9b16..db63c89d0e 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextLongBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextLongBuiltins.java @@ -42,14 +42,12 @@ import static com.oracle.graal.python.annotations.ArgDescriptor.CONST_UNSIGNED_CHAR_PTR; import static com.oracle.graal.python.annotations.ArgDescriptor.CONST_VOID_PTR; -import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.LONG_LONG; import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; import static com.oracle.graal.python.annotations.ArgDescriptor.PyLongObject; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.annotations.ArgDescriptor.SIZE_T; import static com.oracle.graal.python.annotations.ArgDescriptor.UNSIGNED_CHAR_PTR; @@ -115,7 +113,7 @@ public final class PythonCextLongBuiltins { private static final CApiTiming TIMING_PYLONG_GETINFO = CApiTiming.create(false, "PyLong_GetInfo"); - @CApiBuiltin(ret = PyObjectTransfer, args = {}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {}) + @CApiBuiltin(ret = PyObject, args = {}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {}) static long PyLong_GetInfo() { CApiTiming.enter(); try { @@ -139,7 +137,7 @@ static long getDC(Object n, private static final CApiTiming TIMING_GRAALPYPRIVATE_LONG_FROMDOUBLE = CApiTiming.create(false, "GraalPyPrivate_Long_FromDouble"); - @CApiBuiltin(ret = PyObjectRawPointer, args = {ArgDescriptor.Double}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {double.class}) + @CApiBuiltin(ret = PyObject, args = {ArgDescriptor.Double}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {double.class}) static long GraalPyPrivate_Long_FromDouble(double d) { CApiTiming.enter(); try { @@ -150,7 +148,7 @@ static long GraalPyPrivate_Long_FromDouble(double d) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {ConstCharPtr, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonNode.class, int.class}) abstract static class GraalPyPrivate_Long_FromString extends CApiBinaryBuiltinNode { @@ -302,7 +300,7 @@ private static PException raiseNegativeValue(Node inliningTarget) { private static final CApiTiming TIMING_GRAALPYPRIVATE_LONG_FROMLONGLONG = CApiTiming.create(false, "GraalPyPrivate_Long_FromLongLong"); - @CApiBuiltin(ret = PyObjectTransfer, args = {LONG_LONG}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyObject, args = {LONG_LONG}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class}) static long GraalPyPrivate_Long_FromLongLong(long n) { CApiTiming.enter(); try { @@ -314,7 +312,7 @@ static long GraalPyPrivate_Long_FromLongLong(long n) { private static final CApiTiming TIMING_GRAALPYPRIVATE_LONG_FROMUNSIGNEDLONGLONG = CApiTiming.create(false, "GraalPyPrivate_Long_FromUnsignedLongLong"); - @CApiBuiltin(ret = PyObjectRawPointer, args = {UNSIGNED_LONG_LONG}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyObject, args = {UNSIGNED_LONG_LONG}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_Long_FromUnsignedLongLong(long n) { CApiTiming.enter(); try { @@ -327,7 +325,7 @@ static long GraalPyPrivate_Long_FromUnsignedLongLong(long n) { private static final CApiTiming TIMING_GRAALPYPRIVATE_LONG_NUMBITS = CApiTiming.create(false, "GraalPyPrivate_Long_NumBits"); - @CApiBuiltin(ret = SIZE_T, args = {PyObjectRawPointer}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = SIZE_T, args = {PyObject}, call = Ignored, acquireGil = false, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_Long_NumBits(long objPtr) { CApiTiming.enter(); try { @@ -459,7 +457,7 @@ static Object get(PInt value, long bytes, long n, int littleEndian, int isSigned } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Int}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, int.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, Int}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, int.class}) abstract static class PyLong_FromUnicodeObject extends CApiBinaryBuiltinNode { @Specialization static Object convert(Object s, int base, @@ -469,7 +467,7 @@ static Object convert(Object s, int base, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {CONST_UNSIGNED_CHAR_PTR, SIZE_T, Int, Int}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, long.class, + @CApiBuiltin(ret = PyObject, args = {CONST_UNSIGNED_CHAR_PTR, SIZE_T, Int, Int}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, long.class, int.class, int.class}) abstract static class _PyLong_FromByteArray extends CApiQuaternaryBuiltinNode { @Specialization @@ -494,7 +492,7 @@ static Object convert(long charPtr, long size, int littleEndian, int signed, private static final CApiTiming TIMING_PYLONG_ASNATIVEBYTES = CApiTiming.create(false, "PyLong_AsNativeBytes"); - @CApiBuiltin(ret = Py_ssize_t, args = {PyObjectRawPointer, Pointer, Py_ssize_t, Int}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class, long.class, int.class}) + @CApiBuiltin(ret = Py_ssize_t, args = {PyObject, Pointer, Py_ssize_t, Int}, call = Direct, retConversion = long.class, argConversions = {long.class, long.class, long.class, int.class}) static long PyLong_AsNativeBytes(long objectPtr, long buffer, long size, int flags) { CApiTiming.enter(); try { @@ -578,7 +576,7 @@ private static long requiredNativeBytesSize(BigInteger value, long size, int fla private static final CApiTiming TIMING_PYLONG_FROMNATIVEBYTES = CApiTiming.create(false, "PyLong_FromNativeBytes"); - @CApiBuiltin(ret = PyObjectTransfer, args = {CONST_VOID_PTR, SIZE_T, Int}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, long.class, int.class}) + @CApiBuiltin(ret = PyObject, args = {CONST_VOID_PTR, SIZE_T, Int}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, long.class, int.class}) static long PyLong_FromNativeBytes(long buffer, long size, int flags) { CApiTiming.enter(); try { @@ -600,7 +598,7 @@ static long PyLong_FromNativeBytes(long buffer, long size, int flags) { private static final CApiTiming TIMING_PYLONG_FROMUNSIGNEDNATIVEBYTES = CApiTiming.create(false, "PyLong_FromUnsignedNativeBytes"); - @CApiBuiltin(ret = PyObjectTransfer, args = {CONST_VOID_PTR, SIZE_T, Int}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, long.class, int.class}) + @CApiBuiltin(ret = PyObject, args = {CONST_VOID_PTR, SIZE_T, Int}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, long.class, int.class}) static long PyLong_FromUnsignedNativeBytes(long buffer, long size, int flags) { CApiTiming.enter(); try { diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMemoryViewBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMemoryViewBuiltins.java index b14e2b5914..6326c757d4 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMemoryViewBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMemoryViewBuiltins.java @@ -43,7 +43,6 @@ import static com.oracle.graal.python.annotations.ArgDescriptor.CHAR; import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.BufferError; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.nodes.ErrorMessages.UNDERLYING_BUFFER_IS_NOT_WRITABLE; @@ -75,7 +74,7 @@ public final class PythonCextMemoryViewBuiltins { public static final int PY_BUF_READ = 0x100; public static final int PY_BUF_WRITE = 0x200; - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Int, CHAR}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, int.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, Int, CHAR}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, int.class, byte.class}) abstract static class PyMemoryView_GetContiguous extends CApiTernaryBuiltinNode { @Specialization() @@ -124,7 +123,7 @@ static Object get(Object obj, int buffertype, byte orderByte, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyMemoryView_FromObject extends CApiUnaryBuiltinNode { @Specialization static Object wrap(Object object, diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMethodBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMethodBuiltins.java index 4c96a6f4fb..c3c5a135fc 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMethodBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMethodBuiltins.java @@ -40,12 +40,11 @@ */ package com.oracle.graal.python.builtins.modules.cext; -import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; import static com.oracle.graal.python.annotations.ArgDescriptor.PyMethodDef; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObject; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; import static com.oracle.graal.python.builtins.objects.cext.structs.CStructAccess.getArrayElementPtr; @@ -129,8 +128,8 @@ public static void addMethodsToObject(PythonLanguage language, long methods, Obj } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyMethodDef, ConstCharPtrAsTruffleString, Pointer, Int, PyObject, PyObject, PyTypeObject, - ConstCharPtrAsTruffleString}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, CharPtrToPythonNode.class, long.class, int.class, + @CApiBuiltin(ret = PyObject, args = {PyMethodDef, ConstCharPtr, Pointer, Int, PyObject, PyObject, PyTypeObject, + ConstCharPtr}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, CharPtrToPythonNode.class, long.class, int.class, NativeToPythonNode.class, NativeToPythonNode.class, NativeToPythonClassNode.class, CharPtrToPythonNode.class}) public static long GraalPyPrivate_CMethod_NewEx(long methodDefPtr, long nameRaw, long methPtr, int flags, long selfRaw, long moduleRaw, long clsRaw, long docRaw) { // errors are expected to be thrown already in native code diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextModuleBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextModuleBuiltins.java index 9a40d8038c..768443c15b 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextModuleBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextModuleBuiltins.java @@ -42,7 +42,6 @@ import static com.oracle.graal.python.annotations.ArgDescriptor.CONST_PY_SLOT_PTR; import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; -import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.PY_ABI_INFO_PTR; import static com.oracle.graal.python.annotations.ArgDescriptor.PY_SSIZE_T_PTR; @@ -50,10 +49,7 @@ import static com.oracle.graal.python.annotations.ArgDescriptor.PyMethodDef; import static com.oracle.graal.python.annotations.ArgDescriptor.PyModuleDef; import static com.oracle.graal.python.annotations.ArgDescriptor.PyModuleObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyModuleObjectTransfer; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectAsTruffleString; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.annotations.ArgDescriptor.VOID_PTR_LIST; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.SystemError; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.TypeError; @@ -128,7 +124,7 @@ public final class PythonCextModuleBuiltins { - @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtrAsTruffleString}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, CharPtrToPythonNode.class}) + @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtr}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, CharPtrToPythonNode.class}) abstract static class PyModule_SetDocString extends CApiBinaryBuiltinNode { @Specialization static int run(PythonModule module, Object doc, @@ -138,8 +134,8 @@ static int run(PythonModule module, Object doc, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObjectAsTruffleString}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {ToPythonStringNode.class}) - @CApiBuiltin(name = "PyModule_New", ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {ToPythonStringNode.class}) + @CApiBuiltin(name = "PyModule_New", ret = PyObject, args = {ConstCharPtr}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { CharPtrToPythonNode.class}) abstract static class PyModule_NewObject extends CApiUnaryBuiltinNode { @@ -150,7 +146,7 @@ static Object run(TruffleString name, } } - @CApiBuiltin(ret = PyModuleObjectTransfer, args = {ConstCharPtrAsTruffleString}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonNode.class}) + @CApiBuiltin(ret = PyModuleObject, args = {ConstCharPtr}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonNode.class}) abstract static class GraalPyPrivate_Module_CreateInitialized_PyModule_New extends CApiUnaryBuiltinNode { @Specialization @@ -185,7 +181,7 @@ Object run(TruffleString name, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyModule_GetNameObject extends CApiUnaryBuiltinNode { @Specialization static Object getName(PythonModule module, @@ -220,7 +216,7 @@ static boolean isModuleSubtype(Node inliningTarget, Object obj, GetClassNode get return isSubtypeNode.execute(getClassNode.execute(inliningTarget, obj), PythonBuiltinClassType.PythonModule); } - @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtrAsTruffleString, PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, CharPtrToPythonNode.class, + @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtr, PyObject}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, CharPtrToPythonNode.class, NativeToPythonNode.class}) @ImportStatic(PythonCextModuleBuiltins.class) abstract static class PyModule_AddObjectRef extends CApiTernaryBuiltinNode { @@ -244,7 +240,7 @@ static Object pop(Object m, Object key, Object defaultValue, } } - @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtrAsTruffleString, ArgDescriptor.Long}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtr, ArgDescriptor.Long}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, CharPtrToPythonNode.class, long.class}) @ImportStatic(PythonCextModuleBuiltins.class) abstract static class PyModule_AddIntConstant extends CApiTernaryBuiltinNode { @@ -292,7 +288,7 @@ public static int GraalPyPrivate_AddMethodsToObject(long moduleRaw, long nameRaw return 0; } - @CApiBuiltin(ret = PyObjectTransfer, args = {CONST_PY_SLOT_PTR, PyObject}, call = Direct, abi = ABI.ABI3T, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, + @CApiBuiltin(ret = PyObject, args = {CONST_PY_SLOT_PTR, PyObject}, call = Direct, abi = ABI.ABI3T, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, NativeToPythonNode.class}) public static long PyModule_FromSlotsAndSpec(long slots, long specPtr) { if (slots == NULLPTR) { @@ -383,7 +379,7 @@ public static int GraalPyPrivate_Module_Traverse(long selfPtr, long visitFun, lo return 0; } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyModule_GetFilenameObject extends CApiUnaryBuiltinNode { @Specialization static Object getFilename(PythonModule module, diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextNamespaceBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextNamespaceBuiltins.java index 9b1876346c..dca04c91c3 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextNamespaceBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextNamespaceBuiltins.java @@ -41,7 +41,6 @@ package com.oracle.graal.python.builtins.modules.cext; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.runtime.nativeaccess.NativeMemory.NULLPTR; @@ -66,7 +65,7 @@ public final class PythonCextNamespaceBuiltins { - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) static long _PyNamespace_New(long dictPtr) { PythonLanguage language = PythonLanguage.get(null); PSimpleNamespace namespace = PFactory.createSimpleNamespace(language); diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextObjectBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextObjectBuiltins.java index f7eb77e80c..b3ea1e3cb7 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextObjectBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextObjectBuiltins.java @@ -41,16 +41,11 @@ package com.oracle.graal.python.builtins.modules.cext; import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; -import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; -import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleStringStrict; import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectAsTruffleString; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectConstPtr; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectPtr; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.annotations.ArgDescriptor.PyThreadState; import static com.oracle.graal.python.annotations.ArgDescriptor.PyVarObject; import static com.oracle.graal.python.annotations.ArgDescriptor.Py_hash_t; @@ -265,7 +260,7 @@ static Object doLong(long arrayPointer, int len, } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject, PyObject, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject, PyObject, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class, NativeToPythonNode.class, int.class}) abstract static class GraalPyPrivate_Object_Call1 extends CApiQuaternaryBuiltinNode { @Specialization @@ -286,7 +281,7 @@ static Object doGeneric(Object callable, Object argsObj, Object kwargsObj, int s } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject, PyObjectConstPtr, Py_ssize_t}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject, PyObjectConstPtr, Py_ssize_t}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { NativeToPythonNode.class, NativeToPythonNode.class, long.class, long.class}) abstract static class GraalPyPrivate_Object_CallMethodObjArgs extends CApiQuaternaryBuiltinNode { @@ -303,7 +298,7 @@ static Object doMethod(Object receiver, Object methodName, long argsArray, long } } - @CApiBuiltin(ret = Int, args = {PyObjectAsTruffleString, PyObject, PyObjectConstPtr, Py_ssize_t, PyObject, PyObjectPtr}, call = Ignored, retConversion = int.class, argConversions = { + @CApiBuiltin(ret = Int, args = {PyObject, PyObject, PyObjectConstPtr, Py_ssize_t, PyObject, PyObjectPtr}, call = Ignored, retConversion = int.class, argConversions = { ToPythonStringNode.class, NativeToPythonNode.class, long.class, long.class, NativeToPythonNode.class, long.class}) static int GraalPyPrivate_Object_VectorcallMethod(long methodNamePtr, long receiverPtr, long argsArray, long nargs, long kwnamesPtr, long resultPointer) { TruffleString methodName = CastToTruffleStringNode.castKnownStringUncached(NativeToPythonInternalNode.executeUncached(methodNamePtr, false)); @@ -359,7 +354,7 @@ private static Object[] readArguments(long argsArray, int nargs, return args; } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, ConstCharPtrAsTruffleString, PyObject, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { + @CApiBuiltin(ret = PyObject, args = {PyObject, ConstCharPtr, PyObject, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { NativeToPythonNode.class, CharPtrToPythonNode.class, NativeToPythonNode.class, int.class}) abstract static class GraalPyPrivate_Object_CallMethod1 extends CApiQuaternaryBuiltinNode { @Specialization @@ -379,7 +374,7 @@ static Object doGeneric(Object receiver, TruffleString methodName, Object argsOb } // directly called without landing function - @CApiBuiltin(ret = PyObjectTransfer, args = {PyThreadState, PyObject, PyObjectConstPtr, Py_ssize_t, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { + @CApiBuiltin(ret = PyObject, args = {PyThreadState, PyObject, PyObjectConstPtr, Py_ssize_t, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { long.class, NativeToPythonNode.class, long.class, long.class, NativeToPythonNode.class}) abstract static class _PyObject_MakeTpCall extends CApi5BuiltinNode { @@ -436,7 +431,7 @@ private static void logCallableType(Object callable) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyObject_Str extends CApiUnaryBuiltinNode { @Specialization(guards = "!isNoValue(obj)") Object doGeneric(Object obj, @@ -451,7 +446,7 @@ static TruffleString asciiNone(@SuppressWarnings("unused") PNone obj) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyObject_Repr extends CApiUnaryBuiltinNode { @Specialization(guards = "!isNoValue(obj)") Object doGeneric(Object obj, @@ -530,7 +525,7 @@ static Object asFileDescriptor(Object obj, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class GraalPyPrivate_Object_GenericGetAttr extends CApiBinaryBuiltinNode { @Specialization @@ -574,7 +569,7 @@ static int getOptionalAttr(Object obj, Object attr, long resultPointer, } } - @CApiBuiltin(ret = Int, args = {PyObject, PyObjectAsTruffleString, PyObjectPtr}, call = Ignored, retConversion = int.class, argConversions = {NativeToPythonNode.class, ToPythonStringNode.class, + @CApiBuiltin(ret = Int, args = {PyObject, PyObject, PyObjectPtr}, call = Ignored, retConversion = int.class, argConversions = {NativeToPythonNode.class, ToPythonStringNode.class, long.class}) abstract static class GraalPyPrivate_Object_GetMethod extends CApiTernaryBuiltinNode { @Specialization @@ -639,13 +634,13 @@ static long unhashable(Object obj, } } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer}, call = Ignored, retConversion = int.class, argConversions = {long.class}) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Ignored, retConversion = int.class, argConversions = {long.class}) static int GraalPyPrivate_Object_IsTrue(long objPtr) { Object obj = NativeToPythonInternalNode.executeUncached(objPtr, false); return PyObjectIsTrueNode.executeUncached(obj) ? 1 : 0; } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyObject_Bytes extends CApiUnaryBuiltinNode { @Specialization(guards = "isBuiltinBytes(bytes)") static Object bytes(PBytes bytes) { @@ -686,7 +681,7 @@ static Object doGeneric(Object obj, } } - @CApiBuiltin(ret = PyObjectTransfer, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {}) + @CApiBuiltin(ret = PyObject, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {}) abstract static class GraalPyPrivate_NotImplemented extends CApiNullaryBuiltinNode { @Specialization static Object run() { @@ -694,7 +689,7 @@ static Object run() { } } - @CApiBuiltin(ret = PyObjectTransfer, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {}) + @CApiBuiltin(ret = PyObject, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {}) abstract static class GraalPyPrivate_NoValue extends CApiNullaryBuiltinNode { @Specialization static PNone doNoValue() { @@ -702,7 +697,7 @@ static PNone doNoValue() { } } - @CApiBuiltin(ret = PyObjectTransfer, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {}) + @CApiBuiltin(ret = PyObject, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {}) abstract static class GraalPyPrivate_None extends CApiNullaryBuiltinNode { @Specialization static PNone doNativeNone() { @@ -737,7 +732,7 @@ static PNone set(PSequence obj, long size, } } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer}, call = Ignored, retConversion = int.class, argConversions = {long.class}) + @CApiBuiltin(ret = Int, args = {PyObject}, call = Ignored, retConversion = int.class, argConversions = {long.class}) abstract static class GraalPyPrivate_Object_IsFreed extends CApiUnaryBuiltinNode { @Specialization static int doLong(long pointer, @@ -805,7 +800,7 @@ static int doGeneric(long pointer) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyObject_ASCII extends CApiUnaryBuiltinNode { @Specialization(guards = "!isNoValue(obj)") static Object ascii(Object obj, @@ -820,7 +815,7 @@ static TruffleString asciiNone(@SuppressWarnings("unused") PNone obj) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class PyObject_Format extends CApiBinaryBuiltinNode { @Specialization @@ -830,14 +825,14 @@ static Object ascii(Object obj, Object spec, } } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Ignored, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Ignored, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_Object_GetAIter(long objectPtr) { Object object = NativeToPythonInternalNode.executeUncached(objectPtr, false); Object result = PyObjectGetAIter.executeUncached(object); return PythonToNativeInternalNode.executeNewRefUncached(result); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Ignored, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Ignored, retConversion = long.class, argConversions = {long.class}) static long GraalPyPrivate_Object_GetIter(long objectPtr) { Object object = NativeToPythonInternalNode.executeUncached(objectPtr, false); Object result = PyObjectGetIter.executeUncached(object); @@ -858,7 +853,7 @@ static long hash(Object object, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyObject_Dir extends CApiUnaryBuiltinNode { @Specialization static Object dir(Object object, @@ -868,7 +863,7 @@ static Object dir(Object object, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Object_GenericGetDict extends CApiUnaryBuiltinNode { @Specialization static Object getDict(Object object, @@ -887,7 +882,7 @@ static int isTrue(Object a, Object b, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, ConstCharPtrAsTruffleStringStrict}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { + @CApiBuiltin(ret = PyObject, args = {PyObject, ConstCharPtr}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { NativeToPythonNode.class, CharPtrToPythonStrictNode.class}) abstract static class GraalPyPrivate_Object_GetAttrString extends CApiBinaryBuiltinNode { @Specialization @@ -898,7 +893,7 @@ static Object doGeneric(Object v, TruffleString name, } } - @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtrAsTruffleStringStrict, PyObject}, call = Ignored, retConversion = int.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtr, PyObject}, call = Ignored, retConversion = int.class, argConversions = {NativeToPythonNode.class, CharPtrToPythonStrictNode.class, NativeToPythonNode.class}) abstract static class GraalPyPrivate_Object_SetAttrString extends CApiTernaryBuiltinNode { @Specialization diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPickleBufferBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPickleBufferBuiltins.java index 438e02090c..7f2557f94e 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPickleBufferBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPickleBufferBuiltins.java @@ -41,7 +41,6 @@ package com.oracle.graal.python.builtins.modules.cext; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectBorrowed; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; import static com.oracle.graal.python.runtime.exception.PythonErrorType.ValueError; @@ -61,7 +60,7 @@ public final class PythonCextPickleBufferBuiltins { - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_PickleBuffer_viewobj extends CApiUnaryBuiltinNode { @Specialization static Object getviewobj(PPickleBuffer object, diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPosixmoduleBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPosixmoduleBuiltins.java index a5b33ee159..7d6692b982 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPosixmoduleBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPosixmoduleBuiltins.java @@ -41,7 +41,6 @@ package com.oracle.graal.python.builtins.modules.cext; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin; @@ -56,7 +55,7 @@ public final class PythonCextPosixmoduleBuiltins { - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyOS_FSPath extends CApiUnaryBuiltinNode { @Specialization static Object doit(Object path, diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyStateBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyStateBuiltins.java index 4740fcee5f..bd22c0cfbb 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyStateBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPyStateBuiltins.java @@ -42,9 +42,8 @@ import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyFrameObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyFrameObject; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectBorrowed; import static com.oracle.graal.python.annotations.ArgDescriptor.PyThreadState; import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.annotations.ArgDescriptor.Void; @@ -167,7 +166,7 @@ static Object GraalPyPrivate_BeforeThreadDetach() { return PNone.NO_VALUE; } - @CApiBuiltin(ret = PyObjectBorrowed, args = {}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {}) + @CApiBuiltin(ret = PyObject, args = {}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {}) abstract static class PyThreadState_GetDict extends CApiNullaryBuiltinNode { @Specialization @@ -232,7 +231,7 @@ protected void perform(Access access) { } } - @CApiBuiltin(ret = PyFrameObjectTransfer, args = {PyThreadState}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyFrameObject, args = {PyThreadState}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class}) abstract static class PyThreadState_GetFrame extends CApiUnaryBuiltinNode { @Specialization Object get(@SuppressWarnings("unused") long threadState, @@ -242,7 +241,7 @@ Object get(@SuppressWarnings("unused") long threadState, } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {Py_ssize_t}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyObject, args = {Py_ssize_t}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {long.class}) abstract static class GraalPyPrivate_State_FindModule extends CApiUnaryBuiltinNode { @Specialization diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPythonRunBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPythonRunBuiltins.java index 291d01e29a..e2a92cacf3 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPythonRunBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPythonRunBuiltins.java @@ -40,11 +40,10 @@ */ package com.oracle.graal.python.builtins.modules.cext; -import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.PY_COMPILER_FLAGS; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.SystemError; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.TypeError; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; @@ -83,7 +82,7 @@ public final class PythonCextPythonRunBuiltins { private static final int Py_file_input = 257; private static final int Py_eval_input = 258; - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, Int, PyObject, PyObject, + @CApiBuiltin(ret = PyObject, args = {ConstCharPtr, Int, PyObject, PyObject, PY_COMPILER_FLAGS}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonNode.class, int.class, NativeToPythonNode.class, NativeToPythonNode.class, long.class}) abstract static class PyRun_StringFlags extends CApi5BuiltinNode { @@ -132,7 +131,7 @@ protected static boolean checkArgs(Object source, Object globals, Object locals, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString, Int}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { + @CApiBuiltin(ret = PyObject, args = {ConstCharPtr, ConstCharPtr, Int}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { CharPtrToPythonNode.class, CharPtrToPythonNode.class, int.class}) abstract static class Py_CompileString extends CApiTernaryBuiltinNode { @Specialization(guards = {"isString(source)", "isString(filename)"}) @@ -152,7 +151,7 @@ static Object fail(Object source, Object filename, Object type, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString, Int, PY_COMPILER_FLAGS, + @CApiBuiltin(ret = PyObject, args = {ConstCharPtr, ConstCharPtr, Int, PY_COMPILER_FLAGS, Int}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonNode.class, CharPtrToPythonNode.class, int.class, long.class, int.class}) abstract static class Py_CompileStringExFlags extends CApi5BuiltinNode { @Specialization(guards = {"isString(source)", "isString(filename)"}) @@ -187,7 +186,7 @@ static Object fail(Object source, Object filename, Object type, long flags, Obje } } - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, PyObject, Int, PY_COMPILER_FLAGS, Int}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { + @CApiBuiltin(ret = PyObject, args = {ConstCharPtr, PyObject, Int, PY_COMPILER_FLAGS, Int}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { CharPtrToPythonNode.class, NativeToPythonNode.class, int.class, long.class, int.class}) abstract static class Py_CompileStringObject extends CApi5BuiltinNode { @Specialization(guards = "isString(source)") diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSetBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSetBuiltins.java index e3a6ec5ec8..a2b4dc7da3 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSetBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSetBuiltins.java @@ -42,7 +42,6 @@ import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.SystemError; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; @@ -87,7 +86,7 @@ public final class PythonCextSetBuiltins { private static final CApiTiming TIMING_PYSET_NEW = CApiTiming.create(false, "PySet_New"); - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, acquireGil = false, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, acquireGil = false, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) static long PySet_New(long iterablePtr) { CApiTiming.enter(); try { @@ -131,7 +130,7 @@ int fallback(@SuppressWarnings("unused") Object anyset, @SuppressWarnings("unuse } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PySet_Pop extends CApiUnaryBuiltinNode { @Specialization static Object pop(PSet set, @@ -145,7 +144,7 @@ Object fallback(Object set) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyFrozenSet_New extends CApiUnaryBuiltinNode { @Specialization(guards = {"!isNone(iterable)", "!isNoValue(iterable)"}) static Object newFrozenSet(Object iterable, diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSliceBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSliceBuiltins.java index 428da84e3a..72427d72cd 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSliceBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSliceBuiltins.java @@ -41,7 +41,6 @@ package com.oracle.graal.python.builtins.modules.cext; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; @@ -67,7 +66,7 @@ public final class PythonCextSliceBuiltins { - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class PySlice_New extends CApiTernaryBuiltinNode { @Specialization @@ -85,7 +84,7 @@ private static Object prepare(Object obj) { } } - @CApiBuiltin(ret = PyObjectTransfer, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {}) + @CApiBuiltin(ret = PyObject, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {}) abstract static class GraalPyPrivate_Ellipsis extends CApiNullaryBuiltinNode { @Specialization static Object run() { @@ -93,7 +92,7 @@ static Object run() { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPySlice_Start extends CApiUnaryBuiltinNode { @Specialization static Object get(PIntSlice slice) { @@ -112,7 +111,7 @@ static Object error(Object slice, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPySlice_Stop extends CApiUnaryBuiltinNode { @Specialization static Object get(PIntSlice slice) { @@ -131,7 +130,7 @@ static Object error(Object slice, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPySlice_Step extends CApiUnaryBuiltinNode { @Specialization static Object get(PIntSlice slice) { diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSlotBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSlotBuiltins.java index 36b51d813a..b8f2505f69 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSlotBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSlotBuiltins.java @@ -40,7 +40,7 @@ */ package com.oracle.graal.python.builtins.modules.cext; -import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; import static com.oracle.graal.python.annotations.ArgDescriptor.PyByteArrayObject; @@ -58,12 +58,11 @@ import static com.oracle.graal.python.annotations.ArgDescriptor.PyModuleDef; import static com.oracle.graal.python.annotations.ArgDescriptor.PyModuleObject; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectBorrowed; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectPtr; import static com.oracle.graal.python.annotations.ArgDescriptor.PySetObject; import static com.oracle.graal.python.annotations.ArgDescriptor.PySliceObject; import static com.oracle.graal.python.annotations.ArgDescriptor.PyTupleObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObjectBorrowed; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObject; import static com.oracle.graal.python.annotations.ArgDescriptor.PyVarObject; import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.annotations.ArgDescriptor.UINTPTR_T; @@ -144,7 +143,7 @@ public static long GraalPyPrivate_Get_PyTupleObject_ob_item(long ptr) { return PySequenceArrayWrapper.ensureNativeSequence(object); } - @CApiBuiltin(ret = PyTypeObjectBorrowed, args = {PyCMethodObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyTypeObject, args = {PyCMethodObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyCMethodObject_mm_class extends CApiUnaryBuiltinNode { @Specialization static Object get(PBuiltinMethod object) { @@ -196,7 +195,7 @@ static long get(PythonBuiltinObject object, long methodDefPtr, } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyCFunctionObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyCFunctionObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyCFunctionObject_m_module extends CApiUnaryBuiltinNode { @Specialization Object get(Object object, @@ -207,7 +206,7 @@ Object get(Object object, } } - @CApiBuiltin(ret = Void, args = {PyCFunctionObject, PyObjectBorrowed}, call = Ignored, retConversion = void.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) + @CApiBuiltin(ret = Void, args = {PyCFunctionObject, PyObject}, call = Ignored, retConversion = void.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class GraalPyPrivate_Set_PyCFunctionObject_m_module extends CApiBinaryBuiltinNode { @Specialization Object set(Object object, Object value, @@ -218,7 +217,7 @@ Object set(Object object, Object value, } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyCFunctionObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyCFunctionObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyCFunctionObject_m_self extends CApiUnaryBuiltinNode { @Specialization static Object get(PBuiltinMethod object) { @@ -231,7 +230,7 @@ static Object get(PMethod object) { } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyCFunctionObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyCFunctionObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyCFunctionObject_m_weakreflist extends CApiUnaryBuiltinNode { @Specialization static int get(@SuppressWarnings("unused") Object object) { @@ -276,7 +275,7 @@ static Object set(PByteArray object, int value) { } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyDescrObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyDescrObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyDescrObject_d_name extends CApiUnaryBuiltinNode { @Specialization @@ -290,7 +289,7 @@ static Object get(GetSetDescriptor object) { } } - @CApiBuiltin(ret = PyTypeObjectBorrowed, args = {PyDescrObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyTypeObject, args = {PyDescrObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyDescrObject_d_type extends CApiUnaryBuiltinNode { @Specialization @@ -322,7 +321,7 @@ static long get(@SuppressWarnings("unused") long object) { } } - @CApiBuiltin(ret = ConstCharPtrAsTruffleString, args = {PyGetSetDef}, call = Ignored, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = ConstCharPtr, args = {PyGetSetDef}, call = Ignored, retConversion = long.class, argConversions = {long.class}) abstract static class GraalPyPrivate_Get_PyGetSetDef_doc extends CApiUnaryBuiltinNode { @Specialization long get(@SuppressWarnings("unused") long object) { @@ -338,7 +337,7 @@ static long get(@SuppressWarnings("unused") long object) { } } - @CApiBuiltin(ret = ConstCharPtrAsTruffleString, args = {PyGetSetDef}, call = Ignored, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = ConstCharPtr, args = {PyGetSetDef}, call = Ignored, retConversion = long.class, argConversions = {long.class}) abstract static class GraalPyPrivate_Get_PyGetSetDef_name extends CApiUnaryBuiltinNode { @Specialization long get(@SuppressWarnings("unused") long object) { @@ -373,7 +372,7 @@ static long get(PBuiltinFunction builtinFunction, } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyInstanceMethodObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyInstanceMethodObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyInstanceMethodObject_func extends CApiUnaryBuiltinNode { @Specialization static Object get(PDecoratedMethod object) { @@ -381,7 +380,7 @@ static Object get(PDecoratedMethod object) { } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyMethodObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyMethodObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyMethodObject_im_func extends CApiUnaryBuiltinNode { @Specialization static Object get(PBuiltinMethod object) { @@ -394,7 +393,7 @@ static Object get(PMethod object) { } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyMethodObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyMethodObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyMethodObject_im_self extends CApiUnaryBuiltinNode { @Specialization @@ -408,7 +407,7 @@ static Object get(PMethod object) { } } - @CApiBuiltin(ret = ConstCharPtrAsTruffleString, args = {PyModuleDef}, call = Ignored, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = ConstCharPtr, args = {PyModuleDef}, call = Ignored, retConversion = long.class, argConversions = {long.class}) abstract static class GraalPyPrivate_Get_PyModuleDef_m_doc extends CApiUnaryBuiltinNode { @Specialization static int get(@SuppressWarnings("unused") Object object) { @@ -424,7 +423,7 @@ static int get(@SuppressWarnings("unused") long object) { } } - @CApiBuiltin(ret = ConstCharPtrAsTruffleString, args = {PyModuleDef}, call = Ignored, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = ConstCharPtr, args = {PyModuleDef}, call = Ignored, retConversion = long.class, argConversions = {long.class}) abstract static class GraalPyPrivate_Get_PyModuleDef_m_name extends CApiUnaryBuiltinNode { @Specialization static int get(@SuppressWarnings("unused") long object) { @@ -448,7 +447,7 @@ static long get(PythonModule object) { } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyModuleObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyModuleObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyModuleObject_md_dict extends CApiUnaryBuiltinNode { @Specialization static Object get(Object object, @@ -482,7 +481,7 @@ static long get(long pointer) { } } - @CApiBuiltin(ret = PyTypeObjectBorrowed, args = {PyObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyTypeObject, args = {PyObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PyObject_ob_type extends CApiUnaryBuiltinNode { @Specialization @@ -534,7 +533,7 @@ static Object get(Node inliningTarget, PSlice object, HiddenAttr key, Object val } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PySliceObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PySliceObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PySliceObject_start extends CApiUnaryBuiltinNode { @Specialization @@ -545,7 +544,7 @@ static Object doStart(PSlice object, } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PySliceObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PySliceObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PySliceObject_step extends CApiUnaryBuiltinNode { @Specialization @@ -556,7 +555,7 @@ static Object doStep(PSlice object, } } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PySliceObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PySliceObject}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Get_PySliceObject_stop extends CApiUnaryBuiltinNode { @Specialization diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextStructSeqBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextStructSeqBuiltins.java index 9c66959627..ed800f7903 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextStructSeqBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextStructSeqBuiltins.java @@ -40,12 +40,11 @@ */ package com.oracle.graal.python.builtins.modules.cext; -import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObjectTransfer; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.SystemError; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; @@ -130,7 +129,7 @@ static int doGeneric(PythonAbstractClass klass, long fields, int nInSequence) { } } - @CApiBuiltin(ret = PyTypeObjectTransfer, args = {ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString, Pointer, + @CApiBuiltin(ret = PyTypeObject, args = {ConstCharPtr, ConstCharPtr, Pointer, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonNode.class, CharPtrToPythonNode.class, long.class, int.class}) abstract static class GraalPyPrivate_StructSequence_NewType extends CApiQuaternaryBuiltinNode { @@ -154,7 +153,7 @@ Object doGeneric(TruffleString typeName, TruffleString typeDoc, long fields, int } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyTypeObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonClassNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyTypeObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonClassNode.class}) abstract static class PyStructSequence_New extends CApiUnaryBuiltinNode { @Specialization diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSysBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSysBuiltins.java index 7bd2157379..fa55e4b314 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSysBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSysBuiltins.java @@ -41,10 +41,8 @@ package com.oracle.graal.python.builtins.modules.cext; import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; -import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectBorrowed; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; import static com.oracle.graal.python.builtins.modules.io.IONodes.T_WRITE; @@ -78,7 +76,7 @@ public final class PythonCextSysBuiltins { - @CApiBuiltin(ret = PyObjectBorrowed, args = {ConstCharPtrAsTruffleString}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {CharPtrToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {ConstCharPtr}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {CharPtrToPythonNode.class}) abstract static class PySys_GetObject extends CApiUnaryBuiltinNode { @Specialization diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTracebackBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTracebackBuiltins.java index c909f14d81..745e41fb2e 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTracebackBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTracebackBuiltins.java @@ -40,7 +40,7 @@ */ package com.oracle.graal.python.builtins.modules.cext; -import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.PyFrameObject; import static com.oracle.graal.python.annotations.ArgDescriptor.Void; @@ -71,7 +71,7 @@ public final class PythonCextTracebackBuiltins { - @CApiBuiltin(ret = Void, args = {ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString, Int}, call = Direct, retConversion = void.class, argConversions = {CharPtrToPythonNode.class, + @CApiBuiltin(ret = Void, args = {ConstCharPtr, ConstCharPtr, Int}, call = Direct, retConversion = void.class, argConversions = {CharPtrToPythonNode.class, CharPtrToPythonNode.class, int.class}) abstract static class _PyTraceback_Add extends CApiTernaryBuiltinNode { @Specialization diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTupleBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTupleBuiltins.java index 126ebe142d..3d4e84c44d 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTupleBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTupleBuiltins.java @@ -41,10 +41,7 @@ package com.oracle.graal.python.builtins.modules.cext; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectBorrowed; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectPtr; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.builtins.PythonBuiltinClassType.IndexError; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; @@ -89,12 +86,12 @@ public final class PythonCextTupleBuiltins { - @CApiBuiltin(ret = PyObjectRawPointer, call = Ignored, retConversion = long.class, argConversions = {}) + @CApiBuiltin(ret = PyObject, call = Ignored, retConversion = long.class, argConversions = {}) static long GraalPyPrivate_Tuple_Empty() { return PythonToNativeInternalNode.executeNewRefUncached(PFactory.createEmptyTuple(PythonLanguage.get(null))); } - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyObject, Py_ssize_t}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, Py_ssize_t}, call = Ignored, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonNode.class, long.class}) public abstract static class GraalPyPrivate_Tuple_GetItem extends CApiBinaryBuiltinNode { public abstract Object execute(PTuple tuple, long key); @@ -158,7 +155,7 @@ private static int checkIndex(Node inliningTarget, long key, SequenceStorage seq } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Py_ssize_t, Py_ssize_t}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, Py_ssize_t, Py_ssize_t}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, long.class, long.class}) abstract static class PyTuple_GetSlice extends CApiTernaryBuiltinNode { @Specialization diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTypeBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTypeBuiltins.java index a31da14b65..6f289c9201 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTypeBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTypeBuiltins.java @@ -41,16 +41,11 @@ package com.oracle.graal.python.builtins.modules.cext; import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; -import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; import static com.oracle.graal.python.annotations.ArgDescriptor.PyBufferProcs; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectBorrowed; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObjectRawPointer; import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; @@ -146,9 +141,9 @@ public final class PythonCextTypeBuiltins { - @CApiBuiltin(ret = PyObjectBorrowed, args = {PyTypeObject, PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonClassNode.class, + @CApiBuiltin(ret = PyObject, args = {PyTypeObject, PyObject}, call = Direct, retConversion = ToNativeBorrowedNode.class, argConversions = {NativeToPythonClassNode.class, NativeToPythonNode.class}) - @CApiBuiltin(name = "_PyType_LookupRef", ret = PyObjectTransfer, args = {PyTypeObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { + @CApiBuiltin(name = "_PyType_LookupRef", ret = PyObject, args = {PyTypeObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { NativeToPythonClassNode.class, NativeToPythonNode.class}) abstract static class _PyType_Lookup extends CApiBinaryBuiltinNode { @Specialization @@ -207,7 +202,7 @@ Object doGeneric(Object type, Object name, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyTypeObject, ConstCharPtrAsTruffleString}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { + @CApiBuiltin(ret = PyObject, args = {PyTypeObject, ConstCharPtr}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { NativeToPythonClassNode.class, CharPtrToPythonNode.class}) abstract static class GraalPyPrivate_Compute_Mro extends CApiBinaryBuiltinNode { @@ -226,7 +221,7 @@ public NativeTypeDictStorage(Shape shape) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyTypeObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonClassNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyTypeObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonClassNode.class}) abstract static class GraalPyPrivate_NewTypeDict extends CApiUnaryBuiltinNode { @Specialization @@ -336,8 +331,8 @@ private static PythonBuiltinObject typeAddMethod(PythonLanguage language, long m return func; } - @CApiBuiltin(ret = Int, args = {Pointer, PyTypeObject, PyObject, ConstCharPtrAsTruffleString, Pointer, Int, - ConstCharPtrAsTruffleString}, call = Ignored, retConversion = int.class, argConversions = {long.class, NativeToPythonClassNode.class, NativeToPythonNode.class, + @CApiBuiltin(ret = Int, args = {Pointer, PyTypeObject, PyObject, ConstCharPtr, Pointer, Int, + ConstCharPtr}, call = Ignored, retConversion = int.class, argConversions = {long.class, NativeToPythonClassNode.class, NativeToPythonNode.class, CharPtrToPythonNode.class, long.class, int.class, CharPtrToPythonNode.class}) public static int GraalPyPrivate_Type_AddFunctionToType(long methodDefPtr, long typeRaw, long dictRaw, long nameRaw, long cfunc, int flags, long docRaw) { CompilerAsserts.neverPartOfCompilation(); @@ -371,7 +366,7 @@ public static int GraalPyPrivate_Type_AddOperators(long type) { return -1; } - @CApiBuiltin(ret = Int, args = {PyTypeObjectRawPointer, PyObjectRawPointer, ConstCharPtr, Int, Py_ssize_t, Int, + @CApiBuiltin(ret = Int, args = {PyTypeObject, PyObject, ConstCharPtr, Int, Py_ssize_t, Int, ConstCharPtr}, call = CApiCallPath.Ignored, retConversion = int.class, argConversions = {long.class, long.class, long.class, int.class, long.class, int.class, long.class}) @TruffleBoundary public static int GraalPyPrivate_Type_AddMember(long clazzPtr, long tpDictPtr, long memberNamePtr, int memberType, long offset, int canSet, long memberDocPtr) { @@ -402,7 +397,7 @@ public static int addMember(Object clazz, PDict tpDict, TruffleString memberName return 0; } - @CApiBuiltin(ret = Int, args = {PyTypeObjectRawPointer, PyObjectRawPointer, ConstCharPtr, Pointer, Pointer, ConstCharPtr, Pointer}, call = Ignored, retConversion = int.class, argConversions = { + @CApiBuiltin(ret = Int, args = {PyTypeObject, PyObject, ConstCharPtr, Pointer, Pointer, ConstCharPtr, Pointer}, call = Ignored, retConversion = int.class, argConversions = { long.class, long.class, long.class, long.class, long.class, long.class, long.class}) static int GraalPyPrivate_Type_AddGetSet(long clsPtr, long dictPtr, long namePtr, long getter, long setter, long docPtr, long closure) { Object cls = NativeToPythonClassInternalNode.executeUncached(clsPtr); diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextUnicodeBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextUnicodeBuiltins.java index 7e7e34aaaf..e2f4cdd7ef 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextUnicodeBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextUnicodeBuiltins.java @@ -42,17 +42,13 @@ import static com.oracle.graal.python.annotations.ArgDescriptor.CONST_WCHAR_PTR; import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; -import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; -import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleStringStrict; import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.PY_SSIZE_T_PTR; import static com.oracle.graal.python.annotations.ArgDescriptor.PY_UCS4; import static com.oracle.graal.python.annotations.ArgDescriptor.PY_UNICODE_PTR; import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectAsTruffleString; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectConstPtr; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.annotations.ArgDescriptor.Void; import static com.oracle.graal.python.annotations.ArgDescriptor._PY_ERROR_HANDLER; @@ -227,7 +223,7 @@ static boolean isAnyString(Node inliningTarget, Object obj, GetClassNode getClas return PGuards.isString(obj) || isStringSubtype(inliningTarget, obj, getClassNode, isSubtypeNode); } - @CApiBuiltin(ret = PyObjectTransfer, args = {PY_UCS4}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {int.class}) + @CApiBuiltin(ret = PyObject, args = {PY_UCS4}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {int.class}) abstract static class GraalPyPrivate_Unicode_FromOrdinal extends CApiUnaryBuiltinNode { @Specialization static Object chr(int value, @@ -239,7 +235,7 @@ static Object chr(int value, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleStringStrict}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonStrictNode.class}) + @CApiBuiltin(ret = PyObject, args = {ConstCharPtr}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonStrictNode.class}) abstract static class PyUnicode_FromString extends CApiUnaryBuiltinNode { @Specialization static TruffleString fromString(TruffleString value) { @@ -247,7 +243,7 @@ static TruffleString fromString(TruffleString value) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) @ImportStatic(PythonCextUnicodeBuiltins.class) abstract static class PyUnicode_FromObject extends CApiUnaryBuiltinNode { @Specialization @@ -284,14 +280,14 @@ protected boolean isPStringType(Node inliningTarget, Object obj, GetClassNode ge } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObjectAsTruffleString}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {ToPythonStringNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {ToPythonStringNode.class}) public static long _PyUnicode_Copy(long unicodePtr) { Object unicode = NativeToPythonInternalNode.executeUncached(unicodePtr, false); Object copy = PFactory.createString(PythonLanguage.get(null), CastToTruffleStringNode.castKnownStringUncached(unicode)); return PythonToNativeInternalNode.executeUncached(copy, true); } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) @ImportStatic(PythonCextUnicodeBuiltins.class) abstract static class PyUnicode_Concat extends CApiBinaryBuiltinNode { @@ -323,7 +319,7 @@ static Object rightNotString(@SuppressWarnings("unused") Object left, Object rig } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { + @CApiBuiltin(ret = PyObject, args = {PyObject, ConstCharPtr, ConstCharPtr}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { NativeToPythonNode.class, CharPtrToPythonNode.class, CharPtrToPythonNode.class}) @ImportStatic(PythonCextUnicodeBuiltins.class) abstract static class PyUnicode_FromEncodedObject extends CApiTernaryBuiltinNode { @@ -361,7 +357,7 @@ static Object doGeneric(Object obj, Object encodingObj, Object errorsObj, private static final CApiTiming TIMING_GRAALPYPRIVATE_UNICODE_LOOKUPANDINTERN = CApiTiming.create(false, "GraalPyPrivate_Unicode_LookupAndIntern"); - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) static long GraalPyPrivate_Unicode_LookupAndIntern(long objPtr) { CApiTiming.enter(); try { @@ -408,7 +404,7 @@ static int nil(@SuppressWarnings("unused") Object obj) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Int, Int, Int}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, int.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, Int, Int, Int}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, int.class, int.class, int.class}) @ImportStatic(PythonCextUnicodeBuiltins.class) abstract static class _PyUnicode_FormatLong extends CApiQuaternaryBuiltinNode { @@ -560,7 +556,7 @@ static long find(Object string, @SuppressWarnings("unused") Object c, @SuppressW } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Py_ssize_t, Py_ssize_t}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, Py_ssize_t, Py_ssize_t}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, long.class, long.class}) @ImportStatic(PythonCextUnicodeBuiltins.class) abstract static class PyUnicode_Substring extends CApiTernaryBuiltinNode { @@ -593,7 +589,7 @@ protected static boolean isStringSubtype(Object obj, Node n, GetClassNode getCla } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class}) @ImportStatic(PythonCextUnicodeBuiltins.class) abstract static class PyUnicode_Join extends CApiBinaryBuiltinNode { @@ -615,7 +611,7 @@ static Object find(Object separator, @SuppressWarnings("unused") Object seq, } } - @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtrAsTruffleString}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, CharPtrToPythonNode.class}) + @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtr}, call = Direct, retConversion = int.class, argConversions = {NativeToPythonNode.class, CharPtrToPythonNode.class}) @ImportStatic(PythonCextUnicodeBuiltins.class) abstract static class _PyUnicode_EqualToASCIIString extends CApiBinaryBuiltinNode { @@ -640,7 +636,7 @@ static Object compare(Object left, Object right, private static final CApiTiming TIMING_PYUNICODE_COMPAREWITHASCIISTRING = CApiTiming.create(false, "PyUnicode_CompareWithASCIIString"); - @CApiBuiltin(ret = Int, args = {PyObjectAsTruffleString, ConstCharPtr}, call = Direct, retConversion = int.class, argConversions = {ToPythonStringNode.class, long.class}) + @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtr}, call = Direct, retConversion = int.class, argConversions = {ToPythonStringNode.class, long.class}) public static int PyUnicode_CompareWithASCIIString(long uniPtr, long str) { /* * This method cannot throw Python exceptions and doesn't need a GIL since both, the unicode @@ -688,7 +684,7 @@ private static class InvalidStringException extends ControlFlowException { static final InvalidStringException INSTANCE = new InvalidStringException(); } - @CApiBuiltin(ret = Int, args = {PyObjectAsTruffleString, ConstCharPtr, Py_ssize_t}, call = Direct, retConversion = int.class, argConversions = {ToPythonStringNode.class, long.class, long.class}) + @CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtr, Py_ssize_t}, call = Direct, retConversion = int.class, argConversions = {ToPythonStringNode.class, long.class, long.class}) public static int PyUnicode_EqualToUTF8AndSize(long unicodePtr, long str, long size) { if (size < 0) { return 0; @@ -775,7 +771,7 @@ static long find(Object string, Object substring, Object start, Object end, Obje } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { + @CApiBuiltin(ret = PyObject, args = {PyObject, ConstCharPtr, ConstCharPtr}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = { NativeToPythonNode.class, CharPtrToPythonNode.class, CharPtrToPythonNode.class}) @ImportStatic(PythonCextUnicodeBuiltins.class) abstract static class PyUnicode_AsEncodedString extends CApiTernaryBuiltinNode { @@ -797,7 +793,7 @@ static Object encode(@SuppressWarnings("unused") Object obj, @SuppressWarnings(" } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject, PyObject, Py_ssize_t}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject, PyObject, Py_ssize_t}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class, NativeToPythonNode.class, long.class}) @ImportStatic(PythonCextUnicodeBuiltins.class) abstract static class PyUnicode_Replace extends CApiQuaternaryBuiltinNode { @@ -832,7 +828,7 @@ static Object replace(Object s, Object substr, Object replstr, long count, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObjectConstPtr, Py_ssize_t}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObjectConstPtr, Py_ssize_t}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, long.class, long.class}) @TypeSystemReference(PythonIntegerTypes.class) @ImportStatic(PythonCextUnicodeBuiltins.class) @@ -872,7 +868,7 @@ static Object join(Object separatorObj, long itemsObj, long seqlenlong, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) @ImportStatic(PythonCextUnicodeBuiltins.class) abstract static class PyUnicode_AsUnicodeEscapeString extends CApiUnaryBuiltinNode { @Specialization(guards = "isString(s)") @@ -948,7 +944,7 @@ static long GraalPyPrivate_Unicode_New(long nChars, int charSize, int isAscii) { return taggedPointer; } - @CApiBuiltin(ret = PyObjectTransfer, args = {Pointer, Py_ssize_t, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, long.class, int.class}) + @CApiBuiltin(ret = PyObject, args = {Pointer, Py_ssize_t, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, long.class, int.class}) abstract static class GraalPyPrivate_Unicode_FromUCS extends CApiTernaryBuiltinNode { private static TruffleString.CompactionLevel compactionLevelFromKind(Node inliningTarget, int kind, PRaiseNode raiseNode) throws PException { @@ -976,7 +972,7 @@ static Object doNative(long ptr, long byteLength, int kind, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_Unicode_FSDecoder extends CApiUnaryBuiltinNode { @Specialization @@ -986,7 +982,7 @@ static Object fsDecoder(Object arg, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtr, Py_ssize_t}, call = Ignored, acquireGil = false, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, + @CApiBuiltin(ret = PyObject, args = {ConstCharPtr, Py_ssize_t}, call = Ignored, acquireGil = false, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, long.class}) static long GraalPyPrivate_Unicode_DecodeFSDefaultAndSize(long s, long lsize) { // TODO: this implementation does not honor Py_FileSystemDefaultEncoding and Py_FileSystemDefaultEncodeErrors @@ -1001,7 +997,7 @@ static long GraalPyPrivate_Unicode_DecodeFSDefaultAndSize(long s, long lsize) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {Pointer, Py_ssize_t, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, long.class, int.class}) + @CApiBuiltin(ret = PyObject, args = {Pointer, Py_ssize_t, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, long.class, int.class}) abstract static class GraalPyPrivate_Unicode_FromUTF extends CApiTernaryBuiltinNode { private static TruffleString encodingFromKind(int kind) { @@ -1055,7 +1051,7 @@ static int contains(Object haystack, Object needle, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject, Py_ssize_t}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject, Py_ssize_t}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class, long.class}) abstract static class PyUnicode_Split extends CApiTernaryBuiltinNode { @Specialization @@ -1065,7 +1061,7 @@ static Object split(Object string, Object sep, Object maxsplit, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {Pointer, Py_ssize_t, ConstCharPtrAsTruffleString, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, + @CApiBuiltin(ret = PyObject, args = {Pointer, Py_ssize_t, ConstCharPtr, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, long.class, CharPtrToPythonNode.class, int.class}) abstract static class GraalPyPrivate_Unicode_DecodeUTF8Stateful extends CApiQuaternaryBuiltinNode { @Specialization @@ -1083,7 +1079,7 @@ static Object doUtf8Decode(long cByteArray, long size, TruffleString errors, int } } - @CApiBuiltin(ret = PyObjectTransfer, args = {Pointer, Py_ssize_t, ConstCharPtrAsTruffleString, Int, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { + @CApiBuiltin(ret = PyObject, args = {Pointer, Py_ssize_t, ConstCharPtr, Int, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { long.class, long.class, CharPtrToPythonNode.class, int.class, int.class}) abstract static class GraalPyPrivate_Unicode_DecodeUTF16Stateful extends CApi5BuiltinNode { @@ -1110,7 +1106,7 @@ static Object decode(long cByteArray, long size, TruffleString errors, int byteo } } - @CApiBuiltin(ret = PyObjectTransfer, args = {Pointer, Py_ssize_t, ConstCharPtrAsTruffleString, Int, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { + @CApiBuiltin(ret = PyObject, args = {Pointer, Py_ssize_t, ConstCharPtr, Int, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { long.class, long.class, CharPtrToPythonNode.class, int.class, int.class}) abstract static class GraalPyPrivate_Unicode_DecodeUTF32Stateful extends CApi5BuiltinNode { @@ -1137,7 +1133,7 @@ static Object decode(long cByteArray, long size, TruffleString errors, int byteo } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { + @CApiBuiltin(ret = PyObject, args = {PyObject, ConstCharPtr, ConstCharPtr}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { NativeToPythonNode.class, CharPtrToPythonNode.class, CharPtrToPythonNode.class}) abstract static class GraalPyPrivate_Unicode_Decode extends CApiTernaryBuiltinNode { @@ -1148,7 +1144,7 @@ static Object doDecode(PMemoryView mv, TruffleString encoding, TruffleString err } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class PyUnicode_EncodeFSDefault extends CApiUnaryBuiltinNode { @Specialization static PBytes fromObject(Object s, @@ -1160,7 +1156,7 @@ static PBytes fromObject(Object s, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, ConstCharPtrAsTruffleString}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, ConstCharPtr}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, CharPtrToPythonNode.class}) abstract static class PyUnicode_EncodeLocale extends CApiBinaryBuiltinNode { @Specialization @@ -1173,7 +1169,7 @@ static Object encode(Object s, Object errors, } } - @CApiBuiltin(ret = PyObjectTransfer, args = {CONST_WCHAR_PTR, Py_ssize_t}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = PyObject, args = {CONST_WCHAR_PTR, Py_ssize_t}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {long.class, long.class}) abstract static class PyUnicode_FromWideChar extends CApiBinaryBuiltinNode { @Specialization Object doInt(long arr, long size, @@ -1213,7 +1209,7 @@ static Object doUnicode(@SuppressWarnings("unused") Object s, @SuppressWarnings( } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, ConstCharPtrAsTruffleString}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, ConstCharPtr}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, CharPtrToPythonNode.class}) abstract static class _PyUnicode_AsLatin1String extends NativeEncoderNode { protected _PyUnicode_AsLatin1String() { @@ -1221,7 +1217,7 @@ protected _PyUnicode_AsLatin1String() { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, ConstCharPtrAsTruffleString}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, ConstCharPtr}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, CharPtrToPythonNode.class}) abstract static class _PyUnicode_AsASCIIString extends NativeEncoderNode { protected _PyUnicode_AsASCIIString() { @@ -1229,7 +1225,7 @@ protected _PyUnicode_AsASCIIString() { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, ConstCharPtrAsTruffleString}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, ConstCharPtr}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, CharPtrToPythonNode.class}) abstract static class _PyUnicode_AsUTF8String extends NativeEncoderNode { @@ -1386,7 +1382,7 @@ static Object doNative(PythonAbstractNativeObject s, } // TODO(native-access) Remove GraalPyPrivate_Unicode_AsWideChar - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, int.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject, Int}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, int.class}) abstract static class GraalPyPrivate_Unicode_AsWideChar extends CApiBinaryBuiltinNode { @Specialization static Object doUnicode(Object s, int elementSize, @@ -1408,7 +1404,7 @@ static Object doUnicode(Object s, int elementSize, } } - @CApiBuiltin(ret = _PY_ERROR_HANDLER, args = {ConstCharPtrAsTruffleString}, call = Direct, retConversion = int.class, argConversions = {CharPtrToPythonNode.class}) + @CApiBuiltin(ret = _PY_ERROR_HANDLER, args = {ConstCharPtr}, call = Direct, retConversion = int.class, argConversions = {CharPtrToPythonNode.class}) abstract static class _Py_GetErrorHandler extends CApiUnaryBuiltinNode { @Specialization static Object doGeneric(TruffleString errors, @@ -1423,8 +1419,8 @@ static Object doNull(@SuppressWarnings("unused") PNone noValue) { } } - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString, ConstCharPtr, Py_ssize_t, Py_ssize_t, Py_ssize_t, - ConstCharPtrAsTruffleString}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonNode.class, long.class, long.class, long.class, + @CApiBuiltin(ret = PyObject, args = {ConstCharPtr, ConstCharPtr, Py_ssize_t, Py_ssize_t, Py_ssize_t, + ConstCharPtr}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonNode.class, long.class, long.class, long.class, long.class, CharPtrToPythonNode.class}) abstract static class PyUnicodeDecodeError_Create extends CApi6BuiltinNode { @Specialization @@ -1555,7 +1551,7 @@ static Object doUnicode(PString stringObject, } // intentionally a node because of the indirectly used TruffleString.FromZeroTerminatedNativePointerNode - @CApiBuiltin(ret = PyObjectTransfer, args = {ConstCharPtrAsTruffleString}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {ConstCharPtr}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {CharPtrToPythonNode.class}) abstract static class PyUnicode_InternFromString extends CApiUnaryBuiltinNode { @Specialization diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWarnBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWarnBuiltins.java index 12e1d0d283..f98e7a2535 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWarnBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWarnBuiltins.java @@ -42,7 +42,6 @@ import static com.oracle.graal.python.annotations.ArgDescriptor.Int; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored; import static com.oracle.graal.python.nodes.BuiltinNames.T__WARNINGS; @@ -60,7 +59,7 @@ public final class PythonCextWarnBuiltins { - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject, Py_ssize_t, PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject, Py_ssize_t, PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class, NativeToPythonNode.class, long.class, NativeToPythonNode.class}) abstract static class GraalPyPrivate_Err_Warn extends CApiQuaternaryBuiltinNode { @Specialization @@ -77,7 +76,7 @@ Object warn(Object message, Object category, long stackLevel, @SuppressWarnings( } } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject, PyObject, Int, PyObject, PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject, PyObject, Int, PyObject, PyObject}, call = Ignored, retConversion = PythonToNativeNewRefNode.class, argConversions = { NativeToPythonNode.class, NativeToPythonNode.class, NativeToPythonNode.class, int.class, NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class GraalPyPrivate_Err_WarnExplicit extends CApi6BuiltinNode { @Specialization diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWeakrefBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWeakrefBuiltins.java index b3362f7dff..2b409d07ad 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWeakrefBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWeakrefBuiltins.java @@ -44,8 +44,6 @@ import static com.oracle.graal.python.annotations.ArgDescriptor.PYWEAKREFERENCE_PTR; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectPtr; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.annotations.ArgDescriptor.Void; import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct; import static com.oracle.graal.python.nodes.BuiltinNames.T_PROXY_TYPE; @@ -80,7 +78,7 @@ public final class PythonCextWeakrefBuiltins { - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, retConversion = PythonToNativeNewRefNode.class, argConversions = {NativeToPythonNode.class}) abstract static class GraalPyPrivate_GetManagedWeakRefs extends PythonCextBuiltins.CApiUnaryBuiltinNode { @Specialization static Object get(PythonAbstractObject object, @@ -91,12 +89,12 @@ static Object get(PythonAbstractObject object, } } - @CApiBuiltin(ret = Void, args = {PyObjectRawPointer}, call = Direct, acquireGil = false, canRaise = false, retConversion = void.class, argConversions = {long.class}) + @CApiBuiltin(ret = Void, args = {PyObject}, call = Direct, acquireGil = false, canRaise = false, retConversion = void.class, argConversions = {long.class}) public static void PyObject_ClearWeakRefs(long pyObject) { CApiTransitions.removeNativeWeakRef(PythonContext.get(null), pyObject); } - @CApiBuiltin(ret = PyObjectTransfer, args = {PyObject, PyObject}, call = Direct, acquireGil = false, canRaise = true, retConversion = PythonToNativeNewRefNode.class, argConversions = { + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Direct, acquireGil = false, canRaise = true, retConversion = PythonToNativeNewRefNode.class, argConversions = { NativeToPythonNode.class, NativeToPythonNode.class}) abstract static class PyWeakref_NewRef extends CApiBinaryBuiltinNode { @Specialization @@ -106,7 +104,7 @@ static Object refType(Object object, Object callback, } } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = Direct, acquireGil = false, canRaise = true, retConversion = long.class, argConversions = { + @CApiBuiltin(ret = PyObject, args = {PyObject, PyObject}, call = Direct, acquireGil = false, canRaise = true, retConversion = long.class, argConversions = { long.class, long.class}) public static long PyWeakref_NewProxy(long objectPtr, long callbackPtr) { PythonModule weakrefModule = PythonContext.get(null).lookupBuiltinModule(T__WEAKREF); @@ -121,7 +119,7 @@ public static long PyWeakref_NewProxy(long objectPtr, long callbackPtr) { return PythonToNativeInternalNode.executeNewRefUncached(proxy); } - @CApiBuiltin(ret = PyObjectRawPointer, args = {PyObjectRawPointer}, call = Direct, acquireGil = false, retConversion = long.class, argConversions = {long.class}) + @CApiBuiltin(ret = PyObject, args = {PyObject}, call = Direct, acquireGil = false, retConversion = long.class, argConversions = {long.class}) public static long PyWeakref_GetObject(long referencePtr) { Object reference = NativeToPythonInternalNode.executeUncached(referencePtr, false); if (reference instanceof PReferenceType ref) { @@ -140,7 +138,7 @@ public static long PyWeakref_GetObject(long referencePtr) { return PythonContext.get(null).getCApiContext().getNonePtr(); } - @CApiBuiltin(ret = Int, args = {PyObjectRawPointer, PyObjectPtr}, call = Direct, acquireGil = false, retConversion = int.class, argConversions = {long.class, long.class}) + @CApiBuiltin(ret = Int, args = {PyObject, PyObjectPtr}, call = Direct, acquireGil = false, retConversion = int.class, argConversions = {long.class, long.class}) public static int PyWeakref_GetRef(long referencePtr, long resultPtr) { long result = NULLPTR; try { @@ -176,7 +174,7 @@ public static void PyWeakref_ClearRef(long referencePtr) { } } - @CApiBuiltin(name = "_PyWeakref_IsDead", ret = Int, args = {PyObjectRawPointer}, call = Direct, acquireGil = false, canRaise = false, retConversion = int.class, argConversions = {long.class}) + @CApiBuiltin(name = "_PyWeakref_IsDead", ret = Int, args = {PyObject}, call = Direct, acquireGil = false, canRaise = false, retConversion = int.class, argConversions = {long.class}) public static int PyWeakref_IsDead(long referencePtr) { PReferenceType reference = (PReferenceType) NativeToPythonInternalNode.executeUncached(referencePtr, false); return reference.getObject() == null ? 1 : 0; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/CApiFunction.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/CApiFunction.java index 39e19f958f..309f75d45b 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/CApiFunction.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/CApiFunction.java @@ -55,7 +55,6 @@ import static com.oracle.graal.python.annotations.ArgDescriptor.CONST_VOID_PTR; import static com.oracle.graal.python.annotations.ArgDescriptor.CONST_WCHAR_PTR; import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; -import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtrAsTruffleString; import static com.oracle.graal.python.annotations.ArgDescriptor.ConstPyInterpreterConfig; import static com.oracle.graal.python.annotations.ArgDescriptor.ConstPyLongObject; import static com.oracle.graal.python.annotations.ArgDescriptor.DIGIT_PTR; @@ -111,16 +110,11 @@ import static com.oracle.graal.python.annotations.ArgDescriptor.PY_UCS4; import static com.oracle.graal.python.annotations.ArgDescriptor.PY_UCS4_PTR; import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; -import static com.oracle.graal.python.annotations.ArgDescriptor.PrimitiveResult32; -import static com.oracle.graal.python.annotations.ArgDescriptor.PrimitiveResult64; import static com.oracle.graal.python.annotations.ArgDescriptor.PyCodeAddressRange; import static com.oracle.graal.python.annotations.ArgDescriptor.PyCodeObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyCodeObjectRawPointer; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyCodeObjectTransfer; import static com.oracle.graal.python.annotations.ArgDescriptor.PyCode_WatchCallback; import static com.oracle.graal.python.annotations.ArgDescriptor.PyDict_WatchCallback; import static com.oracle.graal.python.annotations.ArgDescriptor.PyFrameObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyFrameObjectBorrowed; import static com.oracle.graal.python.annotations.ArgDescriptor.PyFunctionObject; import static com.oracle.graal.python.annotations.ArgDescriptor.PyFunction_WatchCallback; import static com.oracle.graal.python.annotations.ArgDescriptor.PyGetSetDef; @@ -130,19 +124,13 @@ import static com.oracle.graal.python.annotations.ArgDescriptor.PyMethodDef; import static com.oracle.graal.python.annotations.ArgDescriptor.PyModuleDef; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectBorrowed; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectConstPtr; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectPtr; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectRawPointer; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectReturn; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.annotations.ArgDescriptor.PySendResult; import static com.oracle.graal.python.annotations.ArgDescriptor.PySliceObject; import static com.oracle.graal.python.annotations.ArgDescriptor.PyThreadState; import static com.oracle.graal.python.annotations.ArgDescriptor.PyThreadStatePtr; import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObject; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObjectRawPointer; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObjectTransfer; import static com.oracle.graal.python.annotations.ArgDescriptor.PyType_WatchCallback; import static com.oracle.graal.python.annotations.ArgDescriptor.PyVarObject; import static com.oracle.graal.python.annotations.ArgDescriptor.Py_hash_t; @@ -161,7 +149,6 @@ import static com.oracle.graal.python.annotations.ArgDescriptor.VA_LIST; import static com.oracle.graal.python.annotations.ArgDescriptor.VOID_PTR_LIST; import static com.oracle.graal.python.annotations.ArgDescriptor.Void; -import static com.oracle.graal.python.annotations.ArgDescriptor.VoidNoReturn; import static com.oracle.graal.python.annotations.ArgDescriptor.WCHAR_T_CONST_PTR; import static com.oracle.graal.python.annotations.ArgDescriptor.WCHAR_T_PTR; import static com.oracle.graal.python.annotations.ArgDescriptor.WCHAR_T_PTR_LIST; @@ -199,12 +186,12 @@ public final class CApiFunction { @CApiBuiltin(name = "PyGILState_Check", ret = Int, args = {}, acquireGil = false, call = CImpl) - @CApiBuiltin(name = "PyArg_Parse", ret = Int, args = {PyObject, ConstCharPtrAsTruffleString, VARARGS}, call = CImpl) - @CApiBuiltin(name = "PyArg_ParseTuple", ret = Int, args = {PyObject, ConstCharPtrAsTruffleString, VARARGS}, call = CImpl) - @CApiBuiltin(name = "PyArg_ParseTupleAndKeywords", ret = Int, args = {PyObject, PyObject, ConstCharPtrAsTruffleString, CHAR_CONST_PTR, VARARGS}, call = CImpl) - @CApiBuiltin(name = "PyArg_UnpackTuple", ret = Int, args = {PyObject, ConstCharPtrAsTruffleString, Py_ssize_t, Py_ssize_t, VARARGS}, call = CImpl) - @CApiBuiltin(name = "PyArg_VaParse", ret = Int, args = {PyObject, ConstCharPtrAsTruffleString, VA_LIST}, call = CImpl) - @CApiBuiltin(name = "PyArg_VaParseTupleAndKeywords", ret = Int, args = {PyObject, PyObject, ConstCharPtrAsTruffleString, CHAR_CONST_PTR, VA_LIST}, call = CImpl) + @CApiBuiltin(name = "PyArg_Parse", ret = Int, args = {PyObject, ConstCharPtr, VARARGS}, call = CImpl) + @CApiBuiltin(name = "PyArg_ParseTuple", ret = Int, args = {PyObject, ConstCharPtr, VARARGS}, call = CImpl) + @CApiBuiltin(name = "PyArg_ParseTupleAndKeywords", ret = Int, args = {PyObject, PyObject, ConstCharPtr, CHAR_CONST_PTR, VARARGS}, call = CImpl) + @CApiBuiltin(name = "PyArg_UnpackTuple", ret = Int, args = {PyObject, ConstCharPtr, Py_ssize_t, Py_ssize_t, VARARGS}, call = CImpl) + @CApiBuiltin(name = "PyArg_VaParse", ret = Int, args = {PyObject, ConstCharPtr, VA_LIST}, call = CImpl) + @CApiBuiltin(name = "PyArg_VaParseTupleAndKeywords", ret = Int, args = {PyObject, PyObject, ConstCharPtr, CHAR_CONST_PTR, VA_LIST}, call = CImpl) @CApiBuiltin(name = "PyArg_ValidateKeywordArguments", ret = Int, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyBool_FromLong", ret = PyObject, args = {Long}, call = CImpl) @CApiBuiltin(name = "PyBuffer_FillContiguousStrides", ret = Void, args = {Int, PY_SSIZE_T_PTR, PY_SSIZE_T_PTR, Int, CHAR}, call = CImpl) @@ -213,24 +200,24 @@ public final class CApiFunction { @CApiBuiltin(name = "PyBuffer_GetPointer", ret = Pointer, args = {CONST_PY_BUFFER_PTR, CONST_PY_SSIZE_T_PTR}, call = CImpl) @CApiBuiltin(name = "PyBuffer_IsContiguous", ret = Int, args = {CONST_PY_BUFFER, CHAR}, call = CImpl) @CApiBuiltin(name = "PyBuffer_Release", ret = Void, args = {PY_BUFFER_PTR}, call = CImpl) - @CApiBuiltin(name = "PyBuffer_SizeFromFormat", ret = Py_ssize_t, args = {ConstCharPtrAsTruffleString}, call = CImpl) + @CApiBuiltin(name = "PyBuffer_SizeFromFormat", ret = Py_ssize_t, args = {ConstCharPtr}, call = CImpl) @CApiBuiltin(name = "PyBuffer_ToContiguous", ret = Int, args = {Pointer, CONST_PY_BUFFER_PTR, Py_ssize_t, CHAR}, call = CImpl) - @CApiBuiltin(name = "PyByteArray_FromStringAndSize", ret = PyObject, args = {ConstCharPtrAsTruffleString, Py_ssize_t}, call = CImpl) + @CApiBuiltin(name = "PyByteArray_FromStringAndSize", ret = PyObject, args = {ConstCharPtr, Py_ssize_t}, call = CImpl) @CApiBuiltin(name = "PyByteArray_Size", ret = Py_ssize_t, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyBytes_AsStringAndSize", ret = Int, args = {PyObject, CHAR_PTR_LIST, PY_SSIZE_T_PTR}, call = CImpl) @CApiBuiltin(name = "PyBytes_Concat", ret = Void, args = {PyObjectPtr, PyObject}, call = CImpl) @CApiBuiltin(name = "PyBytes_ConcatAndDel", ret = Void, args = {PyObjectPtr, PyObject}, call = CImpl) - @CApiBuiltin(name = "PyBytes_FromFormat", ret = PyObject, args = {ConstCharPtrAsTruffleString, VARARGS}, call = CImpl) - @CApiBuiltin(name = "PyBytes_FromFormatV", ret = PyObject, args = {ConstCharPtrAsTruffleString, VA_LIST}, call = CImpl) - @CApiBuiltin(name = "PyBytes_FromString", ret = PyObject, args = {ConstCharPtrAsTruffleString}, call = CImpl) - @CApiBuiltin(name = "PyBytes_FromStringAndSize", ret = PyObjectTransfer, args = {ConstCharPtr, Py_ssize_t}, call = CImpl) + @CApiBuiltin(name = "PyBytes_FromFormat", ret = PyObject, args = {ConstCharPtr, VARARGS}, call = CImpl) + @CApiBuiltin(name = "PyBytes_FromFormatV", ret = PyObject, args = {ConstCharPtr, VA_LIST}, call = CImpl) + @CApiBuiltin(name = "PyBytes_FromString", ret = PyObject, args = {ConstCharPtr}, call = CImpl) + @CApiBuiltin(name = "PyBytes_FromStringAndSize", ret = PyObject, args = {ConstCharPtr, Py_ssize_t}, call = CImpl) @CApiBuiltin(name = "PyCFunction_GetFlags", ret = Int, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyCFunction_GetFunction", ret = PY_C_FUNCTION, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyCFunction_GetSelf", ret = PyObject, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyCFunction_New", ret = PyObject, args = {PyMethodDef, PyObject}, call = CImpl) @CApiBuiltin(name = "PyCFunction_NewEx", ret = PyObject, args = {PyMethodDef, PyObject, PyObject}, call = CImpl) @CApiBuiltin(name = "PyCMethod_New", ret = PyObject, args = {PyMethodDef, PyObject, PyObject, PyTypeObject}, call = CImpl) - @CApiBuiltin(name = "PyCallable_Check", ret = PrimitiveResult32, args = {PyObjectReturn}, call = CImpl) + @CApiBuiltin(name = "PyCallable_Check", ret = Int, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyUnstable_Code_New", ret = PyCodeObject, args = {Int, Int, Int, Int, Int, PyObject, PyObject, PyObject, PyObject, PyObject, PyObject, PyObject, PyObject, PyObject, Int, PyObject, PyObject}, call = CImpl) @CApiBuiltin(name = "PyCodec_StrictErrors", ret = PyObject, args = {PyObject}, call = CImpl) @@ -242,7 +229,7 @@ public final class CApiFunction { @CApiBuiltin(name = "PyDescr_IsData", ret = Int, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyDescr_NewClassMethod", ret = PyObject, args = {PyTypeObject, PyMethodDef}, call = CImpl) @CApiBuiltin(name = "PyDescr_NewGetSet", ret = PyObject, args = {PyTypeObject, PyGetSetDef}, call = CImpl) - @CApiBuiltin(name = "PyDict_GetItemString", ret = PyObjectReturn, args = {PyObjectReturn, ConstCharPtr}, call = CImpl) + @CApiBuiltin(name = "PyDict_GetItemString", ret = PyObject, args = {PyObject, ConstCharPtr}, call = CImpl) @CApiBuiltin(name = "PyDict_Next", ret = Int, args = {PyObject, PY_SSIZE_T_PTR, PyObjectPtr, PyObjectPtr}, call = CImpl) @CApiBuiltin(name = "PyDict_Size", ret = Py_ssize_t, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyErr_BadArgument", ret = Int, args = {}, call = CImpl) @@ -251,50 +238,50 @@ public final class CApiFunction { @CApiBuiltin(name = "PyErr_Clear", ret = Void, args = {}, call = CImpl) @CApiBuiltin(name = "PyErr_ExceptionMatches", ret = Int, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyErr_Fetch", ret = Void, args = {PyObjectPtr, PyObjectPtr, PyObjectPtr}, call = CImpl) - @CApiBuiltin(name = "PyErr_Format", ret = PyObject, args = {PyObject, ConstCharPtrAsTruffleString, VARARGS}, call = CImpl) - @CApiBuiltin(name = "PyErr_FormatV", ret = PyObject, args = {PyObject, ConstCharPtrAsTruffleString, VA_LIST}, call = CImpl) + @CApiBuiltin(name = "PyErr_Format", ret = PyObject, args = {PyObject, ConstCharPtr, VARARGS}, call = CImpl) + @CApiBuiltin(name = "PyErr_FormatV", ret = PyObject, args = {PyObject, ConstCharPtr, VA_LIST}, call = CImpl) @CApiBuiltin(name = "PyErr_GetExcInfo", ret = Void, args = {PyObjectPtr, PyObjectPtr, PyObjectPtr}, call = CImpl) @CApiBuiltin(name = "PyErr_GetHandledException", ret = PyObject, args = {}, call = CImpl) @CApiBuiltin(name = "PyErr_GivenExceptionMatches", ret = Int, args = {PyObject, PyObject}, call = CImpl) @CApiBuiltin(name = "PyErr_NoMemory", ret = PyObject, args = {}, call = CImpl) @CApiBuiltin(name = "PyErr_NormalizeException", ret = Void, args = {PyObjectPtr, PyObjectPtr, PyObjectPtr}, call = CImpl) - @CApiBuiltin(name = "PyErr_Occurred", ret = PyObjectBorrowed, args = {}, call = CImpl) + @CApiBuiltin(name = "PyErr_Occurred", ret = PyObject, args = {}, call = CImpl) @CApiBuiltin(name = "PyErr_Print", ret = Void, args = {}, call = CImpl) - @CApiBuiltin(name = "PyErr_ResourceWarning", ret = Int, args = {PyObject, Py_ssize_t, ConstCharPtrAsTruffleString, VARARGS}, call = CImpl) + @CApiBuiltin(name = "PyErr_ResourceWarning", ret = Int, args = {PyObject, Py_ssize_t, ConstCharPtr, VARARGS}, call = CImpl) @CApiBuiltin(name = "PyErr_Restore", ret = Void, args = {PyObject, PyObject, PyObject}, call = CImpl) @CApiBuiltin(name = "PyErr_SetExcInfo", ret = Void, args = {PyObject, PyObject, PyObject}, call = CImpl) @CApiBuiltin(name = "PyErr_SetFromErrno", ret = PyObject, args = {PyObject}, call = CImpl) - @CApiBuiltin(name = "PyErr_SetFromErrnoWithFilename", ret = PyObject, args = {PyObject, ConstCharPtrAsTruffleString}, call = CImpl) + @CApiBuiltin(name = "PyErr_SetFromErrnoWithFilename", ret = PyObject, args = {PyObject, ConstCharPtr}, call = CImpl) @CApiBuiltin(name = "PyErr_SetFromErrnoWithFilenameObject", ret = PyObject, args = {PyObject, PyObject}, call = CImpl) @CApiBuiltin(name = "PyErr_SetFromErrnoWithFilenameObjects", ret = PyObject, args = {PyObject, PyObject, PyObject}, call = CImpl) @CApiBuiltin(name = "PyErr_SetHandledException", ret = Void, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyErr_SetNone", ret = Void, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyErr_SetObject", ret = Void, args = {PyObject, PyObject}, call = CImpl) - @CApiBuiltin(name = "PyErr_SetString", ret = Void, args = {PyObject, ConstCharPtrAsTruffleString}, call = CImpl) - @CApiBuiltin(name = "PyErr_WarnEx", ret = Int, args = {PyObject, ConstCharPtrAsTruffleString, Py_ssize_t}, call = CImpl) - @CApiBuiltin(name = "PyErr_WarnExplicit", ret = Int, args = {PyObject, ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString, Int, ConstCharPtrAsTruffleString, PyObject}, call = CImpl) - @CApiBuiltin(name = "PyErr_WarnExplicit", ret = Int, args = {PyObject, ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString, Int, ConstCharPtrAsTruffleString, PyObject}, call = CImpl) - @CApiBuiltin(name = "PyErr_WarnExplicitFormat", ret = Int, args = {PyObject, ConstCharPtrAsTruffleString, Int, ConstCharPtrAsTruffleString, PyObject, ConstCharPtrAsTruffleString, + @CApiBuiltin(name = "PyErr_SetString", ret = Void, args = {PyObject, ConstCharPtr}, call = CImpl) + @CApiBuiltin(name = "PyErr_WarnEx", ret = Int, args = {PyObject, ConstCharPtr, Py_ssize_t}, call = CImpl) + @CApiBuiltin(name = "PyErr_WarnExplicit", ret = Int, args = {PyObject, ConstCharPtr, ConstCharPtr, Int, ConstCharPtr, PyObject}, call = CImpl) + @CApiBuiltin(name = "PyErr_WarnExplicit", ret = Int, args = {PyObject, ConstCharPtr, ConstCharPtr, Int, ConstCharPtr, PyObject}, call = CImpl) + @CApiBuiltin(name = "PyErr_WarnExplicitFormat", ret = Int, args = {PyObject, ConstCharPtr, Int, ConstCharPtr, PyObject, ConstCharPtr, VARARGS}, call = CImpl) - @CApiBuiltin(name = "PyErr_WarnExplicitFormat", ret = Int, args = {PyObject, ConstCharPtrAsTruffleString, Int, ConstCharPtrAsTruffleString, PyObject, ConstCharPtrAsTruffleString, + @CApiBuiltin(name = "PyErr_WarnExplicitFormat", ret = Int, args = {PyObject, ConstCharPtr, Int, ConstCharPtr, PyObject, ConstCharPtr, VARARGS}, call = CImpl) @CApiBuiltin(name = "PyErr_WarnExplicitObject", ret = Int, args = {PyObject, PyObject, PyObject, Int, PyObject, PyObject}, call = CImpl) @CApiBuiltin(name = "PyErr_WarnExplicitObject", ret = Int, args = {PyObject, PyObject, PyObject, Int, PyObject, PyObject}, call = CImpl) - @CApiBuiltin(name = "PyErr_WarnFormat", ret = Int, args = {PyObject, Py_ssize_t, ConstCharPtrAsTruffleString, VARARGS}, call = CImpl) + @CApiBuiltin(name = "PyErr_WarnFormat", ret = Int, args = {PyObject, Py_ssize_t, ConstCharPtr, VARARGS}, call = CImpl) @CApiBuiltin(name = "PyEval_EvalCode", ret = PyObject, args = {PyObject, PyObject, PyObject}, call = CImpl) @CApiBuiltin(name = "PyEval_EvalCodeEx", ret = PyObject, args = {PyObject, PyObject, PyObject, PyObjectConstPtr, Int, PyObjectConstPtr, Int, PyObjectConstPtr, Int, PyObject, PyObject}, call = CImpl) @CApiBuiltin(name = "PyEval_InitThreads", ret = Void, args = {}, call = CImpl) @CApiBuiltin(name = "PyEval_MergeCompilerFlags", ret = Int, args = {PY_COMPILER_FLAGS}, call = CImpl) - @CApiBuiltin(name = "PyFile_WriteString", ret = Int, args = {ConstCharPtrAsTruffleString, PyObject}, call = CImpl) - @CApiBuiltin(name = "PyFloat_FromDouble", ret = PyObjectTransfer, args = {ArgDescriptor.Double}, call = CImpl) + @CApiBuiltin(name = "PyFile_WriteString", ret = Int, args = {ConstCharPtr, PyObject}, call = CImpl) + @CApiBuiltin(name = "PyFloat_FromDouble", ret = PyObject, args = {ArgDescriptor.Double}, call = CImpl) @CApiBuiltin(name = "PyFloat_AsDouble", ret = ArgDescriptor.Double, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyFloat_Pack2", ret = Int, args = {Double, CHAR_PTR, Int}, call = CImpl) @CApiBuiltin(name = "PyFloat_Pack4", ret = Int, args = {Double, CHAR_PTR, Int}, call = CImpl) @CApiBuiltin(name = "PyFloat_Pack8", ret = Int, args = {Double, CHAR_PTR, Int}, call = CImpl) - @CApiBuiltin(name = "PyFloat_Unpack2", ret = Double, args = {ConstCharPtrAsTruffleString, Int}, call = CImpl) - @CApiBuiltin(name = "PyFloat_Unpack4", ret = Double, args = {ConstCharPtrAsTruffleString, Int}, call = CImpl) - @CApiBuiltin(name = "PyFloat_Unpack8", ret = Double, args = {ConstCharPtrAsTruffleString, Int}, call = CImpl) + @CApiBuiltin(name = "PyFloat_Unpack2", ret = Double, args = {ConstCharPtr, Int}, call = CImpl) + @CApiBuiltin(name = "PyFloat_Unpack4", ret = Double, args = {ConstCharPtr, Int}, call = CImpl) + @CApiBuiltin(name = "PyFloat_Unpack8", ret = Double, args = {ConstCharPtr, Int}, call = CImpl) @CApiBuiltin(name = "PyGC_Collect", ret = Py_ssize_t, args = {}, call = CImpl) @CApiBuiltin(name = "PyGC_Disable", ret = Int, args = {}, call = CImpl) @CApiBuiltin(name = "PyGC_Enable", ret = Int, args = {}, call = CImpl) @@ -304,9 +291,9 @@ public final class CApiFunction { @CApiBuiltin(name = "PyGILState_Release", ret = Void, args = {PY_GIL_STATE_STATE}, acquireGil = false, call = CImpl) @CApiBuiltin(name = "PyGen_New", ret = PyObject, args = {PyFrameObject}, call = CImpl) @CApiBuiltin(name = "PyGen_NewWithQualName", ret = PyObject, args = {PyFrameObject, PyObject, PyObject}, call = CImpl) - @CApiBuiltin(name = "PyImport_AddModule", ret = PyObject, args = {ConstCharPtrAsTruffleString}, call = CImpl) + @CApiBuiltin(name = "PyImport_AddModule", ret = PyObject, args = {ConstCharPtr}, call = CImpl) @CApiBuiltin(name = "PyImport_AddModuleObject", ret = PyObject, args = {PyObject}, call = CImpl) - @CApiBuiltin(name = "PyImport_ImportModuleLevel", ret = PyObject, args = {ConstCharPtrAsTruffleString, PyObject, PyObject, PyObject, Int}, call = CImpl) + @CApiBuiltin(name = "PyImport_ImportModuleLevel", ret = PyObject, args = {ConstCharPtr, PyObject, PyObject, PyObject, Int}, call = CImpl) @CApiBuiltin(name = "PyIndex_Check", ret = Int, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyInstanceMethod_Function", ret = PyObject, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyInterpreterState_GetDict", ret = PyObject, args = {PyInterpreterState}, call = CImpl) @@ -314,9 +301,9 @@ public final class CApiFunction { @CApiBuiltin(name = "PyInterpreterState_Main", ret = PyInterpreterState, args = {}, call = CImpl) @CApiBuiltin(name = "PyIter_Check", ret = Int, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyIter_Send", ret = PySendResult, args = {PyObject, PyObject, PyObjectPtr}, call = CImpl) - @CApiBuiltin(name = "PyList_SetItem", ret = Int, args = {PyObject, Py_ssize_t, PyObjectTransfer}, call = CImpl) + @CApiBuiltin(name = "PyList_SetItem", ret = Int, args = {PyObject, Py_ssize_t, PyObject}, call = CImpl) @CApiBuiltin(name = "PyLong_AsDouble", ret = Double, args = {PyObject}, call = CImpl) - @CApiBuiltin(name = "PyLong_AsInt", ret = PrimitiveResult32, args = {PyObjectReturn}, call = CImpl) + @CApiBuiltin(name = "PyLong_AsInt", ret = Int, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyLong_AsLong", ret = Long, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyLong_AsLongAndOverflow", ret = Long, args = {PyObject, INT_LIST}, call = CImpl) @CApiBuiltin(name = "PyLong_AsLongLong", ret = LONG_LONG, args = {PyObject}, call = CImpl) @@ -331,25 +318,25 @@ public final class CApiFunction { @CApiBuiltin(name = "PyUnstable_Long_IsCompact", ret = Int, args = {ConstPyLongObject}, call = CImpl) @CApiBuiltin(name = "_PyLong_NumBits", ret = SIZE_T, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "_PyLong_Sign", ret = Int, args = {PyObject}, call = CImpl) - @CApiBuiltin(name = "PyLong_FromString", ret = PyObject, args = {ConstCharPtrAsTruffleString, CHAR_PTR_LIST, Int}, call = CImpl) - @CApiBuiltin(name = "PyLong_FromDouble", ret = PyObjectTransfer, args = {ArgDescriptor.Double}, call = CImpl) - @CApiBuiltin(name = "PyLong_FromLong", ret = PyObjectTransfer, args = {ArgDescriptor.Long}, call = CImpl) - @CApiBuiltin(name = "PyLong_FromLongLong", ret = PyObjectTransfer, args = {LONG_LONG}, call = CImpl) - @CApiBuiltin(name = "PyLong_FromSize_t", ret = PyObjectTransfer, args = {SIZE_T}, call = CImpl) - @CApiBuiltin(name = "PyLong_FromSsize_t", ret = PyObjectTransfer, args = {Py_ssize_t}, call = CImpl) - @CApiBuiltin(name = "PyLong_FromUnsignedLong", ret = PyObjectTransfer, args = {UNSIGNED_LONG}, call = CImpl) - @CApiBuiltin(name = "PyLong_FromUnsignedLongLong", ret = PyObjectTransfer, args = {UNSIGNED_LONG_LONG}, call = CImpl) + @CApiBuiltin(name = "PyLong_FromString", ret = PyObject, args = {ConstCharPtr, CHAR_PTR_LIST, Int}, call = CImpl) + @CApiBuiltin(name = "PyLong_FromDouble", ret = PyObject, args = {ArgDescriptor.Double}, call = CImpl) + @CApiBuiltin(name = "PyLong_FromLong", ret = PyObject, args = {ArgDescriptor.Long}, call = CImpl) + @CApiBuiltin(name = "PyLong_FromLongLong", ret = PyObject, args = {LONG_LONG}, call = CImpl) + @CApiBuiltin(name = "PyLong_FromSize_t", ret = PyObject, args = {SIZE_T}, call = CImpl) + @CApiBuiltin(name = "PyLong_FromSsize_t", ret = PyObject, args = {Py_ssize_t}, call = CImpl) + @CApiBuiltin(name = "PyLong_FromUnsignedLong", ret = PyObject, args = {UNSIGNED_LONG}, call = CImpl) + @CApiBuiltin(name = "PyLong_FromUnsignedLongLong", ret = PyObject, args = {UNSIGNED_LONG_LONG}, call = CImpl) @CApiBuiltin(name = "PyLong_FromVoidPtr", ret = PyObject, args = {Pointer}, call = CImpl) @CApiBuiltin(name = "PyMapping_Check", ret = Int, args = {PyObject}, call = CImpl) - @CApiBuiltin(name = "PyMapping_GetItemString", ret = PyObject, args = {PyObject, ConstCharPtrAsTruffleString}, call = CImpl) - @CApiBuiltin(name = "PyMapping_GetOptionalItem", ret = PrimitiveResult32, args = {PyObjectReturn, PyObjectReturn, PyObjectPtr}, call = CImpl) - @CApiBuiltin(name = "PyMapping_GetOptionalItemString", ret = PrimitiveResult32, args = {PyObjectReturn, ConstCharPtr, PyObjectPtr}, call = CImpl) + @CApiBuiltin(name = "PyMapping_GetItemString", ret = PyObject, args = {PyObject, ConstCharPtr}, call = CImpl) + @CApiBuiltin(name = "PyMapping_GetOptionalItem", ret = Int, args = {PyObject, PyObject, PyObjectPtr}, call = CImpl) + @CApiBuiltin(name = "PyMapping_GetOptionalItemString", ret = Int, args = {PyObject, ConstCharPtr, PyObjectPtr}, call = CImpl) @CApiBuiltin(name = "PyMapping_HasKey", ret = Int, args = {PyObject, PyObject}, call = CImpl) - @CApiBuiltin(name = "PyMapping_HasKeyString", ret = Int, args = {PyObject, ConstCharPtrAsTruffleString}, call = CImpl) - @CApiBuiltin(name = "PyMapping_HasKeyStringWithError", ret = PrimitiveResult32, args = {PyObjectReturn, ConstCharPtr}, call = CImpl) - @CApiBuiltin(name = "PyMapping_HasKeyWithError", ret = PrimitiveResult32, args = {PyObjectReturn, PyObjectReturn}, call = CImpl) + @CApiBuiltin(name = "PyMapping_HasKeyString", ret = Int, args = {PyObject, ConstCharPtr}, call = CImpl) + @CApiBuiltin(name = "PyMapping_HasKeyStringWithError", ret = Int, args = {PyObject, ConstCharPtr}, call = CImpl) + @CApiBuiltin(name = "PyMapping_HasKeyWithError", ret = Int, args = {PyObject, PyObject}, call = CImpl) @CApiBuiltin(name = "PyMapping_Length", ret = Py_ssize_t, args = {PyObject}, call = CImpl) - @CApiBuiltin(name = "PyMapping_SetItemString", ret = Int, args = {PyObject, ConstCharPtrAsTruffleString, PyObject}, call = CImpl) + @CApiBuiltin(name = "PyMapping_SetItemString", ret = Int, args = {PyObject, ConstCharPtr, PyObject}, call = CImpl) @CApiBuiltin(name = "PyMapping_Size", ret = Py_ssize_t, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyMem_Calloc", ret = Pointer, args = {SIZE_T, SIZE_T}, call = CImpl) @CApiBuiltin(name = "PyMem_Free", ret = Void, args = {Pointer}, call = CImpl) @@ -363,10 +350,10 @@ public final class CApiFunction { @CApiBuiltin(name = "PyMemoryView_FromMemory", ret = PyObject, args = {CHAR_PTR, Py_ssize_t, Int}, call = CImpl) @CApiBuiltin(name = "PyMethod_Function", ret = PyObject, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyMethod_Self", ret = PyObject, args = {PyObject}, call = CImpl) - @CApiBuiltin(name = "PyModule_Add", ret = PrimitiveResult32, args = {PyObjectReturn, ConstCharPtr, PyObjectReturn}, call = CImpl) + @CApiBuiltin(name = "PyModule_Add", ret = Int, args = {PyObject, ConstCharPtr, PyObject}, call = CImpl) @CApiBuiltin(name = "PyModule_AddFunctions", ret = Int, args = {PyObject, PyMethodDef}, call = CImpl) - @CApiBuiltin(name = "PyModule_AddObject", ret = Int, args = {PyObject, ConstCharPtrAsTruffleString, PyObject}, call = CImpl) - @CApiBuiltin(name = "PyModule_AddStringConstant", ret = Int, args = {PyObject, ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString}, call = CImpl) + @CApiBuiltin(name = "PyModule_AddObject", ret = Int, args = {PyObject, ConstCharPtr, PyObject}, call = CImpl) + @CApiBuiltin(name = "PyModule_AddStringConstant", ret = Int, args = {PyObject, ConstCharPtr, ConstCharPtr}, call = CImpl) @CApiBuiltin(name = "PyModule_AddType", ret = Int, args = {PyObject, PyTypeObject}, call = CImpl) @CApiBuiltin(name = "PyModuleDef_Init", ret = PyObject, args = {PYMODULEDEF_PTR}, call = CImpl) @CApiBuiltin(name = "PyModule_Create2", ret = PyObject, args = {PYMODULEDEF_PTR, Int}, call = CImpl) @@ -374,8 +361,8 @@ public final class CApiFunction { @CApiBuiltin(name = "PyModule_ExecDef", ret = Int, args = {PyObject, PyModuleDef}, call = CImpl) @CApiBuiltin(name = "PyModule_GetDef", ret = PyModuleDef, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyModule_GetDict", ret = PyObject, args = {PyObject}, call = CImpl) - @CApiBuiltin(name = "PyModule_GetFilename", ret = ConstCharPtrAsTruffleString, args = {PyObject}, call = CImpl) - @CApiBuiltin(name = "PyModule_GetName", ret = ConstCharPtrAsTruffleString, args = {PyObject}, call = CImpl) + @CApiBuiltin(name = "PyModule_GetFilename", ret = ConstCharPtr, args = {PyObject}, call = CImpl) + @CApiBuiltin(name = "PyModule_GetName", ret = ConstCharPtr, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyModule_GetState", ret = Pointer, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyNumber_Absolute", ret = PyObject, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyNumber_Add", ret = PyObject, args = {PyObject, PyObject}, call = CImpl) @@ -414,50 +401,50 @@ public final class CApiFunction { @CApiBuiltin(name = "PyNumber_TrueDivide", ret = PyObject, args = {PyObject, PyObject}, call = CImpl) @CApiBuiltin(name = "PyNumber_Xor", ret = PyObject, args = {PyObject, PyObject}, call = CImpl) @CApiBuiltin(name = "PyOS_double_to_string", ret = CHAR_PTR, args = {Double, CHAR, Int, Int, INT_LIST}, call = CImpl) - @CApiBuiltin(name = "PyOS_mystricmp", ret = Int, args = {ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString}, call = CImpl) - @CApiBuiltin(name = "PyOS_mystrnicmp", ret = Int, args = {ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString, Py_ssize_t}, call = CImpl) - @CApiBuiltin(name = "PyOS_snprintf", ret = Int, args = {CHAR_PTR, SIZE_T, ConstCharPtrAsTruffleString, VARARGS}, call = CImpl) - @CApiBuiltin(name = "PyOS_string_to_double", ret = Double, args = {ConstCharPtrAsTruffleString, CHAR_PTR_LIST, PyObject}, call = CImpl) - @CApiBuiltin(name = "PyOS_strtol", ret = Long, args = {ConstCharPtrAsTruffleString, CHAR_PTR_LIST, Int}, call = CImpl) - @CApiBuiltin(name = "PyOS_strtoul", ret = UNSIGNED_LONG, args = {ConstCharPtrAsTruffleString, CHAR_PTR_LIST, Int}, call = CImpl) - @CApiBuiltin(name = "PyOS_vsnprintf", ret = Int, args = {CHAR_PTR, SIZE_T, ConstCharPtrAsTruffleString, VA_LIST}, call = CImpl) + @CApiBuiltin(name = "PyOS_mystricmp", ret = Int, args = {ConstCharPtr, ConstCharPtr}, call = CImpl) + @CApiBuiltin(name = "PyOS_mystrnicmp", ret = Int, args = {ConstCharPtr, ConstCharPtr, Py_ssize_t}, call = CImpl) + @CApiBuiltin(name = "PyOS_snprintf", ret = Int, args = {CHAR_PTR, SIZE_T, ConstCharPtr, VARARGS}, call = CImpl) + @CApiBuiltin(name = "PyOS_string_to_double", ret = Double, args = {ConstCharPtr, CHAR_PTR_LIST, PyObject}, call = CImpl) + @CApiBuiltin(name = "PyOS_strtol", ret = Long, args = {ConstCharPtr, CHAR_PTR_LIST, Int}, call = CImpl) + @CApiBuiltin(name = "PyOS_strtoul", ret = UNSIGNED_LONG, args = {ConstCharPtr, CHAR_PTR_LIST, Int}, call = CImpl) + @CApiBuiltin(name = "PyOS_vsnprintf", ret = Int, args = {CHAR_PTR, SIZE_T, ConstCharPtr, VA_LIST}, call = CImpl) @CApiBuiltin(name = "PyObject_Call", ret = PyObject, args = {PyObject, PyObject, PyObject}, call = CImpl) @CApiBuiltin(name = "PyObject_Calloc", ret = Pointer, args = {SIZE_T, SIZE_T}, call = CImpl) - @CApiBuiltin(name = "PyObject_CallFunction", ret = PyObject, args = {PyObject, ConstCharPtrAsTruffleString, VARARGS}, call = CImpl) + @CApiBuiltin(name = "PyObject_CallFunction", ret = PyObject, args = {PyObject, ConstCharPtr, VARARGS}, call = CImpl) @CApiBuiltin(name = "PyObject_CallFunctionObjArgs", ret = PyObject, args = {PyObject, VARARGS}, call = CImpl) - @CApiBuiltin(name = "PyObject_CallMethod", ret = PyObject, args = {PyObject, ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString, VARARGS}, call = CImpl) + @CApiBuiltin(name = "PyObject_CallMethod", ret = PyObject, args = {PyObject, ConstCharPtr, ConstCharPtr, VARARGS}, call = CImpl) @CApiBuiltin(name = "PyObject_CallMethodObjArgs", ret = PyObject, args = {PyObject, PyObject, VARARGS}, call = CImpl) @CApiBuiltin(name = "PyObject_CallNoArgs", ret = PyObject, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyObject_CallObject", ret = PyObject, args = {PyObject, PyObject}, call = CImpl) @CApiBuiltin(name = "PyObject_CallOneArg", ret = PyObject, args = {PyObject, PyObject}, call = CImpl) @CApiBuiltin(name = "PyObject_CheckBuffer", ret = Int, args = {PyObject}, call = CImpl) - @CApiBuiltin(name = "PyObject_ClearManagedDict", ret = Void, args = {PyObjectReturn}, call = CImpl) + @CApiBuiltin(name = "PyObject_ClearManagedDict", ret = Void, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyObject_CopyData", ret = Int, args = {PyObject, PyObject}, call = CImpl) - @CApiBuiltin(name = "PyObject_DelAttr", ret = PrimitiveResult32, args = {PyObjectReturn, PyObjectReturn}, call = CImpl) - @CApiBuiltin(name = "PyObject_DelAttrString", ret = PrimitiveResult32, args = {PyObjectReturn, ConstCharPtr}, call = CImpl) - @CApiBuiltin(name = "PyObject_DelItemString", ret = Int, args = {PyObject, ConstCharPtrAsTruffleString}, call = CImpl) + @CApiBuiltin(name = "PyObject_DelAttr", ret = Int, args = {PyObject, PyObject}, call = CImpl) + @CApiBuiltin(name = "PyObject_DelAttrString", ret = Int, args = {PyObject, ConstCharPtr}, call = CImpl) + @CApiBuiltin(name = "PyObject_DelItemString", ret = Int, args = {PyObject, ConstCharPtr}, call = CImpl) @CApiBuiltin(name = "PyObject_Free", ret = Void, args = {Pointer}, call = CImpl) @CApiBuiltin(name = "PyObject_GC_Del", ret = Void, args = {Pointer}, call = CImpl) @CApiBuiltin(name = "PyObject_GC_IsFinalized", ret = Int, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyObject_GC_IsTracked", ret = Int, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyObject_GC_Track", ret = Void, args = {Pointer}, call = CImpl) @CApiBuiltin(name = "PyObject_GC_UnTrack", ret = Void, args = {Pointer}, call = CImpl) - @CApiBuiltin(name = "PyObject_GenericGetAttr", ret = PyObjectTransfer, args = {PyObject, PyObject}, call = CImpl) + @CApiBuiltin(name = "PyObject_GenericGetAttr", ret = PyObject, args = {PyObject, PyObject}, call = CImpl) @CApiBuiltin(name = "PyObject_GenericGetDict", ret = PyObject, args = {PyObject, Pointer}, call = CImpl) - @CApiBuiltin(name = "PyObject_GenericHash", ret = Py_hash_t, args = {PyObjectReturn}, call = CImpl) + @CApiBuiltin(name = "PyObject_GenericHash", ret = Py_hash_t, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyObject_GenericSetAttr", ret = Int, args = {PyObject, PyObject, PyObject}, call = CImpl) @CApiBuiltin(name = "PyObject_GenericSetDict", ret = Int, args = {PyObject, PyObject, Pointer}, call = CImpl) @CApiBuiltin(name = "PyObject_GetAIter", ret = PyObject, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyObject_GetAttr", ret = PyObject, args = {PyObject, PyObject}, call = CImpl) - @CApiBuiltin(name = "PyObject_GetAttrString", ret = PyObject, args = {PyObject, ConstCharPtrAsTruffleString}, call = CImpl) + @CApiBuiltin(name = "PyObject_GetAttrString", ret = PyObject, args = {PyObject, ConstCharPtr}, call = CImpl) @CApiBuiltin(name = "PyObject_GetBuffer", ret = Int, args = {PyObject, PY_BUFFER_PTR, Int}, call = CImpl) @CApiBuiltin(name = "PyObject_GetIter", ret = PyObject, args = {PyObject}, call = CImpl) - @CApiBuiltin(name = "PyObject_GetOptionalAttr", ret = PrimitiveResult32, args = {PyObjectReturn, PyObjectReturn, PyObjectPtr}, call = CImpl) - @CApiBuiltin(name = "PyObject_GetOptionalAttrString", ret = PrimitiveResult32, args = {PyObjectReturn, ConstCharPtr, PyObjectPtr}, call = CImpl) + @CApiBuiltin(name = "PyObject_GetOptionalAttr", ret = Int, args = {PyObject, PyObject, PyObjectPtr}, call = CImpl) + @CApiBuiltin(name = "PyObject_GetOptionalAttrString", ret = Int, args = {PyObject, ConstCharPtr, PyObjectPtr}, call = CImpl) @CApiBuiltin(name = "PyObject_HasAttr", ret = Int, args = {PyObject, PyObject}, call = CImpl) @CApiBuiltin(name = "PyObject_HasAttrString", ret = Int, args = {PyObject, ConstCharPtr}, call = CImpl) - @CApiBuiltin(name = "PyObject_HasAttrStringWithError", ret = PrimitiveResult32, args = {PyObjectReturn, ConstCharPtr}, call = CImpl) - @CApiBuiltin(name = "PyObject_HasAttrWithError", ret = PrimitiveResult32, args = {PyObjectReturn, PyObjectReturn}, call = CImpl) + @CApiBuiltin(name = "PyObject_HasAttrStringWithError", ret = Int, args = {PyObject, ConstCharPtr}, call = CImpl) + @CApiBuiltin(name = "PyObject_HasAttrWithError", ret = Int, args = {PyObject, PyObject}, call = CImpl) @CApiBuiltin(name = "PyObject_Init", ret = PyObject, args = {PyObject, PyTypeObject}, call = CImpl) @CApiBuiltin(name = "PyObject_InitVar", ret = PyVarObject, args = {PyVarObject, PyTypeObject, Py_ssize_t}, call = CImpl) @CApiBuiltin(name = "PyObject_IS_GC", ret = Int, args = {PyObject}, call = CImpl) @@ -466,24 +453,24 @@ public final class CApiFunction { @CApiBuiltin(name = "PyObject_Not", ret = Int, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyObject_Print", ret = Int, args = {PyObject, FILE_PTR, Int}, call = CImpl) @CApiBuiltin(name = "PyObject_Realloc", ret = Pointer, args = {Pointer, SIZE_T}, call = CImpl) - @CApiBuiltin(name = "PyObject_RichCompare", ret = PyObjectTransfer, args = {PyObject, PyObject, Int}, call = CImpl) + @CApiBuiltin(name = "PyObject_RichCompare", ret = PyObject, args = {PyObject, PyObject, Int}, call = CImpl) @CApiBuiltin(name = "PyObject_RichCompareBool", ret = Int, args = {PyObject, PyObject, Int}, call = CImpl) @CApiBuiltin(name = "PyObject_Length", ret = Py_ssize_t, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyObject_SelfIter", ret = PyObject, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyObject_SetAttr", ret = Int, args = {PyObject, PyObject, PyObject}, call = CImpl) - @CApiBuiltin(name = "PyObject_SetAttrString", ret = Int, args = {PyObject, ConstCharPtrAsTruffleString, PyObject}, call = CImpl) + @CApiBuiltin(name = "PyObject_SetAttrString", ret = Int, args = {PyObject, ConstCharPtr, PyObject}, call = CImpl) @CApiBuiltin(name = "PyObject_Size", ret = Py_ssize_t, args = {PyObject}, call = CImpl) - @CApiBuiltin(name = "PyObject_Type", ret = PyObjectTransfer, args = {PyObject}, call = CImpl) + @CApiBuiltin(name = "PyObject_Type", ret = PyObject, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyObject_Vectorcall", ret = PyObject, args = {PyObject, PyObjectConstPtr, SIZE_T, PyObject}, call = CImpl) @CApiBuiltin(name = "PyObject_VectorcallDict", ret = PyObject, args = {PyObject, PyObjectConstPtr, SIZE_T, PyObject}, call = CImpl) @CApiBuiltin(name = "PyObject_VectorcallMethod", ret = PyObject, args = {PyObject, PyObjectConstPtr, SIZE_T, PyObject}, call = CImpl) - @CApiBuiltin(name = "PyObject_VisitManagedDict", ret = PrimitiveResult32, args = {PyObjectReturn, visitproc, Pointer}, call = CImpl) + @CApiBuiltin(name = "PyObject_VisitManagedDict", ret = Int, args = {PyObject, visitproc, Pointer}, call = CImpl) @CApiBuiltin(name = "PyRefTracer_GetTracer", ret = PY_REF_TRACER, args = {VOID_PTR_LIST}, call = CImpl) - @CApiBuiltin(name = "PyRefTracer_SetTracer", ret = PrimitiveResult32, args = {PY_REF_TRACER, Pointer}, call = CImpl) + @CApiBuiltin(name = "PyRefTracer_SetTracer", ret = Int, args = {PY_REF_TRACER, Pointer}, call = CImpl) @CApiBuiltin(name = "PySequence_Check", ret = Int, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PySequence_DelItem", ret = Int, args = {PyObject, Py_ssize_t}, call = CImpl) - @CApiBuiltin(name = "PySequence_Fast", ret = PyObject, args = {PyObject, ConstCharPtrAsTruffleString}, call = CImpl) - @CApiBuiltin(name = "PySequence_GetItem", ret = PyObjectTransfer, args = {PyObject, Py_ssize_t}, call = CImpl) + @CApiBuiltin(name = "PySequence_Fast", ret = PyObject, args = {PyObject, ConstCharPtr}, call = CImpl) + @CApiBuiltin(name = "PySequence_GetItem", ret = PyObject, args = {PyObject, Py_ssize_t}, call = CImpl) @CApiBuiltin(name = "PySequence_Length", ret = Py_ssize_t, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PySequence_SetItem", ret = Int, args = {PyObject, Py_ssize_t, PyObject}, call = CImpl) @CApiBuiltin(name = "PySequence_Size", ret = Py_ssize_t, args = {PyObject}, call = CImpl) @@ -491,18 +478,18 @@ public final class CApiFunction { @CApiBuiltin(name = "PySlice_AdjustIndices", ret = Py_ssize_t, args = {Py_ssize_t, PY_SSIZE_T_PTR, PY_SSIZE_T_PTR, Py_ssize_t}, call = CImpl) @CApiBuiltin(name = "PySlice_Unpack", ret = Int, args = {PyObject, PY_SSIZE_T_PTR, PY_SSIZE_T_PTR, PY_SSIZE_T_PTR}, call = CImpl) @CApiBuiltin(name = "PyState_AddModule", ret = Int, args = {PyObject, PYMODULEDEF_PTR}, call = CImpl) - @CApiBuiltin(name = "PyState_FindModule", ret = PyObjectBorrowed, args = {PYMODULEDEF_PTR}, call = CImpl) + @CApiBuiltin(name = "PyState_FindModule", ret = PyObject, args = {PYMODULEDEF_PTR}, call = CImpl) @CApiBuiltin(name = "PyState_RemoveModule", ret = Int, args = {PYMODULEDEF_PTR}, call = CImpl) @CApiBuiltin(name = "PyStructSequence_GetItem", ret = PyObject, args = {PyObject, Py_ssize_t}, call = CImpl) @CApiBuiltin(name = "PyStructSequence_InitType", ret = Void, args = {PyTypeObject, PY_STRUCT_SEQUENCE_DESC}, call = CImpl) @CApiBuiltin(name = "PyStructSequence_InitType2", ret = Int, args = {PyTypeObject, PY_STRUCT_SEQUENCE_DESC}, call = CImpl) @CApiBuiltin(name = "PyStructSequence_NewType", ret = PyTypeObject, args = {PY_STRUCT_SEQUENCE_DESC}, call = CImpl) @CApiBuiltin(name = "PyStructSequence_SetItem", ret = Void, args = {PyObject, Py_ssize_t, PyObject}, call = CImpl) - @CApiBuiltin(name = "PySys_Audit", ret = Int, args = {ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString, VARARGS}, call = CImpl) - @CApiBuiltin(name = "PySys_FormatStderr", ret = Void, args = {ConstCharPtrAsTruffleString, VARARGS}, call = CImpl) - @CApiBuiltin(name = "PySys_FormatStdout", ret = Void, args = {ConstCharPtrAsTruffleString, VARARGS}, call = CImpl) - @CApiBuiltin(name = "PySys_WriteStderr", ret = Void, args = {ConstCharPtrAsTruffleString, VARARGS}, call = CImpl) - @CApiBuiltin(name = "PySys_WriteStdout", ret = Void, args = {ConstCharPtrAsTruffleString, VARARGS}, call = CImpl) + @CApiBuiltin(name = "PySys_Audit", ret = Int, args = {ConstCharPtr, ConstCharPtr, VARARGS}, call = CImpl) + @CApiBuiltin(name = "PySys_FormatStderr", ret = Void, args = {ConstCharPtr, VARARGS}, call = CImpl) + @CApiBuiltin(name = "PySys_FormatStdout", ret = Void, args = {ConstCharPtr, VARARGS}, call = CImpl) + @CApiBuiltin(name = "PySys_WriteStderr", ret = Void, args = {ConstCharPtr, VARARGS}, call = CImpl) + @CApiBuiltin(name = "PySys_WriteStdout", ret = Void, args = {ConstCharPtr, VARARGS}, call = CImpl) @CApiBuiltin(name = "PyThreadState_Clear", ret = Void, args = {PyThreadState}, call = CImpl) @CApiBuiltin(name = "PyThreadState_DeleteCurrent", ret = Void, args = {}, call = NotImplemented) @CApiBuiltin(name = "PyThreadState_Get", ret = PyThreadState, args = {}, call = CImpl) @@ -516,18 +503,18 @@ public final class CApiFunction { @CApiBuiltin(name = "PyThread_tss_is_created", ret = Int, args = {PY_TSS_T_PTR}, call = CImpl) @CApiBuiltin(name = "PyThread_tss_set", ret = Int, args = {PY_TSS_T_PTR, Pointer}, call = CImpl) @CApiBuiltin(name = "PyTime_AsSecondsDouble", ret = Double, args = {_PYTIME_T}, call = CImpl) - @CApiBuiltin(name = "PyTime_Monotonic", ret = PrimitiveResult32, args = {_PYTIME_T_PTR}, call = CImpl) - @CApiBuiltin(name = "PyTime_MonotonicRaw", ret = PrimitiveResult32, args = {_PYTIME_T_PTR}, call = CImpl) - @CApiBuiltin(name = "PyTime_PerfCounter", ret = PrimitiveResult32, args = {_PYTIME_T_PTR}, call = CImpl) - @CApiBuiltin(name = "PyTime_PerfCounterRaw", ret = PrimitiveResult32, args = {_PYTIME_T_PTR}, call = CImpl) - @CApiBuiltin(name = "PyTime_Time", ret = PrimitiveResult32, args = {_PYTIME_T_PTR}, call = CImpl) - @CApiBuiltin(name = "PyTime_TimeRaw", ret = PrimitiveResult32, args = {_PYTIME_T_PTR}, call = CImpl) + @CApiBuiltin(name = "PyTime_Monotonic", ret = Int, args = {_PYTIME_T_PTR}, call = CImpl) + @CApiBuiltin(name = "PyTime_MonotonicRaw", ret = Int, args = {_PYTIME_T_PTR}, call = CImpl) + @CApiBuiltin(name = "PyTime_PerfCounter", ret = Int, args = {_PYTIME_T_PTR}, call = CImpl) + @CApiBuiltin(name = "PyTime_PerfCounterRaw", ret = Int, args = {_PYTIME_T_PTR}, call = CImpl) + @CApiBuiltin(name = "PyTime_Time", ret = Int, args = {_PYTIME_T_PTR}, call = CImpl) + @CApiBuiltin(name = "PyTime_TimeRaw", ret = Int, args = {_PYTIME_T_PTR}, call = CImpl) @CApiBuiltin(name = "PyTraceMalloc_Track", ret = Int, args = {UNSIGNED_INT, UINTPTR_T, SIZE_T}, call = CImpl) @CApiBuiltin(name = "PyTraceMalloc_Untrack", ret = Int, args = {UNSIGNED_INT, UINTPTR_T}, call = CImpl) @CApiBuiltin(name = "PyTuple_New", ret = PyObject, args = {Py_ssize_t}, call = CImpl) @CApiBuiltin(name = "PyTuple_Pack", ret = PyObject, args = {Py_ssize_t, VARARGS}, call = CImpl) - @CApiBuiltin(name = "PyTuple_GetItem", ret = PyObjectBorrowed, args = {PyObject, Py_ssize_t}, call = CImpl) - @CApiBuiltin(name = "PyTuple_SetItem", ret = Int, args = {PyObject, Py_ssize_t, PyObjectTransfer}, call = CImpl) + @CApiBuiltin(name = "PyTuple_GetItem", ret = PyObject, args = {PyObject, Py_ssize_t}, call = CImpl) + @CApiBuiltin(name = "PyTuple_SetItem", ret = Int, args = {PyObject, Py_ssize_t, PyObject}, call = CImpl) @CApiBuiltin(name = "PyTuple_Size", ret = Py_ssize_t, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyType_FromModuleAndSpec", ret = PyObject, args = {PyObject, PY_TYPE_SPEC, PyObject}, call = CImpl) @CApiBuiltin(name = "PyType_FromSpec", ret = PyObject, args = {PY_TYPE_SPEC}, call = CImpl) @@ -537,7 +524,7 @@ public final class CApiFunction { @CApiBuiltin(name = "PyType_GetFlags", ret = UNSIGNED_LONG, args = {PyTypeObject}, call = CImpl) @CApiBuiltin(name = "PyType_GetModule", ret = PyObject, args = {PyTypeObject}, call = CImpl) @CApiBuiltin(name = "PyType_GetModuleByDef", ret = PyObject, args = {PyTypeObject, PYMODULEDEF_PTR}, call = CImpl) - @CApiBuiltin(name = "PyType_GetModuleName", ret = PyObjectReturn, args = {PyTypeObjectRawPointer}, call = CImpl) + @CApiBuiltin(name = "PyType_GetModuleName", ret = PyObject, args = {PyTypeObject}, call = CImpl) @CApiBuiltin(name = "PyType_GetModuleState", ret = Pointer, args = {PyTypeObject}, call = CImpl) @CApiBuiltin(name = "PyType_GetName", ret = PyObject, args = {PyTypeObject}, call = CImpl) @CApiBuiltin(name = "PyType_GetQualName", ret = PyObject, args = {PyTypeObject}, call = CImpl) @@ -550,47 +537,47 @@ public final class CApiFunction { @CApiBuiltin(name = "PyUnicode_AsLatin1String", ret = PyObject, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyUnicode_AsUCS4", ret = PY_UCS4_PTR, args = {PyObject, PY_UCS4_PTR, Py_ssize_t, Int}, call = CImpl) @CApiBuiltin(name = "PyUnicode_AsUCS4Copy", ret = PY_UCS4_PTR, args = {PyObject}, call = CImpl) - @CApiBuiltin(name = "PyUnicode_AsUTF8", ret = ConstCharPtrAsTruffleString, args = {PyObject}, call = CImpl) - @CApiBuiltin(name = "PyUnicode_AsUTF8AndSize", ret = ConstCharPtrAsTruffleString, args = {PyObject, PY_SSIZE_T_PTR}, call = CImpl) + @CApiBuiltin(name = "PyUnicode_AsUTF8", ret = ConstCharPtr, args = {PyObject}, call = CImpl) + @CApiBuiltin(name = "PyUnicode_AsUTF8AndSize", ret = ConstCharPtr, args = {PyObject, PY_SSIZE_T_PTR}, call = CImpl) @CApiBuiltin(name = "PyUnicode_AsUTF8String", ret = PyObject, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyUnicode_AsWideChar", ret = Py_ssize_t, args = {PyObject, WCHAR_T_PTR, Py_ssize_t}, call = CImpl) @CApiBuiltin(name = "PyUnicode_AsWideCharString", ret = WCHAR_T_PTR, args = {PyObject, PY_SSIZE_T_PTR}, call = CImpl) - @CApiBuiltin(name = "PyUnicode_Decode", ret = PyObject, args = {ConstCharPtrAsTruffleString, Py_ssize_t, ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString}, call = CImpl) - @CApiBuiltin(name = "PyUnicode_DecodeASCII", ret = PyObject, args = {ConstCharPtrAsTruffleString, Py_ssize_t, ConstCharPtrAsTruffleString}, call = CImpl) - @CApiBuiltin(name = "PyUnicode_DecodeFSDefault", ret = PyObject, args = {ConstCharPtrAsTruffleString}, call = CImpl) - @CApiBuiltin(name = "PyUnicode_DecodeFSDefaultAndSize", ret = PyObject, args = {ConstCharPtrAsTruffleString, Py_ssize_t}, call = CImpl) - @CApiBuiltin(name = "PyUnicode_DecodeLatin1", ret = PyObject, args = {ConstCharPtrAsTruffleString, Py_ssize_t, ConstCharPtrAsTruffleString}, call = CImpl) - @CApiBuiltin(name = "PyUnicode_DecodeLocale", ret = PyObject, args = {ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString}, call = CImpl) - @CApiBuiltin(name = "PyUnicode_DecodeLocaleAndSize", ret = PyObject, args = {ConstCharPtrAsTruffleString, Py_ssize_t, ConstCharPtrAsTruffleString}, call = CImpl) - @CApiBuiltin(name = "PyUnicode_DecodeRawUnicodeEscape", ret = PyObject, args = {ConstCharPtrAsTruffleString, Py_ssize_t, ConstCharPtrAsTruffleString}, call = CImpl) - @CApiBuiltin(name = "PyUnicode_DecodeUTF16", ret = PyObject, args = {ConstCharPtrAsTruffleString, Py_ssize_t, ConstCharPtrAsTruffleString, INT_LIST}, call = CImpl) - @CApiBuiltin(name = "PyUnicode_DecodeUTF16Stateful", ret = PyObject, args = {ConstCharPtrAsTruffleString, Py_ssize_t, ConstCharPtrAsTruffleString, INT_LIST, PY_SSIZE_T_PTR}, call = CImpl) - @CApiBuiltin(name = "PyUnicode_DecodeUTF32", ret = PyObject, args = {ConstCharPtrAsTruffleString, Py_ssize_t, ConstCharPtrAsTruffleString, INT_LIST}, call = CImpl) - @CApiBuiltin(name = "PyUnicode_DecodeUTF32Stateful", ret = PyObject, args = {ConstCharPtrAsTruffleString, Py_ssize_t, ConstCharPtrAsTruffleString, INT_LIST, PY_SSIZE_T_PTR}, call = CImpl) - @CApiBuiltin(name = "PyUnicode_DecodeUTF8", ret = PyObject, args = {ConstCharPtrAsTruffleString, Py_ssize_t, ConstCharPtrAsTruffleString}, call = CImpl) - @CApiBuiltin(name = "PyUnicode_DecodeUTF8Stateful", ret = PyObject, args = {ConstCharPtrAsTruffleString, Py_ssize_t, ConstCharPtrAsTruffleString, PY_SSIZE_T_PTR}, call = CImpl) + @CApiBuiltin(name = "PyUnicode_Decode", ret = PyObject, args = {ConstCharPtr, Py_ssize_t, ConstCharPtr, ConstCharPtr}, call = CImpl) + @CApiBuiltin(name = "PyUnicode_DecodeASCII", ret = PyObject, args = {ConstCharPtr, Py_ssize_t, ConstCharPtr}, call = CImpl) + @CApiBuiltin(name = "PyUnicode_DecodeFSDefault", ret = PyObject, args = {ConstCharPtr}, call = CImpl) + @CApiBuiltin(name = "PyUnicode_DecodeFSDefaultAndSize", ret = PyObject, args = {ConstCharPtr, Py_ssize_t}, call = CImpl) + @CApiBuiltin(name = "PyUnicode_DecodeLatin1", ret = PyObject, args = {ConstCharPtr, Py_ssize_t, ConstCharPtr}, call = CImpl) + @CApiBuiltin(name = "PyUnicode_DecodeLocale", ret = PyObject, args = {ConstCharPtr, ConstCharPtr}, call = CImpl) + @CApiBuiltin(name = "PyUnicode_DecodeLocaleAndSize", ret = PyObject, args = {ConstCharPtr, Py_ssize_t, ConstCharPtr}, call = CImpl) + @CApiBuiltin(name = "PyUnicode_DecodeRawUnicodeEscape", ret = PyObject, args = {ConstCharPtr, Py_ssize_t, ConstCharPtr}, call = CImpl) + @CApiBuiltin(name = "PyUnicode_DecodeUTF16", ret = PyObject, args = {ConstCharPtr, Py_ssize_t, ConstCharPtr, INT_LIST}, call = CImpl) + @CApiBuiltin(name = "PyUnicode_DecodeUTF16Stateful", ret = PyObject, args = {ConstCharPtr, Py_ssize_t, ConstCharPtr, INT_LIST, PY_SSIZE_T_PTR}, call = CImpl) + @CApiBuiltin(name = "PyUnicode_DecodeUTF32", ret = PyObject, args = {ConstCharPtr, Py_ssize_t, ConstCharPtr, INT_LIST}, call = CImpl) + @CApiBuiltin(name = "PyUnicode_DecodeUTF32Stateful", ret = PyObject, args = {ConstCharPtr, Py_ssize_t, ConstCharPtr, INT_LIST, PY_SSIZE_T_PTR}, call = CImpl) + @CApiBuiltin(name = "PyUnicode_DecodeUTF8", ret = PyObject, args = {ConstCharPtr, Py_ssize_t, ConstCharPtr}, call = CImpl) + @CApiBuiltin(name = "PyUnicode_DecodeUTF8Stateful", ret = PyObject, args = {ConstCharPtr, Py_ssize_t, ConstCharPtr, PY_SSIZE_T_PTR}, call = CImpl) @CApiBuiltin(name = "PyUnicode_FSConverter", ret = Int, args = {PyObject, Pointer}, call = CImpl) @CApiBuiltin(name = "PyUnicode_Find", ret = Py_ssize_t, args = {PyObject, PyObject, Py_ssize_t, Py_ssize_t, Int}, call = CImpl) - @CApiBuiltin(name = "PyUnicode_FromFormat", ret = PyObject, args = {ConstCharPtrAsTruffleString, VARARGS}, call = CImpl) - @CApiBuiltin(name = "PyUnicode_FromFormatV", ret = PyObject, args = {ConstCharPtrAsTruffleString, VA_LIST}, call = CImpl) + @CApiBuiltin(name = "PyUnicode_FromFormat", ret = PyObject, args = {ConstCharPtr, VARARGS}, call = CImpl) + @CApiBuiltin(name = "PyUnicode_FromFormatV", ret = PyObject, args = {ConstCharPtr, VA_LIST}, call = CImpl) @CApiBuiltin(name = "PyUnicode_FromKindAndData", ret = PyObject, args = {Int, CONST_VOID_PTR, Py_ssize_t}, call = CImpl) @CApiBuiltin(name = "PyUnicode_FromOrdinal", ret = PyObject, args = {Int}, call = CImpl) - @CApiBuiltin(name = "PyUnicode_FromStringAndSize", ret = PyObject, args = {ConstCharPtrAsTruffleString, Py_ssize_t}, call = CImpl) + @CApiBuiltin(name = "PyUnicode_FromStringAndSize", ret = PyObject, args = {ConstCharPtr, Py_ssize_t}, call = CImpl) @CApiBuiltin(name = "PyUnicode_GetLength", ret = Py_ssize_t, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "PyUnicode_InternInPlace", ret = Void, args = {PyObjectPtr}, call = CImpl) @CApiBuiltin(name = "PyUnicode_New", ret = PyObject, args = {Py_ssize_t, PY_UCS4}, call = CImpl) - @CApiBuiltin(name = "PyUnstable_InterpreterState_GetMainModule", ret = PyObjectReturn, args = {PyInterpreterState}, call = CImpl) + @CApiBuiltin(name = "PyUnstable_InterpreterState_GetMainModule", ret = PyObject, args = {PyInterpreterState}, call = CImpl) @CApiBuiltin(name = "PyVectorcall_Call", ret = PyObject, args = {PyObject, PyObject, PyObject}, call = CImpl) @CApiBuiltin(name = "PyVectorcall_Call", ret = PyObject, args = {PyObject, PyObject, PyObject}, call = CImpl) @CApiBuiltin(name = "PyVectorcall_Function", ret = vectorcallfunc, args = {PyObject}, call = CImpl) - @CApiBuiltin(name = "Py_BuildValue", ret = PyObject, args = {ConstCharPtrAsTruffleString, VARARGS}, call = CImpl) + @CApiBuiltin(name = "Py_BuildValue", ret = PyObject, args = {ConstCharPtr, VARARGS}, call = CImpl) @CApiBuiltin(name = "Py_DecRef", ret = Void, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "Py_EnterRecursiveCall", ret = Int, args = {ConstCharPtr}, call = CImpl) - @CApiBuiltin(name = "Py_GetBuildInfo", ret = ConstCharPtrAsTruffleString, args = {}, call = CImpl) - @CApiBuiltin(name = "Py_GetCompiler", ret = ConstCharPtrAsTruffleString, args = {}, call = CImpl) - @CApiBuiltin(name = "Py_GetConstant", ret = PyObjectReturn, args = {UNSIGNED_INT}, call = CImpl) - @CApiBuiltin(name = "Py_GetConstantBorrowed", ret = PyObjectReturn, args = {UNSIGNED_INT}, call = CImpl) - @CApiBuiltin(name = "Py_GetVersion", ret = ConstCharPtrAsTruffleString, args = {}, call = CImpl) + @CApiBuiltin(name = "Py_GetBuildInfo", ret = ConstCharPtr, args = {}, call = CImpl) + @CApiBuiltin(name = "Py_GetCompiler", ret = ConstCharPtr, args = {}, call = CImpl) + @CApiBuiltin(name = "Py_GetConstant", ret = PyObject, args = {UNSIGNED_INT}, call = CImpl) + @CApiBuiltin(name = "Py_GetConstantBorrowed", ret = PyObject, args = {UNSIGNED_INT}, call = CImpl) + @CApiBuiltin(name = "Py_GetVersion", ret = ConstCharPtr, args = {}, call = CImpl) @CApiBuiltin(name = "Py_HashPointer", ret = Py_hash_t, args = {CONST_VOID_PTR}, call = CImpl) @CApiBuiltin(name = "Py_IncRef", ret = Void, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "Py_Is", ret = Int, args = {PyObject, PyObject}, call = CImpl) @@ -600,17 +587,17 @@ public final class CApiFunction { @CApiBuiltin(name = "Py_IsTrue", ret = Int, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "Py_LeaveRecursiveCall", ret = Void, args = {}, call = CImpl) @CApiBuiltin(name = "Py_NewRef", ret = PyObject, args = {PyObject}, call = CImpl) - @CApiBuiltin(name = "Py_VaBuildValue", ret = PyObject, args = {ConstCharPtrAsTruffleString, VA_LIST}, call = CImpl) + @CApiBuiltin(name = "Py_VaBuildValue", ret = PyObject, args = {ConstCharPtr, VA_LIST}, call = CImpl) @CApiBuiltin(name = "Py_XNewRef", ret = PyObject, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "_PyArg_ParseTupleAndKeywordsFast", ret = Int, args = {PyObject, PyObject, _PYARG_PARSER_PTR, VARARGS}, call = CImpl) @CApiBuiltin(name = "_PyBytes_Resize", ret = Int, args = {PyObjectPtr, Py_ssize_t}, call = CImpl) @CApiBuiltin(name = "_PyDict_GetItem_KnownHash", ret = PyObject, args = {PyObject, PyObject, Py_hash_t}, call = CImpl) @CApiBuiltin(name = "_PyDict_NewPresized", ret = PyObject, args = {Py_ssize_t}, call = CImpl) - @CApiBuiltin(name = "_PyErr_BadInternalCall", ret = Void, args = {ConstCharPtr, PrimitiveResult32}, call = CImpl) + @CApiBuiltin(name = "_PyErr_BadInternalCall", ret = Void, args = {ConstCharPtr, Int}, call = CImpl) @CApiBuiltin(name = "_PyErr_ChainExceptions1", ret = Void, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "_PyEval_SliceIndex", ret = Int, args = {PyObject, PY_SSIZE_T_PTR}, call = CImpl) - @CApiBuiltin(name = "_PyObject_AssertFailed", ret = VoidNoReturn, args = {PyObject, ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString, Int, - ConstCharPtrAsTruffleString}, call = CImpl) + @CApiBuiltin(name = "_PyObject_AssertFailed", ret = Void, args = {PyObject, ConstCharPtr, ConstCharPtr, ConstCharPtr, Int, + ConstCharPtr}, call = CImpl) @CApiBuiltin(name = "_PyObject_Dump", ret = Void, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "_PyObject_GC_New", ret = PyObject, args = {PyTypeObject}, call = CImpl) @CApiBuiltin(name = "_PyObject_GC_NewVar", ret = PyVarObject, args = {PyTypeObject, Py_ssize_t}, call = CImpl) @@ -619,10 +606,10 @@ public final class CApiFunction { @CApiBuiltin(name = "_PyObject_GetDictPtr", ret = PyObjectPtr, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "_PyObject_New", ret = PyObject, args = {PyTypeObject}, call = CImpl) @CApiBuiltin(name = "_PyObject_NewVar", ret = PyVarObject, args = {PyTypeObject, Py_ssize_t}, call = CImpl) - @CApiBuiltin(name = "_PyTrash_thread_deposit_object", ret = Void, args = {PyThreadState, PyObjectReturn}, call = CImpl) + @CApiBuiltin(name = "_PyTrash_thread_deposit_object", ret = Void, args = {PyThreadState, PyObject}, call = CImpl) @CApiBuiltin(name = "_PyTrash_thread_destroy_chain", ret = Void, args = {PyThreadState}, call = CImpl) @CApiBuiltin(name = "_PyTuple_Resize", ret = Int, args = {PyObjectPtr, Py_ssize_t}, call = CImpl) - @CApiBuiltin(name = "_PyType_Name", ret = ConstCharPtrAsTruffleString, args = {PyTypeObject}, call = CImpl) + @CApiBuiltin(name = "_PyType_Name", ret = ConstCharPtr, args = {PyTypeObject}, call = CImpl) @CApiBuiltin(name = "_PyUnicode_FromId", ret = PyObject, args = {PY_IDENTIFIER}, call = CImpl) @CApiBuiltin(name = "_PyUnicode_IsAlpha", ret = Int, args = {PY_UCS4}, call = CImpl) @CApiBuiltin(name = "_PyUnicode_IsDecimalDigit", ret = Int, args = {PY_UCS4}, call = CImpl) @@ -643,12 +630,12 @@ public final class CApiFunction { @CApiBuiltin(name = "_Py_BreakPoint", ret = Void, args = {}, call = CImpl) @CApiBuiltin(name = "_Py_Dealloc", ret = Void, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "_Py_DecRef", ret = Void, args = {PyObject}, call = CImpl) - @CApiBuiltin(name = "_Py_FatalErrorFunc", ret = VoidNoReturn, args = {ConstCharPtr, ConstCharPtr}, call = CImpl) + @CApiBuiltin(name = "_Py_FatalErrorFunc", ret = Void, args = {ConstCharPtr, ConstCharPtr}, call = CImpl) @CApiBuiltin(name = "_Py_HashDouble", ret = Py_hash_t, args = {PyObject, ArgDescriptor.Double}, call = CImpl) @CApiBuiltin(name = "_Py_IncRef", ret = Void, args = {PyObject}, call = CImpl) @CApiBuiltin(name = "_Py_NewReference", ret = Void, args = {PyObject}, call = CImpl) - @CApiBuiltin(name = "_Py_ResurrectReference", ret = Void, args = {PyObjectReturn}, call = CImpl) - @CApiBuiltin(name = "_Py_SetRefcnt", ret = Void, args = {PyObjectReturn, Py_ssize_t}, call = CImpl) + @CApiBuiltin(name = "_Py_ResurrectReference", ret = Void, args = {PyObject}, call = CImpl) + @CApiBuiltin(name = "_Py_SetRefcnt", ret = Void, args = {PyObject, Py_ssize_t}, call = CImpl) @CApiBuiltin(name = "_Py_c_abs", ret = Double, args = {PY_COMPLEX}, call = CImpl) @CApiBuiltin(name = "_Py_c_diff", ret = PY_COMPLEX, args = {PY_COMPLEX, PY_COMPLEX}, call = CImpl) @CApiBuiltin(name = "_Py_c_neg", ret = PY_COMPLEX, args = {PY_COMPLEX}, call = CImpl) @@ -660,8 +647,8 @@ public final class CApiFunction { @CApiBuiltin(name = "PyAsyncGen_New", ret = PyObject, args = {PyFrameObject, PyObject, PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyByteArray_Concat", ret = PyObject, args = {PyObject, PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyByteArray_FromObject", ret = PyObject, args = {PyObject}, call = NotImplemented) - @CApiBuiltin(name = "PyBytes_DecodeEscape", ret = PyObject, args = {ConstCharPtrAsTruffleString, Py_ssize_t, ConstCharPtrAsTruffleString, Py_ssize_t, - ConstCharPtrAsTruffleString}, call = NotImplemented) + @CApiBuiltin(name = "PyBytes_DecodeEscape", ret = PyObject, args = {ConstCharPtr, Py_ssize_t, ConstCharPtr, Py_ssize_t, + ConstCharPtr}, call = NotImplemented) @CApiBuiltin(name = "PyBytes_Repr", ret = PyObject, args = {PyObject, Int}, call = NotImplemented) @CApiBuiltin(name = "PyCell_New", ret = PyObject, args = {PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyCode_Addr2Location", ret = Int, args = {PyCodeObject, Int, INT_LIST, INT_LIST, INT_LIST, INT_LIST}, call = NotImplemented) @@ -671,19 +658,19 @@ public final class CApiFunction { @CApiBuiltin(name = "PyCode_GetVarnames", ret = PyObject, args = {PyCodeObject}, call = NotImplemented) @CApiBuiltin(name = "PyCode_Optimize", ret = PyObject, args = {PyObject, PyObject, PyObject, PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyCodec_BackslashReplaceErrors", ret = PyObject, args = {PyObject}, call = NotImplemented) - @CApiBuiltin(name = "PyCodec_Decode", ret = PyObject, args = {PyObject, ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString}, call = NotImplemented) - @CApiBuiltin(name = "PyCodec_Encode", ret = PyObject, args = {PyObject, ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString}, call = NotImplemented) + @CApiBuiltin(name = "PyCodec_Decode", ret = PyObject, args = {PyObject, ConstCharPtr, ConstCharPtr}, call = NotImplemented) + @CApiBuiltin(name = "PyCodec_Encode", ret = PyObject, args = {PyObject, ConstCharPtr, ConstCharPtr}, call = NotImplemented) @CApiBuiltin(name = "PyCodec_IgnoreErrors", ret = PyObject, args = {PyObject}, call = NotImplemented) - @CApiBuiltin(name = "PyCodec_IncrementalDecoder", ret = PyObject, args = {ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString}, call = NotImplemented) - @CApiBuiltin(name = "PyCodec_IncrementalEncoder", ret = PyObject, args = {ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString}, call = NotImplemented) - @CApiBuiltin(name = "PyCodec_KnownEncoding", ret = Int, args = {ConstCharPtrAsTruffleString}, call = NotImplemented) - @CApiBuiltin(name = "PyCodec_LookupError", ret = PyObject, args = {ConstCharPtrAsTruffleString}, call = NotImplemented) + @CApiBuiltin(name = "PyCodec_IncrementalDecoder", ret = PyObject, args = {ConstCharPtr, ConstCharPtr}, call = NotImplemented) + @CApiBuiltin(name = "PyCodec_IncrementalEncoder", ret = PyObject, args = {ConstCharPtr, ConstCharPtr}, call = NotImplemented) + @CApiBuiltin(name = "PyCodec_KnownEncoding", ret = Int, args = {ConstCharPtr}, call = NotImplemented) + @CApiBuiltin(name = "PyCodec_LookupError", ret = PyObject, args = {ConstCharPtr}, call = NotImplemented) @CApiBuiltin(name = "PyCodec_NameReplaceErrors", ret = PyObject, args = {PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyCodec_Register", ret = Int, args = {PyObject}, call = NotImplemented) - @CApiBuiltin(name = "PyCodec_RegisterError", ret = Int, args = {ConstCharPtrAsTruffleString, PyObject}, call = NotImplemented) + @CApiBuiltin(name = "PyCodec_RegisterError", ret = Int, args = {ConstCharPtr, PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyCodec_ReplaceErrors", ret = PyObject, args = {PyObject}, call = NotImplemented) - @CApiBuiltin(name = "PyCodec_StreamReader", ret = PyObject, args = {ConstCharPtrAsTruffleString, PyObject, ConstCharPtrAsTruffleString}, call = NotImplemented) - @CApiBuiltin(name = "PyCodec_StreamWriter", ret = PyObject, args = {ConstCharPtrAsTruffleString, PyObject, ConstCharPtrAsTruffleString}, call = NotImplemented) + @CApiBuiltin(name = "PyCodec_StreamReader", ret = PyObject, args = {ConstCharPtr, PyObject, ConstCharPtr}, call = NotImplemented) + @CApiBuiltin(name = "PyCodec_StreamWriter", ret = PyObject, args = {ConstCharPtr, PyObject, ConstCharPtr}, call = NotImplemented) @CApiBuiltin(name = "PyCodec_Unregister", ret = Int, args = {PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyCodec_XMLCharRefReplaceErrors", ret = PyObject, args = {PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyCompile_OpcodeStackEffect", ret = Int, args = {Int, Int}, call = NotImplemented) @@ -698,40 +685,40 @@ public final class CApiFunction { @CApiBuiltin(name = "PyConfig_SetString", ret = PYSTATUS, args = {PYCONFIG_PTR, WCHAR_T_PTR_LIST, CONST_WCHAR_PTR}, call = NotImplemented) @CApiBuiltin(name = "PyConfig_SetWideStringList", ret = PYSTATUS, args = {PYCONFIG_PTR, PYWIDESTRINGLIST_PTR, Py_ssize_t, WCHAR_T_PTR_LIST}, call = NotImplemented) @CApiBuiltin(name = "PyCoro_New", ret = PyObject, args = {PyFrameObject, PyObject, PyObject}, call = NotImplemented) - @CApiBuiltin(name = "PyCriticalSection2_Begin", ret = Void, args = {PY_CRITICAL_SECTION2_PTR, PyObjectReturn, PyObjectReturn}, call = NotImplemented) + @CApiBuiltin(name = "PyCriticalSection2_Begin", ret = Void, args = {PY_CRITICAL_SECTION2_PTR, PyObject, PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyCriticalSection2_End", ret = Void, args = {PY_CRITICAL_SECTION2_PTR}, call = NotImplemented) - @CApiBuiltin(name = "PyCriticalSection_Begin", ret = Void, args = {PY_CRITICAL_SECTION_PTR, PyObjectReturn}, call = NotImplemented) + @CApiBuiltin(name = "PyCriticalSection_Begin", ret = Void, args = {PY_CRITICAL_SECTION_PTR, PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyCriticalSection_End", ret = Void, args = {PY_CRITICAL_SECTION_PTR}, call = NotImplemented) @CApiBuiltin(name = "PyDescr_NewMember", ret = PyObject, args = {PyTypeObject, PyMemberDef}, call = NotImplemented) @CApiBuiltin(name = "PyDescr_NewMethod", ret = PyObject, args = {PyTypeObject, PyMethodDef}, call = NotImplemented) @CApiBuiltin(name = "PyDescr_NewWrapper", ret = PyObject, args = {PyTypeObject, WRAPPERBASE, Pointer}, call = NotImplemented) @CApiBuiltin(name = "PyDict_MergeFromSeq2", ret = Int, args = {PyObject, PyObject, Int}, call = NotImplemented) @CApiBuiltin(name = "PyErr_FormatUnraisable", ret = Void, args = {ConstCharPtr, VARARGS}, call = CImpl) - @CApiBuiltin(name = "PyErr_ProgramText", ret = PyObject, args = {ConstCharPtrAsTruffleString, Int}, call = NotImplemented) + @CApiBuiltin(name = "PyErr_ProgramText", ret = PyObject, args = {ConstCharPtr, Int}, call = NotImplemented) @CApiBuiltin(name = "PyErr_ProgramTextObject", ret = PyObject, args = {PyObject, Int}, call = NotImplemented) @CApiBuiltin(name = "PyErr_RangedSyntaxLocationObject", ret = Void, args = {PyObject, Int, Int, Int, Int}, call = NotImplemented) @CApiBuiltin(name = "PyErr_SetImportError", ret = PyObject, args = {PyObject, PyObject, PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyErr_SetImportErrorSubclass", ret = PyObject, args = {PyObject, PyObject, PyObject, PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyErr_SetInterrupt", ret = Void, args = {}, call = NotImplemented) @CApiBuiltin(name = "PyErr_SetInterruptEx", ret = Int, args = {Int}, call = NotImplemented) - @CApiBuiltin(name = "PyErr_SyntaxLocation", ret = Void, args = {ConstCharPtrAsTruffleString, Int}, call = NotImplemented) - @CApiBuiltin(name = "PyErr_SyntaxLocationEx", ret = Void, args = {ConstCharPtrAsTruffleString, Int, Int}, call = NotImplemented) + @CApiBuiltin(name = "PyErr_SyntaxLocation", ret = Void, args = {ConstCharPtr, Int}, call = NotImplemented) + @CApiBuiltin(name = "PyErr_SyntaxLocationEx", ret = Void, args = {ConstCharPtr, Int, Int}, call = NotImplemented) @CApiBuiltin(name = "PyErr_SyntaxLocationObject", ret = Void, args = {PyObject, Int, Int}, call = NotImplemented) @CApiBuiltin(name = "PyEval_AcquireThread", ret = Void, args = {PyThreadState}, call = NotImplemented) @CApiBuiltin(name = "PyEval_EvalFrame", ret = PyObject, args = {PyFrameObject}, call = NotImplemented) @CApiBuiltin(name = "PyEval_EvalFrameEx", ret = PyObject, args = {PyFrameObject, Int}, call = NotImplemented) - @CApiBuiltin(name = "PyEval_GetFuncDesc", ret = ConstCharPtrAsTruffleString, args = {PyObject}, call = NotImplemented) - @CApiBuiltin(name = "PyEval_GetFuncName", ret = ConstCharPtrAsTruffleString, args = {PyObject}, call = NotImplemented) + @CApiBuiltin(name = "PyEval_GetFuncDesc", ret = ConstCharPtr, args = {PyObject}, call = NotImplemented) + @CApiBuiltin(name = "PyEval_GetFuncName", ret = ConstCharPtr, args = {PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyEval_ReleaseThread", ret = Void, args = {PyThreadState}, call = NotImplemented) @CApiBuiltin(name = "PyEval_SetProfile", ret = Void, args = {PY_TRACEFUNC, PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyEval_SetTrace", ret = Void, args = {PY_TRACEFUNC, PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyUnstable_Eval_RequestCodeExtraIndex", ret = Py_ssize_t, args = {freefunc}, call = NotImplemented) - @CApiBuiltin(name = "PyExceptionClass_Name", ret = ConstCharPtrAsTruffleString, args = {PyObject}, call = NotImplemented) - @CApiBuiltin(name = "PyFile_FromFd", ret = PyObject, args = {Int, ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString, Int, ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString, - ConstCharPtrAsTruffleString, Int}, call = NotImplemented) + @CApiBuiltin(name = "PyExceptionClass_Name", ret = ConstCharPtr, args = {PyObject}, call = NotImplemented) + @CApiBuiltin(name = "PyFile_FromFd", ret = PyObject, args = {Int, ConstCharPtr, ConstCharPtr, Int, ConstCharPtr, ConstCharPtr, + ConstCharPtr, Int}, call = NotImplemented) @CApiBuiltin(name = "PyFile_GetLine", ret = PyObject, args = {PyObject, Int}, call = NotImplemented) @CApiBuiltin(name = "PyFile_NewStdPrinter", ret = PyObject, args = {Int}, call = NotImplemented) - @CApiBuiltin(name = "PyFile_OpenCode", ret = PyObject, args = {ConstCharPtrAsTruffleString}, call = NotImplemented) + @CApiBuiltin(name = "PyFile_OpenCode", ret = PyObject, args = {ConstCharPtr}, call = NotImplemented) @CApiBuiltin(name = "PyFile_OpenCodeObject", ret = PyObject, args = {PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyFile_SetOpenCodeHook", ret = Int, args = {PY_OPENCODEHOOKFUNCTION, Pointer}, call = NotImplemented) @CApiBuiltin(name = "PyFloat_GetInfo", ret = PyObject, args = {}, call = NotImplemented) @@ -749,16 +736,16 @@ public final class CApiFunction { @CApiBuiltin(name = "PyFunction_SetKwDefaults", ret = Int, args = {PyObject, PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyHash_GetFuncDef", ret = PYHASH_FUNCDEF_PTR, args = {}, call = Ignored, comment = "removed from our pyhash.h") @CApiBuiltin(name = "PyImport_AppendInittab", ret = Int, args = {ConstCharPtr, func_objvoid}, call = NotImplemented) - @CApiBuiltin(name = "PyImport_ExecCodeModule", ret = PyObject, args = {ConstCharPtrAsTruffleString, PyObject}, call = NotImplemented) - @CApiBuiltin(name = "PyImport_ExecCodeModuleEx", ret = PyObject, args = {ConstCharPtrAsTruffleString, PyObject, ConstCharPtrAsTruffleString}, call = NotImplemented) + @CApiBuiltin(name = "PyImport_ExecCodeModule", ret = PyObject, args = {ConstCharPtr, PyObject}, call = NotImplemented) + @CApiBuiltin(name = "PyImport_ExecCodeModuleEx", ret = PyObject, args = {ConstCharPtr, PyObject, ConstCharPtr}, call = NotImplemented) @CApiBuiltin(name = "PyImport_ExecCodeModuleObject", ret = PyObject, args = {PyObject, PyObject, PyObject, PyObject}, call = NotImplemented) - @CApiBuiltin(name = "PyImport_ExecCodeModuleWithPathnames", ret = PyObject, args = {ConstCharPtrAsTruffleString, PyObject, ConstCharPtrAsTruffleString, - ConstCharPtrAsTruffleString}, call = NotImplemented) + @CApiBuiltin(name = "PyImport_ExecCodeModuleWithPathnames", ret = PyObject, args = {ConstCharPtr, PyObject, ConstCharPtr, + ConstCharPtr}, call = NotImplemented) @CApiBuiltin(name = "PyImport_ExtendInittab", ret = Int, args = {INITTAB}, call = NotImplemented) @CApiBuiltin(name = "PyImport_GetImporter", ret = PyObject, args = {PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyImport_GetMagicNumber", ret = Long, args = {}, call = NotImplemented) - @CApiBuiltin(name = "PyImport_GetMagicTag", ret = ConstCharPtrAsTruffleString, args = {}, call = NotImplemented) - @CApiBuiltin(name = "PyImport_ImportFrozenModule", ret = Int, args = {ConstCharPtrAsTruffleString}, call = NotImplemented) + @CApiBuiltin(name = "PyImport_GetMagicTag", ret = ConstCharPtr, args = {}, call = NotImplemented) + @CApiBuiltin(name = "PyImport_ImportFrozenModule", ret = Int, args = {ConstCharPtr}, call = NotImplemented) @CApiBuiltin(name = "PyImport_ImportFrozenModuleObject", ret = Int, args = {PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyImport_ReloadModule", ret = PyObject, args = {PyObject}, call = NotImplemented) // Not implemented, we just use handwritten stub (in import.c) to preserve the C attributes @@ -772,20 +759,20 @@ public final class CApiFunction { @CApiBuiltin(name = "PyInterpreterState_Next", ret = PyInterpreterState, args = {PyInterpreterState}, call = CImpl) @CApiBuiltin(name = "PyInterpreterState_ThreadHead", ret = PyThreadState, args = {PyInterpreterState}, call = CImpl) @CApiBuiltin(name = "PyMarshal_ReadLastObjectFromFile", ret = PyObject, args = {FILE_PTR}, call = NotImplemented) - @CApiBuiltin(name = "PyMarshal_ReadLongFromFile", ret = PrimitiveResult64, args = {FILE_PTR}, call = NotImplemented) + @CApiBuiltin(name = "PyMarshal_ReadLongFromFile", ret = Long, args = {FILE_PTR}, call = NotImplemented) @CApiBuiltin(name = "PyMarshal_ReadObjectFromFile", ret = PyObject, args = {FILE_PTR}, call = NotImplemented) @CApiBuiltin(name = "PyMarshal_ReadObjectFromString", ret = PyObject, args = {ConstCharPtr, Py_ssize_t}, call = NotImplemented) - @CApiBuiltin(name = "PyMarshal_ReadShortFromFile", ret = PrimitiveResult32, args = {FILE_PTR}, call = NotImplemented) - @CApiBuiltin(name = "PyMarshal_WriteLongToFile", ret = Void, args = {PrimitiveResult64, FILE_PTR, PrimitiveResult32}, call = NotImplemented) - @CApiBuiltin(name = "PyMarshal_WriteObjectToFile", ret = Void, args = {PyObject, FILE_PTR, PrimitiveResult32}, call = NotImplemented) - @CApiBuiltin(name = "PyMarshal_WriteObjectToString", ret = PyObject, args = {PyObject, PrimitiveResult32}, call = NotImplemented) + @CApiBuiltin(name = "PyMarshal_ReadShortFromFile", ret = Int, args = {FILE_PTR}, call = NotImplemented) + @CApiBuiltin(name = "PyMarshal_WriteLongToFile", ret = Void, args = {Long, FILE_PTR, Int}, call = NotImplemented) + @CApiBuiltin(name = "PyMarshal_WriteObjectToFile", ret = Void, args = {PyObject, FILE_PTR, Int}, call = NotImplemented) + @CApiBuiltin(name = "PyMarshal_WriteObjectToString", ret = PyObject, args = {PyObject, Int}, call = NotImplemented) @CApiBuiltin(name = "PyMem_GetAllocator", ret = Void, args = {PYMEMALLOCATORDOMAIN, PYMEMALLOCATOREX_PTR}, call = NotImplemented) @CApiBuiltin(name = "PyMem_SetAllocator", ret = Void, args = {PYMEMALLOCATORDOMAIN, PYMEMALLOCATOREX_PTR}, call = NotImplemented) @CApiBuiltin(name = "PyMem_SetupDebugHooks", ret = Void, args = {}, call = NotImplemented) - @CApiBuiltin(name = "PyMember_GetOne", ret = PyObject, args = {ConstCharPtrAsTruffleString, PyMemberDef}, call = NotImplemented) + @CApiBuiltin(name = "PyMember_GetOne", ret = PyObject, args = {ConstCharPtr, PyMemberDef}, call = NotImplemented) @CApiBuiltin(name = "PyMember_SetOne", ret = Int, args = {CHAR_PTR, PyMemberDef, PyObject}, call = NotImplemented) - @CApiBuiltin(name = "PyMonitoring_EnterScope", ret = PrimitiveResult32, args = {PY_MONITORING_STATE_PTR, UINT64_T_PTR, CONST_UINT8_T_PTR, Py_ssize_t}, call = NotImplemented) - @CApiBuiltin(name = "PyMonitoring_ExitScope", ret = PrimitiveResult32, args = {}, call = NotImplemented) + @CApiBuiltin(name = "PyMonitoring_EnterScope", ret = Int, args = {PY_MONITORING_STATE_PTR, UINT64_T_PTR, CONST_UINT8_T_PTR, Py_ssize_t}, call = NotImplemented) + @CApiBuiltin(name = "PyMonitoring_ExitScope", ret = Int, args = {}, call = NotImplemented) @CApiBuiltin(name = "PyMutex_Lock", ret = Void, args = {PY_MUTEX_PTR}, call = CImpl) @CApiBuiltin(name = "PyMutex_Unlock", ret = Void, args = {PY_MUTEX_PTR}, call = CImpl) @CApiBuiltin(name = "PyODict_DelItem", ret = Int, args = {PyObject, PyObject}, call = NotImplemented) @@ -796,7 +783,7 @@ public final class CApiFunction { @CApiBuiltin(name = "PyOS_AfterFork_Parent", ret = Void, args = {}, call = CImpl) @CApiBuiltin(name = "PyOS_BeforeFork", ret = Void, args = {}, call = CImpl) @CApiBuiltin(name = "PyOS_InterruptOccurred", ret = Int, args = {}, call = NotImplemented) - @CApiBuiltin(name = "PyOS_Readline", ret = CHAR_PTR, args = {FILE_PTR, FILE_PTR, ConstCharPtrAsTruffleString}, call = NotImplemented) + @CApiBuiltin(name = "PyOS_Readline", ret = CHAR_PTR, args = {FILE_PTR, FILE_PTR, ConstCharPtr}, call = NotImplemented) @CApiBuiltin(name = "PyOS_getsig", ret = PY_OS_SIGHANDLER, args = {Int}, call = NotImplemented) @CApiBuiltin(name = "PyOS_setsig", ret = PY_OS_SIGHANDLER, args = {Int, PY_OS_SIGHANDLER}, call = NotImplemented) @CApiBuiltin(name = "PyObject_CallFinalizer", ret = Void, args = {PyObject}, call = NotImplemented) @@ -809,27 +796,27 @@ public final class CApiFunction { @CApiBuiltin(name = "PyPickleBuffer_Release", ret = Int, args = {PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyPreConfig_InitIsolatedConfig", ret = Void, args = {PYPRECONFIG_PTR}, call = NotImplemented) @CApiBuiltin(name = "PyPreConfig_InitPythonConfig", ret = Void, args = {PYPRECONFIG_PTR}, call = NotImplemented) - @CApiBuiltin(name = "PyRun_AnyFile", ret = Int, args = {FILE_PTR, ConstCharPtrAsTruffleString}, call = NotImplemented) - @CApiBuiltin(name = "PyRun_AnyFileEx", ret = Int, args = {FILE_PTR, ConstCharPtrAsTruffleString, Int}, call = NotImplemented) - @CApiBuiltin(name = "PyRun_AnyFileExFlags", ret = Int, args = {FILE_PTR, ConstCharPtrAsTruffleString, Int, PY_COMPILER_FLAGS}, call = NotImplemented) - @CApiBuiltin(name = "PyRun_AnyFileFlags", ret = Int, args = {FILE_PTR, ConstCharPtrAsTruffleString, PY_COMPILER_FLAGS}, call = NotImplemented) - @CApiBuiltin(name = "PyRun_File", ret = PyObject, args = {FILE_PTR, ConstCharPtrAsTruffleString, Int, PyObject, PyObject}, call = NotImplemented) - @CApiBuiltin(name = "PyRun_FileEx", ret = PyObject, args = {FILE_PTR, ConstCharPtrAsTruffleString, Int, PyObject, PyObject, Int}, call = NotImplemented) - @CApiBuiltin(name = "PyRun_FileExFlags", ret = PyObject, args = {FILE_PTR, ConstCharPtrAsTruffleString, Int, PyObject, PyObject, Int, PY_COMPILER_FLAGS}, call = NotImplemented) - @CApiBuiltin(name = "PyRun_FileFlags", ret = PyObject, args = {FILE_PTR, ConstCharPtrAsTruffleString, Int, PyObject, PyObject, PY_COMPILER_FLAGS}, call = NotImplemented) - @CApiBuiltin(name = "PyRun_InteractiveLoop", ret = Int, args = {FILE_PTR, ConstCharPtrAsTruffleString}, call = NotImplemented) - @CApiBuiltin(name = "PyRun_InteractiveLoopFlags", ret = Int, args = {FILE_PTR, ConstCharPtrAsTruffleString, PY_COMPILER_FLAGS}, call = NotImplemented) - @CApiBuiltin(name = "PyRun_InteractiveOne", ret = Int, args = {FILE_PTR, ConstCharPtrAsTruffleString}, call = NotImplemented) - @CApiBuiltin(name = "PyRun_InteractiveOneFlags", ret = Int, args = {FILE_PTR, ConstCharPtrAsTruffleString, PY_COMPILER_FLAGS}, call = NotImplemented) + @CApiBuiltin(name = "PyRun_AnyFile", ret = Int, args = {FILE_PTR, ConstCharPtr}, call = NotImplemented) + @CApiBuiltin(name = "PyRun_AnyFileEx", ret = Int, args = {FILE_PTR, ConstCharPtr, Int}, call = NotImplemented) + @CApiBuiltin(name = "PyRun_AnyFileExFlags", ret = Int, args = {FILE_PTR, ConstCharPtr, Int, PY_COMPILER_FLAGS}, call = NotImplemented) + @CApiBuiltin(name = "PyRun_AnyFileFlags", ret = Int, args = {FILE_PTR, ConstCharPtr, PY_COMPILER_FLAGS}, call = NotImplemented) + @CApiBuiltin(name = "PyRun_File", ret = PyObject, args = {FILE_PTR, ConstCharPtr, Int, PyObject, PyObject}, call = NotImplemented) + @CApiBuiltin(name = "PyRun_FileEx", ret = PyObject, args = {FILE_PTR, ConstCharPtr, Int, PyObject, PyObject, Int}, call = NotImplemented) + @CApiBuiltin(name = "PyRun_FileExFlags", ret = PyObject, args = {FILE_PTR, ConstCharPtr, Int, PyObject, PyObject, Int, PY_COMPILER_FLAGS}, call = NotImplemented) + @CApiBuiltin(name = "PyRun_FileFlags", ret = PyObject, args = {FILE_PTR, ConstCharPtr, Int, PyObject, PyObject, PY_COMPILER_FLAGS}, call = NotImplemented) + @CApiBuiltin(name = "PyRun_InteractiveLoop", ret = Int, args = {FILE_PTR, ConstCharPtr}, call = NotImplemented) + @CApiBuiltin(name = "PyRun_InteractiveLoopFlags", ret = Int, args = {FILE_PTR, ConstCharPtr, PY_COMPILER_FLAGS}, call = NotImplemented) + @CApiBuiltin(name = "PyRun_InteractiveOne", ret = Int, args = {FILE_PTR, ConstCharPtr}, call = NotImplemented) + @CApiBuiltin(name = "PyRun_InteractiveOneFlags", ret = Int, args = {FILE_PTR, ConstCharPtr, PY_COMPILER_FLAGS}, call = NotImplemented) @CApiBuiltin(name = "PyRun_InteractiveOneObject", ret = Int, args = {FILE_PTR, PyObject, PY_COMPILER_FLAGS}, call = NotImplemented) - @CApiBuiltin(name = "PyRun_SimpleFile", ret = Int, args = {FILE_PTR, ConstCharPtrAsTruffleString}, call = NotImplemented) - @CApiBuiltin(name = "PyRun_SimpleFileEx", ret = Int, args = {FILE_PTR, ConstCharPtrAsTruffleString, Int}, call = NotImplemented) - @CApiBuiltin(name = "PyRun_SimpleFileExFlags", ret = Int, args = {FILE_PTR, ConstCharPtrAsTruffleString, Int, PY_COMPILER_FLAGS}, call = NotImplemented) - @CApiBuiltin(name = "PyRun_SimpleString", ret = Int, args = {ConstCharPtrAsTruffleString}, call = NotImplemented) - @CApiBuiltin(name = "PyRun_SimpleStringFlags", ret = Int, args = {ConstCharPtrAsTruffleString, PY_COMPILER_FLAGS}, call = NotImplemented) - @CApiBuiltin(name = "PyRun_String", ret = PyObject, args = {ConstCharPtrAsTruffleString, Int, PyObject, PyObject}, call = NotImplemented) + @CApiBuiltin(name = "PyRun_SimpleFile", ret = Int, args = {FILE_PTR, ConstCharPtr}, call = NotImplemented) + @CApiBuiltin(name = "PyRun_SimpleFileEx", ret = Int, args = {FILE_PTR, ConstCharPtr, Int}, call = NotImplemented) + @CApiBuiltin(name = "PyRun_SimpleFileExFlags", ret = Int, args = {FILE_PTR, ConstCharPtr, Int, PY_COMPILER_FLAGS}, call = NotImplemented) + @CApiBuiltin(name = "PyRun_SimpleString", ret = Int, args = {ConstCharPtr}, call = NotImplemented) + @CApiBuiltin(name = "PyRun_SimpleStringFlags", ret = Int, args = {ConstCharPtr, PY_COMPILER_FLAGS}, call = NotImplemented) + @CApiBuiltin(name = "PyRun_String", ret = PyObject, args = {ConstCharPtr, Int, PyObject, PyObject}, call = NotImplemented) @CApiBuiltin(name = "PySequence_In", ret = Int, args = {PyObject, PyObject}, call = NotImplemented) - @CApiBuiltin(name = "PySignal_SetWakeupFd", ret = PrimitiveResult32, args = {PrimitiveResult32}, call = NotImplemented) + @CApiBuiltin(name = "PySignal_SetWakeupFd", ret = Int, args = {Int}, call = NotImplemented) @CApiBuiltin(name = "PySlice_GetIndices", ret = Int, args = {PyObject, Py_ssize_t, PY_SSIZE_T_PTR, PY_SSIZE_T_PTR, PY_SSIZE_T_PTR}, call = NotImplemented) @CApiBuiltin(name = "PySlice_GetIndicesEx", ret = Int, args = {PyObject, Py_ssize_t, PY_SSIZE_T_PTR, PY_SSIZE_T_PTR, PY_SSIZE_T_PTR, PY_SSIZE_T_PTR}, call = NotImplemented) @CApiBuiltin(name = "PyStatus_Error", ret = PYSTATUS, args = {ConstCharPtr}, call = CImpl) @@ -840,12 +827,12 @@ public final class CApiFunction { @CApiBuiltin(name = "PyStatus_NoMemory", ret = PYSTATUS, args = {}, call = CImpl) @CApiBuiltin(name = "PyStatus_Ok", ret = PYSTATUS, args = {}, call = CImpl) @CApiBuiltin(name = "PySys_AddAuditHook", ret = Int, args = {PY_AUDITHOOKFUNCTION, Pointer}, call = NotImplemented) - @CApiBuiltin(name = "PySys_AuditTuple", ret = PrimitiveResult32, args = {ConstCharPtr, PyObjectReturn}, call = NotImplemented) + @CApiBuiltin(name = "PySys_AuditTuple", ret = Int, args = {ConstCharPtr, PyObject}, call = NotImplemented) @CApiBuiltin(name = "PySys_GetXOptions", ret = PyObject, args = {}, call = NotImplemented) @CApiBuiltin(name = "PySys_ResetWarnOptions", ret = Void, args = {}, call = NotImplemented) @CApiBuiltin(name = "PySys_SetArgv", ret = Void, args = {Int, WCHAR_T_PTR_LIST}, call = NotImplemented) @CApiBuiltin(name = "PySys_SetArgvEx", ret = Void, args = {Int, WCHAR_T_PTR_LIST, Int}, call = NotImplemented) - @CApiBuiltin(name = "PySys_SetObject", ret = Int, args = {ConstCharPtrAsTruffleString, PyObject}, call = NotImplemented) + @CApiBuiltin(name = "PySys_SetObject", ret = Int, args = {ConstCharPtr, PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyThreadState_Delete", ret = Void, args = {PyThreadState}, call = NotImplemented) @CApiBuiltin(name = "PyThreadState_EnterTracing", ret = Void, args = {PyThreadState}, call = NotImplemented) @CApiBuiltin(name = "PyThreadState_GetID", ret = UINT64_T, args = {PyThreadState}, call = CImpl) @@ -859,7 +846,7 @@ public final class CApiFunction { @CApiBuiltin(name = "PyThread_create_key", ret = Int, args = {}, call = CImpl) @CApiBuiltin(name = "PyThread_delete_key", ret = Void, args = {Int}, call = CImpl) @CApiBuiltin(name = "PyThread_delete_key_value", ret = Void, args = {Int}, call = CImpl) - @CApiBuiltin(name = "PyThread_exit_thread", ret = VoidNoReturn, args = {}, call = CImpl) + @CApiBuiltin(name = "PyThread_exit_thread", ret = Void, args = {}, call = CImpl) @CApiBuiltin(name = "PyThread_get_key_value", ret = Pointer, args = {Int}, call = CImpl) @CApiBuiltin(name = "PyThread_get_stacksize", ret = SIZE_T, args = {}, call = NotImplemented) @CApiBuiltin(name = "PyThread_get_thread_native_id", ret = UNSIGNED_LONG, args = {}, call = CImpl) @@ -867,12 +854,12 @@ public final class CApiFunction { @CApiBuiltin(name = "PyThread_set_key_value", ret = Int, args = {Int, Pointer}, call = CImpl) @CApiBuiltin(name = "PyThread_set_stacksize", ret = Int, args = {SIZE_T}, call = NotImplemented) @CApiBuiltin(name = "PyThread_start_new_thread", ret = UNSIGNED_LONG, args = {func_voidvoidptr, Pointer}, call = CImpl) - @CApiBuiltin(name = "PyThread_acquire_lock", ret = PrimitiveResult32, args = {PY_THREAD_TYPE_LOCK, PrimitiveResult32}, call = CImpl) + @CApiBuiltin(name = "PyThread_acquire_lock", ret = Int, args = {PY_THREAD_TYPE_LOCK, Int}, call = CImpl) @CApiBuiltin(name = "PyThread_allocate_lock", ret = PY_THREAD_TYPE_LOCK, args = {}, call = CImpl) @CApiBuiltin(name = "PyThread_release_lock", ret = Void, args = {PY_THREAD_TYPE_LOCK}, call = CImpl) @CApiBuiltin(name = "PyTraceBack_Print", ret = Int, args = {PyObject, PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyType_ClearCache", ret = UNSIGNED_INT, args = {}, call = NotImplemented) - @CApiBuiltin(name = "PyType_GetFullyQualifiedName", ret = PyObjectReturn, args = {PyTypeObjectRawPointer}, call = CImpl) + @CApiBuiltin(name = "PyType_GetFullyQualifiedName", ret = PyObject, args = {PyTypeObject}, call = CImpl) @CApiBuiltin(name = "PyType_SUPPORTS_WEAKREFS", ret = Int, args = {PyTypeObject}, call = CImpl) @CApiBuiltin(name = "PyUnicodeDecodeError_GetEncoding", ret = PyObject, args = {PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyUnicodeDecodeError_GetEnd", ret = Int, args = {PyObject, PY_SSIZE_T_PTR}, call = NotImplemented) @@ -880,7 +867,7 @@ public final class CApiFunction { @CApiBuiltin(name = "PyUnicodeDecodeError_GetReason", ret = PyObject, args = {PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyUnicodeDecodeError_GetStart", ret = Int, args = {PyObject, PY_SSIZE_T_PTR}, call = NotImplemented) @CApiBuiltin(name = "PyUnicodeDecodeError_SetEnd", ret = Int, args = {PyObject, Py_ssize_t}, call = NotImplemented) - @CApiBuiltin(name = "PyUnicodeDecodeError_SetReason", ret = Int, args = {PyObject, ConstCharPtrAsTruffleString}, call = NotImplemented) + @CApiBuiltin(name = "PyUnicodeDecodeError_SetReason", ret = Int, args = {PyObject, ConstCharPtr}, call = NotImplemented) @CApiBuiltin(name = "PyUnicodeDecodeError_SetStart", ret = Int, args = {PyObject, Py_ssize_t}, call = NotImplemented) @CApiBuiltin(name = "PyUnicodeEncodeError_GetEncoding", ret = PyObject, args = {PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyUnicodeEncodeError_GetEnd", ret = Int, args = {PyObject, PY_SSIZE_T_PTR}, call = NotImplemented) @@ -888,33 +875,33 @@ public final class CApiFunction { @CApiBuiltin(name = "PyUnicodeEncodeError_GetReason", ret = PyObject, args = {PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyUnicodeEncodeError_GetStart", ret = Int, args = {PyObject, PY_SSIZE_T_PTR}, call = NotImplemented) @CApiBuiltin(name = "PyUnicodeEncodeError_SetEnd", ret = Int, args = {PyObject, Py_ssize_t}, call = NotImplemented) - @CApiBuiltin(name = "PyUnicodeEncodeError_SetReason", ret = Int, args = {PyObject, ConstCharPtrAsTruffleString}, call = NotImplemented) + @CApiBuiltin(name = "PyUnicodeEncodeError_SetReason", ret = Int, args = {PyObject, ConstCharPtr}, call = NotImplemented) @CApiBuiltin(name = "PyUnicodeEncodeError_SetStart", ret = Int, args = {PyObject, Py_ssize_t}, call = NotImplemented) @CApiBuiltin(name = "PyUnicodeTranslateError_GetEnd", ret = Int, args = {PyObject, PY_SSIZE_T_PTR}, call = NotImplemented) @CApiBuiltin(name = "PyUnicodeTranslateError_GetObject", ret = PyObject, args = {PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyUnicodeTranslateError_GetReason", ret = PyObject, args = {PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyUnicodeTranslateError_GetStart", ret = Int, args = {PyObject, PY_SSIZE_T_PTR}, call = NotImplemented) @CApiBuiltin(name = "PyUnicodeTranslateError_SetEnd", ret = Int, args = {PyObject, Py_ssize_t}, call = NotImplemented) - @CApiBuiltin(name = "PyUnicodeTranslateError_SetReason", ret = Int, args = {PyObject, ConstCharPtrAsTruffleString}, call = NotImplemented) + @CApiBuiltin(name = "PyUnicodeTranslateError_SetReason", ret = Int, args = {PyObject, ConstCharPtr}, call = NotImplemented) @CApiBuiltin(name = "PyUnicodeTranslateError_SetStart", ret = Int, args = {PyObject, Py_ssize_t}, call = NotImplemented) @CApiBuiltin(name = "PyUnicode_AsCharmapString", ret = PyObject, args = {PyObject, PyObject}, call = NotImplemented) - @CApiBuiltin(name = "PyUnicode_AsDecodedObject", ret = PyObject, args = {PyObject, ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString}, call = NotImplemented) - @CApiBuiltin(name = "PyUnicode_AsDecodedUnicode", ret = PyObject, args = {PyObject, ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString}, call = NotImplemented) - @CApiBuiltin(name = "PyUnicode_AsEncodedObject", ret = PyObject, args = {PyObject, ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString}, call = NotImplemented) - @CApiBuiltin(name = "PyUnicode_AsEncodedUnicode", ret = PyObject, args = {PyObject, ConstCharPtrAsTruffleString, ConstCharPtrAsTruffleString}, call = NotImplemented) + @CApiBuiltin(name = "PyUnicode_AsDecodedObject", ret = PyObject, args = {PyObject, ConstCharPtr, ConstCharPtr}, call = NotImplemented) + @CApiBuiltin(name = "PyUnicode_AsDecodedUnicode", ret = PyObject, args = {PyObject, ConstCharPtr, ConstCharPtr}, call = NotImplemented) + @CApiBuiltin(name = "PyUnicode_AsEncodedObject", ret = PyObject, args = {PyObject, ConstCharPtr, ConstCharPtr}, call = NotImplemented) + @CApiBuiltin(name = "PyUnicode_AsEncodedUnicode", ret = PyObject, args = {PyObject, ConstCharPtr, ConstCharPtr}, call = NotImplemented) @CApiBuiltin(name = "PyUnicode_AsRawUnicodeEscapeString", ret = PyObject, args = {PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyUnicode_AsUTF16String", ret = PyObject, args = {PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyUnicode_AsUTF32String", ret = PyObject, args = {PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyUnicode_BuildEncodingMap", ret = PyObject, args = {PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyUnicode_CopyCharacters", ret = Py_ssize_t, args = {PyObject, Py_ssize_t, PyObject, Py_ssize_t, Py_ssize_t}, call = CImpl) - @CApiBuiltin(name = "PyUnicode_DecodeCharmap", ret = PyObject, args = {ConstCharPtrAsTruffleString, Py_ssize_t, PyObject, ConstCharPtrAsTruffleString}, call = NotImplemented) - @CApiBuiltin(name = "PyUnicode_DecodeUTF7", ret = PyObject, args = {ConstCharPtrAsTruffleString, Py_ssize_t, ConstCharPtrAsTruffleString}, call = NotImplemented) - @CApiBuiltin(name = "PyUnicode_DecodeUTF7Stateful", ret = PyObject, args = {ConstCharPtrAsTruffleString, Py_ssize_t, ConstCharPtrAsTruffleString, PY_SSIZE_T_PTR}, call = NotImplemented) - @CApiBuiltin(name = "PyUnicode_DecodeUnicodeEscape", ret = PyObject, args = {ConstCharPtrAsTruffleString, Py_ssize_t, ConstCharPtrAsTruffleString}, call = NotImplemented) - @CApiBuiltin(name = "PyUnicode_EqualToUTF8", ret = PrimitiveResult32, args = {PyObjectReturn, ConstCharPtr}, call = CImpl) + @CApiBuiltin(name = "PyUnicode_DecodeCharmap", ret = PyObject, args = {ConstCharPtr, Py_ssize_t, PyObject, ConstCharPtr}, call = NotImplemented) + @CApiBuiltin(name = "PyUnicode_DecodeUTF7", ret = PyObject, args = {ConstCharPtr, Py_ssize_t, ConstCharPtr}, call = NotImplemented) + @CApiBuiltin(name = "PyUnicode_DecodeUTF7Stateful", ret = PyObject, args = {ConstCharPtr, Py_ssize_t, ConstCharPtr, PY_SSIZE_T_PTR}, call = NotImplemented) + @CApiBuiltin(name = "PyUnicode_DecodeUnicodeEscape", ret = PyObject, args = {ConstCharPtr, Py_ssize_t, ConstCharPtr}, call = NotImplemented) + @CApiBuiltin(name = "PyUnicode_EqualToUTF8", ret = Int, args = {PyObject, ConstCharPtr}, call = CImpl) @CApiBuiltin(name = "PyUnicode_FSDecoder", ret = Int, args = {PyObject, Pointer}, call = CImpl) @CApiBuiltin(name = "PyUnicode_Fill", ret = Py_ssize_t, args = {PyObject, Py_ssize_t, Py_ssize_t, PY_UCS4}, call = CImpl) - @CApiBuiltin(name = "PyUnicode_GetDefaultEncoding", ret = ConstCharPtrAsTruffleString, args = {}, call = CImpl) + @CApiBuiltin(name = "PyUnicode_GetDefaultEncoding", ret = ConstCharPtr, args = {}, call = CImpl) @CApiBuiltin(name = "PyUnicode_IsIdentifier", ret = Int, args = {PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyUnicode_Partition", ret = PyObject, args = {PyObject, PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyUnicode_RPartition", ret = PyObject, args = {PyObject, PyObject}, call = NotImplemented) @@ -922,29 +909,29 @@ public final class CApiFunction { @CApiBuiltin(name = "PyUnicode_Resize", ret = Int, args = {PyObjectPtr, Py_ssize_t}, call = NotImplemented) @CApiBuiltin(name = "PyUnicode_RichCompare", ret = PyObject, args = {PyObject, PyObject, Int}, call = NotImplemented) @CApiBuiltin(name = "PyUnicode_Splitlines", ret = PyObject, args = {PyObject, Int}, call = NotImplemented) - @CApiBuiltin(name = "PyUnicode_Translate", ret = PyObject, args = {PyObject, PyObject, ConstCharPtrAsTruffleString}, call = NotImplemented) + @CApiBuiltin(name = "PyUnicode_Translate", ret = PyObject, args = {PyObject, PyObject, ConstCharPtr}, call = NotImplemented) @CApiBuiltin(name = "PyUnicode_WriteChar", ret = Int, args = {PyObject, Py_ssize_t, PY_UCS4}, call = NotImplemented) @CApiBuiltin(name = "PyWideStringList_Append", ret = PYSTATUS, args = {PYWIDESTRINGLIST_PTR, CONST_WCHAR_PTR}, call = NotImplemented) @CApiBuiltin(name = "PyWideStringList_Insert", ret = PYSTATUS, args = {PYWIDESTRINGLIST_PTR, Py_ssize_t, CONST_WCHAR_PTR}, call = NotImplemented) @CApiBuiltin(name = "PyWrapper_New", ret = PyObject, args = {PyObject, PyObject}, call = NotImplemented) @CApiBuiltin(name = "Py_AddPendingCall", ret = Int, args = {func_intvoidptr, Pointer}, call = NotImplemented) @CApiBuiltin(name = "Py_BytesMain", ret = Int, args = {Int, CHAR_PTR_LIST}, call = NotImplemented) - @CApiBuiltin(name = "Py_DecodeLocale", ret = WCHAR_T_PTR, args = {ConstCharPtrAsTruffleString, SIZE_T_PTR}, call = NotImplemented) + @CApiBuiltin(name = "Py_DecodeLocale", ret = WCHAR_T_PTR, args = {ConstCharPtr, SIZE_T_PTR}, call = NotImplemented) @CApiBuiltin(name = "Py_EncodeLocale", ret = CHAR_PTR, args = {CONST_WCHAR_PTR, SIZE_T_PTR}, call = NotImplemented) @CApiBuiltin(name = "Py_EndInterpreter", ret = Void, args = {PyThreadState}, call = NotImplemented) - @CApiBuiltin(name = "Py_Exit", ret = VoidNoReturn, args = {Int}, call = NotImplemented) - @CApiBuiltin(name = "Py_ExitStatusException", ret = VoidNoReturn, args = {PYSTATUS}, call = NotImplemented) - @CApiBuiltin(name = "Py_FatalError", ret = VoidNoReturn, args = {ConstCharPtrAsTruffleString}, call = NotImplemented) - @CApiBuiltin(name = "Py_FdIsInteractive", ret = Int, args = {FILE_PTR, ConstCharPtrAsTruffleString}, call = NotImplemented) + @CApiBuiltin(name = "Py_Exit", ret = Void, args = {Int}, call = NotImplemented) + @CApiBuiltin(name = "Py_ExitStatusException", ret = Void, args = {PYSTATUS}, call = NotImplemented) + @CApiBuiltin(name = "Py_FatalError", ret = Void, args = {ConstCharPtr}, call = NotImplemented) + @CApiBuiltin(name = "Py_FdIsInteractive", ret = Int, args = {FILE_PTR, ConstCharPtr}, call = NotImplemented) @CApiBuiltin(name = "Py_Finalize", ret = Void, args = {}, call = NotImplemented) @CApiBuiltin(name = "Py_FinalizeEx", ret = Int, args = {}, call = NotImplemented) @CApiBuiltin(name = "Py_FrozenMain", ret = Int, args = {Int, CHAR_PTR_LIST}, call = NotImplemented) - @CApiBuiltin(name = "Py_GETENV", ret = CHAR_PTR, args = {ConstCharPtrAsTruffleString}, call = CImpl) + @CApiBuiltin(name = "Py_GETENV", ret = CHAR_PTR, args = {ConstCharPtr}, call = CImpl) @CApiBuiltin(name = "Py_GetArgcArgv", ret = Void, args = {INT_LIST, WCHAR_T_PTR_PTR_LIST}, call = NotImplemented) - @CApiBuiltin(name = "Py_GetCopyright", ret = ConstCharPtrAsTruffleString, args = {}, call = NotImplemented) + @CApiBuiltin(name = "Py_GetCopyright", ret = ConstCharPtr, args = {}, call = NotImplemented) @CApiBuiltin(name = "Py_GetExecPrefix", ret = WCHAR_T_PTR, args = {}, call = NotImplemented) @CApiBuiltin(name = "Py_GetPath", ret = WCHAR_T_PTR, args = {}, call = NotImplemented) - @CApiBuiltin(name = "Py_GetPlatform", ret = ConstCharPtrAsTruffleString, args = {}, call = NotImplemented) + @CApiBuiltin(name = "Py_GetPlatform", ret = ConstCharPtr, args = {}, call = NotImplemented) @CApiBuiltin(name = "Py_GetPrefix", ret = WCHAR_T_PTR, args = {}, call = NotImplemented) @CApiBuiltin(name = "Py_GetProgramFullPath", ret = WCHAR_T_PTR, args = {}, call = NotImplemented) @CApiBuiltin(name = "Py_GetProgramName", ret = WCHAR_T_PTR, args = {}, call = NotImplemented) @@ -953,7 +940,7 @@ public final class CApiFunction { @CApiBuiltin(name = "Py_Initialize", ret = Void, args = {}, call = NotImplemented) @CApiBuiltin(name = "Py_InitializeEx", ret = Void, args = {Int}, call = NotImplemented) @CApiBuiltin(name = "Py_InitializeFromConfig", ret = PYSTATUS, args = {CONST_PYCONFIG_PTR}, call = NotImplemented) - @CApiBuiltin(name = "Py_IsFinalizing", ret = PrimitiveResult32, args = {}, call = CImpl) + @CApiBuiltin(name = "Py_IsFinalizing", ret = Int, args = {}, call = CImpl) @CApiBuiltin(name = "Py_Main", ret = Int, args = {Int, WCHAR_T_PTR_LIST}, call = NotImplemented) @CApiBuiltin(name = "Py_MakePendingCalls", ret = Int, args = {}, call = NotImplemented) @CApiBuiltin(name = "Py_NewInterpreter", ret = PyThreadState, args = {}, call = NotImplemented) @@ -979,27 +966,27 @@ public final class CApiFunction { @CApiBuiltin(name = "_PyLong_Copy", ret = PyObject, args = {PyLongObject}, call = NotImplemented) @CApiBuiltin(name = "_PyLong_GCD", ret = PyObject, args = {PyObject, PyObject}, call = NotImplemented) @CApiBuiltin(name = "_PyLong_New", ret = PyLongObject, args = {Py_ssize_t}, call = NotImplemented) - @CApiBuiltin(name = "_PyMonitoring_FireBranchEvent", ret = PrimitiveResult32, args = {PY_MONITORING_STATE_PTR, PyObjectReturn, INT32_T, PyObjectReturn}, call = NotImplemented) - @CApiBuiltin(name = "_PyMonitoring_FireCRaiseEvent", ret = PrimitiveResult32, args = {PY_MONITORING_STATE_PTR, PyObjectReturn, INT32_T}, call = NotImplemented) - @CApiBuiltin(name = "_PyMonitoring_FireCReturnEvent", ret = PrimitiveResult32, args = {PY_MONITORING_STATE_PTR, PyObjectReturn, INT32_T, PyObjectReturn}, call = NotImplemented) - @CApiBuiltin(name = "_PyMonitoring_FireCallEvent", ret = PrimitiveResult32, args = {PY_MONITORING_STATE_PTR, PyObjectReturn, INT32_T, PyObjectReturn, PyObjectReturn}, call = NotImplemented) - @CApiBuiltin(name = "_PyMonitoring_FireExceptionHandledEvent", ret = PrimitiveResult32, args = {PY_MONITORING_STATE_PTR, PyObjectReturn, INT32_T}, call = NotImplemented) - @CApiBuiltin(name = "_PyMonitoring_FireJumpEvent", ret = PrimitiveResult32, args = {PY_MONITORING_STATE_PTR, PyObjectReturn, INT32_T, PyObjectReturn}, call = NotImplemented) - @CApiBuiltin(name = "_PyMonitoring_FireLineEvent", ret = PrimitiveResult32, args = {PY_MONITORING_STATE_PTR, PyObjectReturn, INT32_T, PrimitiveResult32}, call = NotImplemented) - @CApiBuiltin(name = "_PyMonitoring_FirePyResumeEvent", ret = PrimitiveResult32, args = {PY_MONITORING_STATE_PTR, PyObjectReturn, INT32_T}, call = NotImplemented) - @CApiBuiltin(name = "_PyMonitoring_FirePyReturnEvent", ret = PrimitiveResult32, args = {PY_MONITORING_STATE_PTR, PyObjectReturn, INT32_T, PyObjectReturn}, call = NotImplemented) - @CApiBuiltin(name = "_PyMonitoring_FirePyStartEvent", ret = PrimitiveResult32, args = {PY_MONITORING_STATE_PTR, PyObjectReturn, INT32_T}, call = NotImplemented) - @CApiBuiltin(name = "_PyMonitoring_FirePyThrowEvent", ret = PrimitiveResult32, args = {PY_MONITORING_STATE_PTR, PyObjectReturn, INT32_T}, call = NotImplemented) - @CApiBuiltin(name = "_PyMonitoring_FirePyUnwindEvent", ret = PrimitiveResult32, args = {PY_MONITORING_STATE_PTR, PyObjectReturn, INT32_T}, call = NotImplemented) - @CApiBuiltin(name = "_PyMonitoring_FirePyYieldEvent", ret = PrimitiveResult32, args = {PY_MONITORING_STATE_PTR, PyObjectReturn, INT32_T, PyObjectReturn}, call = NotImplemented) - @CApiBuiltin(name = "_PyMonitoring_FireRaiseEvent", ret = PrimitiveResult32, args = {PY_MONITORING_STATE_PTR, PyObjectReturn, INT32_T}, call = NotImplemented) - @CApiBuiltin(name = "_PyMonitoring_FireReraiseEvent", ret = PrimitiveResult32, args = {PY_MONITORING_STATE_PTR, PyObjectReturn, INT32_T}, call = NotImplemented) - @CApiBuiltin(name = "_PyMonitoring_FireStopIterationEvent", ret = PrimitiveResult32, args = {PY_MONITORING_STATE_PTR, PyObjectReturn, INT32_T, PyObjectReturn}, call = NotImplemented) - @CApiBuiltin(name = "_PyObject_CallMethodId", ret = PyObject, args = {PyObject, PY_IDENTIFIER, ConstCharPtrAsTruffleString, VARARGS}, call = NotImplemented) + @CApiBuiltin(name = "_PyMonitoring_FireBranchEvent", ret = Int, args = {PY_MONITORING_STATE_PTR, PyObject, INT32_T, PyObject}, call = NotImplemented) + @CApiBuiltin(name = "_PyMonitoring_FireCRaiseEvent", ret = Int, args = {PY_MONITORING_STATE_PTR, PyObject, INT32_T}, call = NotImplemented) + @CApiBuiltin(name = "_PyMonitoring_FireCReturnEvent", ret = Int, args = {PY_MONITORING_STATE_PTR, PyObject, INT32_T, PyObject}, call = NotImplemented) + @CApiBuiltin(name = "_PyMonitoring_FireCallEvent", ret = Int, args = {PY_MONITORING_STATE_PTR, PyObject, INT32_T, PyObject, PyObject}, call = NotImplemented) + @CApiBuiltin(name = "_PyMonitoring_FireExceptionHandledEvent", ret = Int, args = {PY_MONITORING_STATE_PTR, PyObject, INT32_T}, call = NotImplemented) + @CApiBuiltin(name = "_PyMonitoring_FireJumpEvent", ret = Int, args = {PY_MONITORING_STATE_PTR, PyObject, INT32_T, PyObject}, call = NotImplemented) + @CApiBuiltin(name = "_PyMonitoring_FireLineEvent", ret = Int, args = {PY_MONITORING_STATE_PTR, PyObject, INT32_T, Int}, call = NotImplemented) + @CApiBuiltin(name = "_PyMonitoring_FirePyResumeEvent", ret = Int, args = {PY_MONITORING_STATE_PTR, PyObject, INT32_T}, call = NotImplemented) + @CApiBuiltin(name = "_PyMonitoring_FirePyReturnEvent", ret = Int, args = {PY_MONITORING_STATE_PTR, PyObject, INT32_T, PyObject}, call = NotImplemented) + @CApiBuiltin(name = "_PyMonitoring_FirePyStartEvent", ret = Int, args = {PY_MONITORING_STATE_PTR, PyObject, INT32_T}, call = NotImplemented) + @CApiBuiltin(name = "_PyMonitoring_FirePyThrowEvent", ret = Int, args = {PY_MONITORING_STATE_PTR, PyObject, INT32_T}, call = NotImplemented) + @CApiBuiltin(name = "_PyMonitoring_FirePyUnwindEvent", ret = Int, args = {PY_MONITORING_STATE_PTR, PyObject, INT32_T}, call = NotImplemented) + @CApiBuiltin(name = "_PyMonitoring_FirePyYieldEvent", ret = Int, args = {PY_MONITORING_STATE_PTR, PyObject, INT32_T, PyObject}, call = NotImplemented) + @CApiBuiltin(name = "_PyMonitoring_FireRaiseEvent", ret = Int, args = {PY_MONITORING_STATE_PTR, PyObject, INT32_T}, call = NotImplemented) + @CApiBuiltin(name = "_PyMonitoring_FireReraiseEvent", ret = Int, args = {PY_MONITORING_STATE_PTR, PyObject, INT32_T}, call = NotImplemented) + @CApiBuiltin(name = "_PyMonitoring_FireStopIterationEvent", ret = Int, args = {PY_MONITORING_STATE_PTR, PyObject, INT32_T, PyObject}, call = NotImplemented) + @CApiBuiltin(name = "_PyObject_CallMethodId", ret = PyObject, args = {PyObject, PY_IDENTIFIER, ConstCharPtr, VARARGS}, call = NotImplemented) @CApiBuiltin(name = "_PyObject_FunctionStr", ret = PyObject, args = {PyObject}, call = NotImplemented) @CApiBuiltin(name = "_PyObject_GenericGetAttrWithDict", ret = PyObject, args = {PyObject, PyObject, PyObject, Int}, call = NotImplemented) @CApiBuiltin(name = "_PyObject_GenericSetAttrWithDict", ret = Int, args = {PyObject, PyObject, PyObject, PyObject}, call = NotImplemented) - @CApiBuiltin(name = "_PyObject_SetManagedDict", ret = PrimitiveResult32, args = {PyObjectReturn, PyObjectReturn}, call = NotImplemented) + @CApiBuiltin(name = "_PyObject_SetManagedDict", ret = Int, args = {PyObject, PyObject}, call = NotImplemented) @CApiBuiltin(name = "_PySlice_FromIndices", ret = PyObject, args = {Py_ssize_t, Py_ssize_t}, call = NotImplemented) @CApiBuiltin(name = "_PySlice_GetLongIndices", ret = Int, args = {PySliceObject, PyObject, PyObjectPtr, PyObjectPtr, PyObjectPtr}, call = NotImplemented) @CApiBuiltin(name = "_PyStack_AsDict", ret = PyObject, args = {PyObjectConstPtr, PyObject}, call = NotImplemented) @@ -1009,62 +996,62 @@ public final class CApiFunction { @CApiBuiltin(name = "_PyUnicodeWriter_Init", ret = Void, args = {_PYUNICODEWRITER_PTR}, call = CImpl) @CApiBuiltin(name = "_PyUnicodeWriter_PrepareInternal", ret = Int, args = {_PYUNICODEWRITER_PTR, Py_ssize_t, PY_UCS4}, call = CImpl) @CApiBuiltin(name = "_PyUnicodeWriter_PrepareKindInternal", ret = Int, args = {_PYUNICODEWRITER_PTR, Int}, call = CImpl) - @CApiBuiltin(name = "_PyUnicodeWriter_WriteASCIIString", ret = Int, args = {_PYUNICODEWRITER_PTR, ConstCharPtrAsTruffleString, Py_ssize_t}, call = CImpl) + @CApiBuiltin(name = "_PyUnicodeWriter_WriteASCIIString", ret = Int, args = {_PYUNICODEWRITER_PTR, ConstCharPtr, Py_ssize_t}, call = CImpl) @CApiBuiltin(name = "_PyUnicodeWriter_WriteChar", ret = Int, args = {_PYUNICODEWRITER_PTR, PY_UCS4}, call = CImpl) - @CApiBuiltin(name = "_PyUnicodeWriter_WriteLatin1String", ret = Int, args = {_PYUNICODEWRITER_PTR, ConstCharPtrAsTruffleString, Py_ssize_t}, call = NotImplemented) + @CApiBuiltin(name = "_PyUnicodeWriter_WriteLatin1String", ret = Int, args = {_PYUNICODEWRITER_PTR, ConstCharPtr, Py_ssize_t}, call = NotImplemented) @CApiBuiltin(name = "_PyUnicodeWriter_WriteStr", ret = Int, args = {_PYUNICODEWRITER_PTR, PyObject}, call = CImpl) @CApiBuiltin(name = "_PyUnicodeWriter_WriteSubstring", ret = Int, args = {_PYUNICODEWRITER_PTR, PyObject, Py_ssize_t, Py_ssize_t}, call = CImpl) @CApiBuiltin(name = "PyUnicode_Format", ret = PyObject, args = {PyObject, PyObject}, call = CImpl) @CApiBuiltin(name = "_Py_InitializeMain", ret = PYSTATUS, args = {}, call = NotImplemented) - @CApiBuiltin(name = "_Py_fopen_obj", ret = FILE_PTR, args = {PyObject, ConstCharPtrAsTruffleString}, call = NotImplemented) - @CApiBuiltin(name = "PyUnstable_AtExit", ret = PrimitiveResult32, args = {PyInterpreterState, atexit_datacallbackfunc, Pointer}, call = NotImplemented) - @CApiBuiltin(name = "PyCode_AddWatcher", ret = PrimitiveResult32, args = {PyCode_WatchCallback}, call = NotImplemented) - @CApiBuiltin(name = "PyCode_ClearWatcher", ret = PrimitiveResult32, args = {PrimitiveResult32}, call = NotImplemented) + @CApiBuiltin(name = "_Py_fopen_obj", ret = FILE_PTR, args = {PyObject, ConstCharPtr}, call = NotImplemented) + @CApiBuiltin(name = "PyUnstable_AtExit", ret = Int, args = {PyInterpreterState, atexit_datacallbackfunc, Pointer}, call = NotImplemented) + @CApiBuiltin(name = "PyCode_AddWatcher", ret = Int, args = {PyCode_WatchCallback}, call = NotImplemented) + @CApiBuiltin(name = "PyCode_ClearWatcher", ret = Int, args = {Int}, call = NotImplemented) @CApiBuiltin(name = "PyFunction_SetVectorcall", ret = Void, args = {PyFunctionObject, vectorcallfunc}, call = NotImplemented) - @CApiBuiltin(name = "PyUnstable_Code_GetExtra", ret = PrimitiveResult32, args = {PyObject, Py_ssize_t, VOID_PTR_LIST}, call = NotImplemented) - @CApiBuiltin(name = "PyUnstable_Code_SetExtra", ret = PrimitiveResult32, args = {PyObject, Py_ssize_t, Pointer}, call = NotImplemented) - @CApiBuiltin(name = "PyUnstable_CopyPerfMapFile", ret = PrimitiveResult32, args = {ConstCharPtr}, call = NotImplemented) - @CApiBuiltin(name = "PyDict_AddWatcher", ret = PrimitiveResult32, args = {PyDict_WatchCallback}, call = NotImplemented) - @CApiBuiltin(name = "PyDict_ClearWatcher", ret = PrimitiveResult32, args = {PrimitiveResult32}, call = NotImplemented) - @CApiBuiltin(name = "PyDict_Unwatch", ret = PrimitiveResult32, args = {PrimitiveResult32, PyObjectRawPointer}, call = NotImplemented) - @CApiBuiltin(name = "PyDict_Watch", ret = PrimitiveResult32, args = {PrimitiveResult32, PyObjectRawPointer}, call = NotImplemented) - @CApiBuiltin(name = "PyErr_DisplayException", ret = Void, args = {PyObjectRawPointer}, call = NotImplemented) - @CApiBuiltin(name = "PyErr_GetRaisedException", ret = PyObjectRawPointer, args = {}, call = CImpl) - @CApiBuiltin(name = "PyErr_SetRaisedException", ret = Void, args = {PyObjectRawPointer}, call = CImpl) - @CApiBuiltin(name = "PyEval_SetProfileAllThreads", ret = Void, args = {PY_TRACEFUNC, PyObjectRawPointer}, call = NotImplemented) - @CApiBuiltin(name = "PyEval_SetTraceAllThreads", ret = Void, args = {PY_TRACEFUNC, PyObjectRawPointer}, call = NotImplemented) - @CApiBuiltin(name = "PyFrame_GetVar", ret = PyObjectRawPointer, args = {PyFrameObjectBorrowed, PyObjectRawPointer}, call = NotImplemented) - @CApiBuiltin(name = "PyFrame_GetVarString", ret = PyObjectRawPointer, args = {PyFrameObjectBorrowed, ConstCharPtr}, call = NotImplemented) - @CApiBuiltin(name = "PyFunction_AddWatcher", ret = PrimitiveResult32, args = {PyFunction_WatchCallback}, call = NotImplemented) - @CApiBuiltin(name = "PyFunction_ClearWatcher", ret = PrimitiveResult32, args = {PrimitiveResult32}, call = NotImplemented) - @CApiBuiltin(name = "PyGen_GetCode", ret = PyCodeObjectTransfer, args = {PY_GEN_OBJECT}, call = NotImplemented) - @CApiBuiltin(name = "PyObject_GetItemData", ret = Pointer, args = {PyObjectRawPointer}, call = CImpl) - @CApiBuiltin(name = "PyObject_GetTypeData", ret = Pointer, args = {PyObjectRawPointer, PyTypeObjectTransfer}, call = CImpl) - @CApiBuiltin(name = "PyType_AddWatcher", ret = PrimitiveResult32, args = {PyType_WatchCallback}, call = NotImplemented) - @CApiBuiltin(name = "PyType_ClearWatcher", ret = PrimitiveResult32, args = {PrimitiveResult32}, call = NotImplemented) - @CApiBuiltin(name = "PyType_FromMetaclass", ret = PyObjectRawPointer, args = {PyTypeObjectTransfer, PyObjectRawPointer, PY_TYPE_SPEC, PyObjectRawPointer}, call = CImpl) - @CApiBuiltin(name = "PyType_GetDict", ret = PyObjectRawPointer, args = {PyTypeObjectTransfer}, call = CImpl) - @CApiBuiltin(name = "PyType_GetTypeDataSize", ret = Py_ssize_t, args = {PyTypeObjectTransfer}, call = CImpl) - @CApiBuiltin(name = "PyType_Unwatch", ret = PrimitiveResult32, args = {PrimitiveResult32, PyObjectRawPointer}, call = NotImplemented) - @CApiBuiltin(name = "PyType_Watch", ret = PrimitiveResult32, args = {PrimitiveResult32, PyObjectRawPointer}, call = NotImplemented) - @CApiBuiltin(name = "PyUnstable_Exc_PrepReraiseStar", ret = PyObjectRawPointer, args = {PyObjectRawPointer, PyObjectRawPointer}, call = NotImplemented) + @CApiBuiltin(name = "PyUnstable_Code_GetExtra", ret = Int, args = {PyObject, Py_ssize_t, VOID_PTR_LIST}, call = NotImplemented) + @CApiBuiltin(name = "PyUnstable_Code_SetExtra", ret = Int, args = {PyObject, Py_ssize_t, Pointer}, call = NotImplemented) + @CApiBuiltin(name = "PyUnstable_CopyPerfMapFile", ret = Int, args = {ConstCharPtr}, call = NotImplemented) + @CApiBuiltin(name = "PyDict_AddWatcher", ret = Int, args = {PyDict_WatchCallback}, call = NotImplemented) + @CApiBuiltin(name = "PyDict_ClearWatcher", ret = Int, args = {Int}, call = NotImplemented) + @CApiBuiltin(name = "PyDict_Unwatch", ret = Int, args = {Int, PyObject}, call = NotImplemented) + @CApiBuiltin(name = "PyDict_Watch", ret = Int, args = {Int, PyObject}, call = NotImplemented) + @CApiBuiltin(name = "PyErr_DisplayException", ret = Void, args = {PyObject}, call = NotImplemented) + @CApiBuiltin(name = "PyErr_GetRaisedException", ret = PyObject, args = {}, call = CImpl) + @CApiBuiltin(name = "PyErr_SetRaisedException", ret = Void, args = {PyObject}, call = CImpl) + @CApiBuiltin(name = "PyEval_SetProfileAllThreads", ret = Void, args = {PY_TRACEFUNC, PyObject}, call = NotImplemented) + @CApiBuiltin(name = "PyEval_SetTraceAllThreads", ret = Void, args = {PY_TRACEFUNC, PyObject}, call = NotImplemented) + @CApiBuiltin(name = "PyFrame_GetVar", ret = PyObject, args = {PyFrameObject, PyObject}, call = NotImplemented) + @CApiBuiltin(name = "PyFrame_GetVarString", ret = PyObject, args = {PyFrameObject, ConstCharPtr}, call = NotImplemented) + @CApiBuiltin(name = "PyFunction_AddWatcher", ret = Int, args = {PyFunction_WatchCallback}, call = NotImplemented) + @CApiBuiltin(name = "PyFunction_ClearWatcher", ret = Int, args = {Int}, call = NotImplemented) + @CApiBuiltin(name = "PyGen_GetCode", ret = PyCodeObject, args = {PY_GEN_OBJECT}, call = NotImplemented) + @CApiBuiltin(name = "PyObject_GetItemData", ret = Pointer, args = {PyObject}, call = CImpl) + @CApiBuiltin(name = "PyObject_GetTypeData", ret = Pointer, args = {PyObject, PyTypeObject}, call = CImpl) + @CApiBuiltin(name = "PyType_AddWatcher", ret = Int, args = {PyType_WatchCallback}, call = NotImplemented) + @CApiBuiltin(name = "PyType_ClearWatcher", ret = Int, args = {Int}, call = NotImplemented) + @CApiBuiltin(name = "PyType_FromMetaclass", ret = PyObject, args = {PyTypeObject, PyObject, PY_TYPE_SPEC, PyObject}, call = CImpl) + @CApiBuiltin(name = "PyType_GetDict", ret = PyObject, args = {PyTypeObject}, call = CImpl) + @CApiBuiltin(name = "PyType_GetTypeDataSize", ret = Py_ssize_t, args = {PyTypeObject}, call = CImpl) + @CApiBuiltin(name = "PyType_Unwatch", ret = Int, args = {Int, PyObject}, call = NotImplemented) + @CApiBuiltin(name = "PyType_Watch", ret = Int, args = {Int, PyObject}, call = NotImplemented) + @CApiBuiltin(name = "PyUnstable_Exc_PrepReraiseStar", ret = PyObject, args = {PyObject, PyObject}, call = NotImplemented) @CApiBuiltin(name = "PyUnstable_GC_VisitObjects", ret = Void, args = {gcvisitobjects_t, Pointer}, call = CImpl) - @CApiBuiltin(name = "PyUnstable_InterpreterFrame_GetCode", ret = PyObjectRawPointer, args = {_PyInterpreterFrame}, call = NotImplemented) - @CApiBuiltin(name = "PyUnstable_InterpreterFrame_GetLasti", ret = PrimitiveResult32, args = {_PyInterpreterFrame}, call = NotImplemented) - @CApiBuiltin(name = "PyUnstable_InterpreterFrame_GetLine", ret = PrimitiveResult32, args = {_PyInterpreterFrame}, call = NotImplemented) + @CApiBuiltin(name = "PyUnstable_InterpreterFrame_GetCode", ret = PyObject, args = {_PyInterpreterFrame}, call = NotImplemented) + @CApiBuiltin(name = "PyUnstable_InterpreterFrame_GetLasti", ret = Int, args = {_PyInterpreterFrame}, call = NotImplemented) + @CApiBuiltin(name = "PyUnstable_InterpreterFrame_GetLine", ret = Int, args = {_PyInterpreterFrame}, call = NotImplemented) @CApiBuiltin(name = "PyUnstable_Long_CompactValue", ret = Py_ssize_t, args = {ConstPyLongObject}, call = CImpl) - @CApiBuiltin(name = "PyUnstable_Object_ClearWeakRefsNoCallbacks", ret = Void, args = {PyObjectReturn}, call = NotImplemented) - @CApiBuiltin(name = "PyUnstable_Object_GC_NewWithExtraData", ret = PyObjectRawPointer, args = {PyTypeObjectTransfer, SIZE_T}, call = CImpl) + @CApiBuiltin(name = "PyUnstable_Object_ClearWeakRefsNoCallbacks", ret = Void, args = {PyObject}, call = NotImplemented) + @CApiBuiltin(name = "PyUnstable_Object_GC_NewWithExtraData", ret = PyObject, args = {PyTypeObject, SIZE_T}, call = CImpl) @CApiBuiltin(name = "PyUnstable_PerfMapState_Fini", ret = Void, args = {}, call = NotImplemented) - @CApiBuiltin(name = "PyUnstable_PerfMapState_Init", ret = PrimitiveResult32, args = {}, call = NotImplemented) - @CApiBuiltin(name = "PyUnstable_PerfTrampoline_CompileCode", ret = PrimitiveResult32, args = {PyCodeObjectRawPointer}, call = NotImplemented) - @CApiBuiltin(name = "PyUnstable_PerfTrampoline_SetPersistAfterFork", ret = PrimitiveResult32, args = {PrimitiveResult32}, call = NotImplemented) - @CApiBuiltin(name = "PyUnstable_Type_AssignVersionTag", ret = PrimitiveResult32, args = {PyTypeObjectTransfer}, call = NotImplemented) - @CApiBuiltin(name = "PyUnstable_WritePerfMapEntry", ret = PrimitiveResult32, args = {CONST_VOID_PTR, UNSIGNED_INT, ConstCharPtr}, call = NotImplemented) + @CApiBuiltin(name = "PyUnstable_PerfMapState_Init", ret = Int, args = {}, call = NotImplemented) + @CApiBuiltin(name = "PyUnstable_PerfTrampoline_CompileCode", ret = Int, args = {PyCodeObject}, call = NotImplemented) + @CApiBuiltin(name = "PyUnstable_PerfTrampoline_SetPersistAfterFork", ret = Int, args = {Int}, call = NotImplemented) + @CApiBuiltin(name = "PyUnstable_Type_AssignVersionTag", ret = Int, args = {PyTypeObject}, call = NotImplemented) + @CApiBuiltin(name = "PyUnstable_WritePerfMapEntry", ret = Int, args = {CONST_VOID_PTR, UNSIGNED_INT, ConstCharPtr}, call = NotImplemented) @CApiBuiltin(name = "PyVectorcall_NARGS", ret = Py_ssize_t, args = {SIZE_T}, call = CImpl) @CApiBuiltin(name = "Py_NewInterpreterFromConfig", ret = PYSTATUS, args = {PyThreadStatePtr, ConstPyInterpreterConfig}, call = NotImplemented) - @CApiBuiltin(name = "_PyLong_FromDigits", ret = PyLongObject, args = {PrimitiveResult32, Py_ssize_t, DIGIT_PTR}, call = NotImplemented) - @CApiBuiltin(name = "_Py_NewReferenceNoTotal", ret = Void, args = {PyObjectRawPointer}, call = CImpl) + @CApiBuiltin(name = "_PyLong_FromDigits", ret = PyLongObject, args = {Int, Py_ssize_t, DIGIT_PTR}, call = NotImplemented) + @CApiBuiltin(name = "_Py_NewReferenceNoTotal", ret = Void, args = {PyObject}, call = CImpl) // ABI3T-only functions that are not supported yet. Use Ignored to validate their signatures // without generating C stubs against the 3.13 headers, which lack ABI3T declarations. @@ -1074,46 +1061,46 @@ public final class CApiFunction { @CApiBuiltin(name = "PyInterpreterView_Close", ret = Void, args = {PY_INTERPRETER_VIEW_PTR}, call = Ignored, abi = ABI.ABI3T) @CApiBuiltin(name = "PyInterpreterView_FromCurrent", ret = PY_INTERPRETER_VIEW_PTR, call = Ignored, abi = ABI.ABI3T) @CApiBuiltin(name = "PyInterpreterView_FromMain", ret = PY_INTERPRETER_VIEW_PTR, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "PyIter_NextItem", ret = PrimitiveResult32, args = {PyObjectReturn, PyObjectPtr}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "PyLongWriter_Create", ret = PY_LONG_WRITER_PTR, args = {PrimitiveResult32, Py_ssize_t, VOID_PTR_LIST}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "PyIter_NextItem", ret = Int, args = {PyObject, PyObjectPtr}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "PyLongWriter_Create", ret = PY_LONG_WRITER_PTR, args = {Int, Py_ssize_t, VOID_PTR_LIST}, call = Ignored, abi = ABI.ABI3T) @CApiBuiltin(name = "PyLongWriter_Discard", ret = Void, args = {PY_LONG_WRITER_PTR}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "PyLongWriter_Finish", ret = PyObjectReturn, args = {PY_LONG_WRITER_PTR}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "PyLong_AsInt32", ret = PrimitiveResult32, args = {PyObjectReturn, INT32_T_PTR}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "PyLong_AsInt64", ret = PrimitiveResult32, args = {PyObjectReturn, INT64_T_PTR}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "PyLong_AsUInt32", ret = PrimitiveResult32, args = {PyObjectReturn, UINT32_T_PTR}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "PyLong_AsUInt64", ret = PrimitiveResult32, args = {PyObjectReturn, UINT64_T_PTR}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "PyLong_Export", ret = PrimitiveResult32, args = {PyObjectReturn, PY_LONG_EXPORT_PTR}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "PyLongWriter_Finish", ret = PyObject, args = {PY_LONG_WRITER_PTR}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "PyLong_AsInt32", ret = Int, args = {PyObject, INT32_T_PTR}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "PyLong_AsInt64", ret = Int, args = {PyObject, INT64_T_PTR}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "PyLong_AsUInt32", ret = Int, args = {PyObject, UINT32_T_PTR}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "PyLong_AsUInt64", ret = Int, args = {PyObject, UINT64_T_PTR}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "PyLong_Export", ret = Int, args = {PyObject, PY_LONG_EXPORT_PTR}, call = Ignored, abi = ABI.ABI3T) @CApiBuiltin(name = "PyLong_FreeExport", ret = Void, args = {PY_LONG_EXPORT_PTR}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "PyLong_FromInt32", ret = PyObjectReturn, args = {INT32_T}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "PyLong_FromInt64", ret = PyObjectReturn, args = {INT64_T}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "PyLong_FromUInt32", ret = PyObjectReturn, args = {UINT32_T}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "PyLong_FromUInt64", ret = PyObjectReturn, args = {UINT64_T}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "PyLong_FromInt32", ret = PyObject, args = {INT32_T}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "PyLong_FromInt64", ret = PyObject, args = {INT64_T}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "PyLong_FromUInt32", ret = PyObject, args = {UINT32_T}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "PyLong_FromUInt64", ret = PyObject, args = {UINT64_T}, call = Ignored, abi = ABI.ABI3T) @CApiBuiltin(name = "PyLong_GetNativeLayout", ret = CONST_PY_LONG_LAYOUT_PTR, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "PyObject_GetTypeData_DuringGC", ret = Pointer, args = {PyObjectReturn, PyTypeObjectRawPointer}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "PySys_GetAttr", ret = PyObjectReturn, args = {PyObjectReturn}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "PySys_GetAttrString", ret = PyObjectReturn, args = {ConstCharPtr}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "PySys_GetOptionalAttr", ret = PrimitiveResult32, args = {PyObjectReturn, PyObjectPtr}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "PySys_GetOptionalAttrString", ret = PrimitiveResult32, args = {ConstCharPtr, PyObjectPtr}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "PyObject_GetTypeData_DuringGC", ret = Pointer, args = {PyObject, PyTypeObject}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "PySys_GetAttr", ret = PyObject, args = {PyObject}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "PySys_GetAttrString", ret = PyObject, args = {ConstCharPtr}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "PySys_GetOptionalAttr", ret = Int, args = {PyObject, PyObjectPtr}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "PySys_GetOptionalAttrString", ret = Int, args = {ConstCharPtr, PyObjectPtr}, call = Ignored, abi = ABI.ABI3T) @CApiBuiltin(name = "PyThreadState_Ensure", ret = PY_THREAD_STATE_TOKEN_PTR, args = {PY_INTERPRETER_GUARD_PTR}, call = Ignored, abi = ABI.ABI3T) @CApiBuiltin(name = "PyThreadState_EnsureFromView", ret = PY_THREAD_STATE_TOKEN_PTR, args = {PY_INTERPRETER_VIEW_PTR}, call = Ignored, abi = ABI.ABI3T) @CApiBuiltin(name = "PyThreadState_Release", ret = Void, args = {PY_THREAD_STATE_TOKEN_PTR}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "PyType_Freeze", ret = PrimitiveResult32, args = {PyTypeObjectRawPointer}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "PyType_FromSlots", ret = PyObjectReturn, args = {PY_SLOT_PTR}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "PyType_GetBaseByToken", ret = PrimitiveResult32, args = {PyTypeObjectRawPointer, Pointer, PY_TYPE_OBJECT_PTR_LIST}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "PyType_GetBaseByToken_DuringGC", ret = PrimitiveResult32, args = {PyTypeObjectRawPointer, Pointer, PY_TYPE_OBJECT_PTR_LIST}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "PyType_GetModuleByToken", ret = PyObjectReturn, args = {PyTypeObjectRawPointer, CONST_VOID_PTR}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "PyType_GetModuleByToken_DuringGC", ret = PyObjectReturn, args = {PyTypeObjectRawPointer, CONST_VOID_PTR}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "PyType_GetModuleState_DuringGC", ret = Pointer, args = {PyTypeObjectRawPointer}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "PyType_GetModule_DuringGC", ret = PyObjectReturn, args = {PyTypeObjectRawPointer}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "PyUnicode_Equal", ret = PrimitiveResult32, args = {PyObjectReturn, PyObjectReturn}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "Py_IS_TYPE", ret = PrimitiveResult32, args = {PyObjectReturn, PyTypeObjectRawPointer}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "Py_PACK_FULL_VERSION", ret = UINT32_T, args = {PrimitiveResult32, PrimitiveResult32, PrimitiveResult32, PrimitiveResult32, - PrimitiveResult32}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "Py_PACK_VERSION", ret = UINT32_T, args = {PrimitiveResult32, PrimitiveResult32}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "Py_REFCNT", ret = Py_ssize_t, args = {PyObjectReturn}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "PyType_Freeze", ret = Int, args = {PyTypeObject}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "PyType_FromSlots", ret = PyObject, args = {PY_SLOT_PTR}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "PyType_GetBaseByToken", ret = Int, args = {PyTypeObject, Pointer, PY_TYPE_OBJECT_PTR_LIST}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "PyType_GetBaseByToken_DuringGC", ret = Int, args = {PyTypeObject, Pointer, PY_TYPE_OBJECT_PTR_LIST}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "PyType_GetModuleByToken", ret = PyObject, args = {PyTypeObject, CONST_VOID_PTR}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "PyType_GetModuleByToken_DuringGC", ret = PyObject, args = {PyTypeObject, CONST_VOID_PTR}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "PyType_GetModuleState_DuringGC", ret = Pointer, args = {PyTypeObject}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "PyType_GetModule_DuringGC", ret = PyObject, args = {PyTypeObject}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "PyUnicode_Equal", ret = Int, args = {PyObject, PyObject}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "Py_IS_TYPE", ret = Int, args = {PyObject, PyTypeObject}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "Py_PACK_FULL_VERSION", ret = UINT32_T, args = {Int, Int, Int, Int, + Int}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "Py_PACK_VERSION", ret = UINT32_T, args = {Int, Int}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "Py_REFCNT", ret = Py_ssize_t, args = {PyObject}, call = Ignored, abi = ABI.ABI3T) @CApiBuiltin(name = "Py_SET_SIZE", ret = Void, args = {PyVarObject, Py_ssize_t}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "Py_SIZE", ret = Py_ssize_t, args = {PyObjectReturn}, call = Ignored, abi = ABI.ABI3T) - @CApiBuiltin(name = "Py_TYPE", ret = PyTypeObjectRawPointer, args = {PyObjectReturn}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "Py_SIZE", ret = Py_ssize_t, args = {PyObject}, call = Ignored, abi = ABI.ABI3T) + @CApiBuiltin(name = "Py_TYPE", ret = PyTypeObject, args = {PyObject}, call = Ignored, abi = ABI.ABI3T) // Windows only functions @CApiBuiltin(name = "PyUnicode_DecodeMBCS", ret = PyObject, args = {ConstCharPtr, Py_ssize_t, ConstCharPtr}, call = NotImplemented) diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/ExternalFunctionNodes.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/ExternalFunctionNodes.java index 16632cd58b..fd1c1d3dad 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/ExternalFunctionNodes.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/ExternalFunctionNodes.java @@ -40,7 +40,7 @@ */ package com.oracle.graal.python.builtins.objects.cext.capi; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectReturn; +import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; import static com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.PExternalFunctionWrapper.BINARYFUNC; import static com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.PExternalFunctionWrapper.BINARYFUNC_L; import static com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.PExternalFunctionWrapper.BINARYFUNC_R; @@ -591,7 +591,7 @@ public abstract static class MethodDescriptorRoot extends WrapperBaseRoot { MethodDescriptorRoot(PythonLanguage language, TruffleString name, boolean isStatic, MethodDescriptorWrapper wrapper) { super(language, name, isStatic); - assert wrapper.returnValue == PyObjectReturn; + assert wrapper.returnValue == PyObject; this.timing = CApiTiming.create(true, name); } @@ -654,7 +654,7 @@ public abstract static class ObjectWrapperDescriptorRoot extends WrapperDescript ObjectWrapperDescriptorRoot(PythonLanguage language, TruffleString name, PExternalFunctionWrapper wrapper) { super(language, name, wrapper); - assert wrapper.signature.returnValue == PyObjectReturn; + assert wrapper.signature.returnValue == PyObject; } final NativeToPythonReturnNode ensureNativeToPythonReturnNode() { diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/ExternalFunctionSignature.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/ExternalFunctionSignature.java index cdd31b986a..1e033dd326 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/ExternalFunctionSignature.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/ExternalFunctionSignature.java @@ -41,7 +41,7 @@ package com.oracle.graal.python.builtins.objects.cext.capi; -import static com.oracle.graal.python.annotations.ArgDescriptor.CharPtrAsTruffleString; +import static com.oracle.graal.python.annotations.ArgDescriptor.CHAR_PTR; import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; import static com.oracle.graal.python.annotations.ArgDescriptor.ConstPyLongObject; import static com.oracle.graal.python.annotations.ArgDescriptor.Double; @@ -49,14 +49,12 @@ import static com.oracle.graal.python.annotations.ArgDescriptor.INT8_T_PTR; import static com.oracle.graal.python.annotations.ArgDescriptor.INTPTR_T_PTR; import static com.oracle.graal.python.annotations.ArgDescriptor.Int; +import static com.oracle.graal.python.annotations.ArgDescriptor.Long; import static com.oracle.graal.python.annotations.ArgDescriptor.PY_BUFFER_PTR; import static com.oracle.graal.python.annotations.ArgDescriptor.PY_CAPSULE_DESTRUCTOR; import static com.oracle.graal.python.annotations.ArgDescriptor.Pointer; -import static com.oracle.graal.python.annotations.ArgDescriptor.PrimitiveResult64; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectPtr; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectReturn; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectTransfer; import static com.oracle.graal.python.annotations.ArgDescriptor.PyThreadState; import static com.oracle.graal.python.annotations.ArgDescriptor.PyThreadStatePtr; import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObject; @@ -80,33 +78,33 @@ @CApiExternalFunctionSignatures public enum ExternalFunctionSignature implements NativeCExtSymbol { // typedef PyObject *(*PyCFunction)(PyObject *, PyObject *); - PYCFUNCTION(false, PyObjectReturn, PyObject, PyObject), + PYCFUNCTION(false, PyObject, PyObject, PyObject), // typedef PyObject *(*PyCFunctionWithKeywords)(PyObject *, PyObject *, PyObject *); - PYCFUNCTION_WITH_KEYWORDS(false, PyObjectReturn, PyObject, PyObject, PyObject), + PYCFUNCTION_WITH_KEYWORDS(false, PyObject, PyObject, PyObject, PyObject), // typedef PyObject *(*_PyCFunctionFast) (PyObject *, PyObject *const *, Py_ssize_t); - PYCFUNCTION_FAST(false, PyObjectReturn, PyObject, Pointer, Py_ssize_t), + PYCFUNCTION_FAST(false, PyObject, PyObject, Pointer, Py_ssize_t), // typedef PyObject *(*_PyCFunctionFastWithKeywords) (PyObject *, PyObject *const *, Py_ssize_t, // PyObject *); - PYCFUNCTION_FAST_WITH_KEYWORDS(false, PyObjectReturn, PyObject, Pointer, Py_ssize_t, PyObject), + PYCFUNCTION_FAST_WITH_KEYWORDS(false, PyObject, PyObject, Pointer, Py_ssize_t, PyObject), // typedef PyObject *(*PyCMethod)(PyObject *, PyTypeObject *, PyObject *const *, size_t, // PyObject *); - PYCMETHOD(false, PyObjectReturn, PyObject, PyTypeObject, Pointer, Py_ssize_t, PyObject), + PYCMETHOD(false, PyObject, PyObject, PyTypeObject, Pointer, Py_ssize_t, PyObject), // typedef PyObject * (*unaryfunc)(PyObject *); - UNARYFUNC(false, PyObjectReturn, PyObject), + UNARYFUNC(false, PyObject, PyObject), // typedef PyObject * (*binaryfunc)(PyObject *, PyObject *); - BINARYFUNC(false, PyObjectReturn, PyObject, PyObject), + BINARYFUNC(false, PyObject, PyObject, PyObject), // typedef PyObject * (*ternaryfunc)(PyObject *, PyObject *, PyObject *); - TERNARYFUNC(false, PyObjectReturn, PyObject, PyObject, PyObject), + TERNARYFUNC(false, PyObject, PyObject, PyObject, PyObject), // typedef int (*inquiry)(PyObject *); INQUIRY(false, Int, PyObject), // typedef Py_ssize_t (*lenfunc)(PyObject *); - LENFUNC(false, PrimitiveResult64, PyObject), + LENFUNC(false, Long, PyObject), // typedef PyObject *(*ssizeargfunc)(PyObject *, Py_ssize_t); - SSIZEARGFUNC(false, PyObjectReturn, PyObject, Py_ssize_t), + SSIZEARGFUNC(false, PyObject, PyObject, Py_ssize_t), // typedef PyObject *(*ssizessizeargfunc)(PyObject *, Py_ssize_t, Py_ssize_t); - SSIZESSIZEARGFUNC(false, PyObjectReturn, PyObject, Py_ssize_t, Py_ssize_t), + SSIZESSIZEARGFUNC(false, PyObject, PyObject, Py_ssize_t, Py_ssize_t), // typedef int(*ssizeobjargproc)(PyObject *, Py_ssize_t, PyObject *); SSIZEOBJARGPROC(false, Int, PyObject, Py_ssize_t, PyObject), // typedef int(*ssizessizeobjargproc)(PyObject *, Py_ssize_t, Py_ssize_t, PyObject *); @@ -121,9 +119,9 @@ public enum ExternalFunctionSignature implements NativeCExtSymbol { // typedef int (*traverseproc)(PyObject *, visitproc, void *); TRAVERSEPROC(false, Int, PyObject, Pointer, Pointer), // PyObject *PyType_GenericAlloc(PyTypeObject *, Py_ssize_t); - TYPE_GENERIC_ALLOC(false, PyObjectReturn, PyTypeObject, Py_ssize_t), + TYPE_GENERIC_ALLOC(false, PyObject, PyTypeObject, Py_ssize_t), // PyObject *PyType_GenericNew(PyTypeObject *, PyObject *, PyObject *); - PY_TYPE_GENERIC_NEW(false, PyObjectReturn, PyTypeObject, PyObject, PyObject), + PY_TYPE_GENERIC_NEW(false, PyObject, PyTypeObject, PyObject, PyObject), // uintptr_t PyType_GenericNew(PyTypeObject *, uintptr_t, uintptr_t); PY_TYPE_GENERIC_NEW_RAW(true, UINTPTR_T, PyTypeObject, UINTPTR_T, UINTPTR_T), @@ -134,38 +132,38 @@ public enum ExternalFunctionSignature implements NativeCExtSymbol { // void _Py_Dealloc(PyObject *); PY_DEALLOC(false, Void, PyObject), // typedef PyObject *(*getattrfunc)(PyObject *, char *); - GETATTRFUNC(false, PyObjectReturn, PyObject, CharPtrAsTruffleString), + GETATTRFUNC(false, PyObject, PyObject, CHAR_PTR), // typedef PyObject *(*getattrofunc)(PyObject *, PyObject *); - GETATTROFUNC(false, PyObjectReturn, PyObject, PyObject), + GETATTROFUNC(false, PyObject, PyObject, PyObject), // typedef int (*setattrfunc)(PyObject *, char *, PyObject *); - SETATTRFUNC(false, Int, PyObject, CharPtrAsTruffleString, PyObject), + SETATTRFUNC(false, Int, PyObject, CHAR_PTR, PyObject), // typedef int (*setattrofunc)(PyObject *, PyObject *, PyObject *); SETATTROFUNC(false, Int, PyObject, PyObject, PyObject), // typedef PyObject *(*reprfunc)(PyObject *); - REPRFUNC(false, PyObjectReturn, PyObject), + REPRFUNC(false, PyObject, PyObject), // typedef Py_hash_t (*hashfunc)(PyObject *); HASHFUNC(false, Py_ssize_t, PyObject), // typedef PyObject *(*richcmpfunc) (PyObject *, PyObject *, int); - RICHCMPFUNC(false, PyObjectReturn, PyObject, PyObject, Int), + RICHCMPFUNC(false, PyObject, PyObject, PyObject, Int), // typedef PyObject *(*getiterfunc) (PyObject *); - GETITERFUNC(false, PyObjectReturn, PyObject), + GETITERFUNC(false, PyObject, PyObject), // typedef PyObject *(*iternextfunc) (PyObject *); - ITERNEXTFUNC(false, PyObjectReturn, PyObject), + ITERNEXTFUNC(false, PyObject, PyObject), // typedef PyObject *(*descrgetfunc) (PyObject *, PyObject *, PyObject *); - DESCRGETFUNC(false, PyObjectReturn, PyObject, PyObject, PyObject), + DESCRGETFUNC(false, PyObject, PyObject, PyObject, PyObject), // typedef int (*descrsetfunc) (PyObject *, PyObject *, PyObject *); DESCRSETFUNC(false, Int, PyObject, PyObject, PyObject), // typedef int (*initproc)(PyObject *, PyObject *, PyObject *); INITPROC(false, Int, PyObject, PyObject, PyObject), // typedef PyObject *(*newfunc)(PyTypeObject *, PyObject *, PyObject *); - NEWFUNC(false, PyObjectReturn, PyTypeObject, PyObject, PyObject), + NEWFUNC(false, PyObject, PyTypeObject, PyObject, PyObject), // typedef PyObject *(*getter)(PyObject *, void *); - GETTER(false, PyObjectReturn, PyObject, Pointer), + GETTER(false, PyObject, PyObject, Pointer), // typedef int (*setter)(PyObject *, PyObject *, void *); SETTER(false, Int, PyObject, PyObject, Pointer), // typedef PyObject *(*Py_mod_create)(PyObject *, PyModuleDef *); - MODCREATE(false, PyObjectReturn, Pointer, Pointer), + MODCREATE(false, PyObject, Pointer, Pointer), // typedef int (*Py_mod_exec)(PyObject *); MODEXEC(false, Int, Pointer), // typedef PyObject *(*PyModInitFunction)(void); @@ -184,7 +182,7 @@ public enum ExternalFunctionSignature implements NativeCExtSymbol { // void GraalPyPrivate_CheckTypeReady(PyTypeObject *); TRUFFLE_CHECK_TYPE_READY(true, Void, PyTypeObject), // Py_ssize_t PyUnicode_GetLength(PyObject *); - PY_UNICODE_GET_LENGTH(false, PrimitiveResult64, PyObject), + PY_UNICODE_GET_LENGTH(false, Long, PyObject), // void GraalPyPrivate_InitNativeDateTime(void); INIT_NATIVE_DATETIME(true, Void), // uintptr_t GraalPyPrivate_Long_lv_tag(const PyLongObject *); @@ -198,7 +196,7 @@ public enum ExternalFunctionSignature implements NativeCExtSymbol { // int PyObject_GenericSetDict(PyObject *, PyObject *, void *); PY_OBJECT_GENERIC_SET_DICT(false, Int, PyObject, PyObject, Pointer), // PyObject *GraalPyPrivate_ObjectNew(PyTypeObject *); - PY_OBJECT_NEW(false, PyObjectReturn, PyTypeObject), + PY_OBJECT_NEW(false, PyObject, PyTypeObject), // void PyObject_Free(void *); PY_OBJECT_FREE(true, Void, Pointer), // void GraalPyPrivate_ObjectArrayRelease(PyObject **, int); @@ -218,37 +216,37 @@ public enum ExternalFunctionSignature implements NativeCExtSymbol { // void GraalPyPrivate_MMap_InitBufferProtocol(PyObject *); MMAP_INIT_BUFFERPROTOCOL(true, Void, PyObject), // PyObject *GraalPyPrivate_Exception_SubtypeNew(PyTypeObject *, PyObject *); - EXCEPTION_SUBTYPE_NEW(false, PyObjectReturn, PyTypeObject, PyObject), + EXCEPTION_SUBTYPE_NEW(false, PyObject, PyTypeObject, PyObject), // PyObject *GraalPyPrivate_Bytes_SubtypeNew(PyTypeObject *, int8_t *, Py_ssize_t); - BYTES_SUBTYPE_NEW(false, PyObjectReturn, PyTypeObject, INT8_T_PTR, Py_ssize_t), + BYTES_SUBTYPE_NEW(false, PyObject, PyTypeObject, INT8_T_PTR, Py_ssize_t), // PyObject *GraalPyPrivate_Float_SubtypeNew(PyTypeObject *, double); - FLOAT_SUBTYPE_NEW(false, PyObjectReturn, PyTypeObject, Double), + FLOAT_SUBTYPE_NEW(false, PyObject, PyTypeObject, Double), // PyObject *GraalPyPrivate_Complex_SubtypeFromDoubles(PyTypeObject *, double, double); - COMPLEX_SUBTYPE_FROM_DOUBLES(false, PyObjectReturn, PyTypeObject, Double, Double), + COMPLEX_SUBTYPE_FROM_DOUBLES(false, PyObject, PyTypeObject, Double, Double), // PyObject *GraalPyPrivate_Tuple_SubtypeNew(PyTypeObject *, PyObject *); - TUPLE_SUBTYPE_NEW(false, PyObjectReturn, PyTypeObject, PyObject), + TUPLE_SUBTYPE_NEW(false, PyObject, PyTypeObject, PyObject), // PyObject *GraalPyPrivate_Unicode_SubtypeNew(PyTypeObject *, PyObject *); - UNICODE_SUBTYPE_NEW(false, PyObjectReturn, PyTypeObject, PyObject), + UNICODE_SUBTYPE_NEW(false, PyObject, PyTypeObject, PyObject), // int GraalPyPrivate_CheckBasicsizeForGetstate(PyTypeObject *, int); CHECK_BASICSIZE_FOR_GETSTATE(true, Int, PyTypeObject, Int), // PyObject *GraalPyPrivate_Date_SubtypeNew(PyTypeObject *, int, int, int); - DATE_SUBTYPE_NEW(false, PyObjectReturn, PyTypeObject, Int, Int, Int), + DATE_SUBTYPE_NEW(false, PyObject, PyTypeObject, Int, Int, Int), // PyObject *GraalPyPrivate_Time_SubtypeNew(PyTypeObject *, int, int, int, int, PyObject *, // int); - TIME_SUBTYPE_NEW(false, PyObjectReturn, PyTypeObject, Int, Int, Int, Int, PyObject, Int), + TIME_SUBTYPE_NEW(false, PyObject, PyTypeObject, Int, Int, Int, Int, PyObject, Int), // PyObject *GraalPyPrivate_TimeDelta_SubtypeNew(PyTypeObject *, int, int, int); - TIMEDELTA_SUBTYPE_NEW(false, PyObjectReturn, PyTypeObject, Int, Int, Int), + TIMEDELTA_SUBTYPE_NEW(false, PyObject, PyTypeObject, Int, Int, Int), // PyObject *GraalPyPrivate_DateTime_SubtypeNew(PyTypeObject *, int, int, int, int, int, int, // int, PyObject *, int); - DATETIME_SUBTYPE_NEW(false, PyObjectReturn, PyTypeObject, Int, Int, Int, Int, Int, Int, Int, PyObject, Int), + DATETIME_SUBTYPE_NEW(false, PyObject, PyTypeObject, Int, Int, Int, Int, Int, Int, Int, PyObject, Int), // PyObject *GraalPyPrivate_MemoryViewFromObject(PyObject *, int); - GRAALPY_MEMORYVIEW_FROM_OBJECT(false, PyObjectReturn, PyObject, Int), + GRAALPY_MEMORYVIEW_FROM_OBJECT(false, PyObject, PyObject, Int), // Py_hash_t PyObject_HashNotImplemented(PyObject *); PYOBJECT_HASH_NOT_IMPLEMENTED(false, Py_ssize_t, PyObject), // void _PyGC_CollectNoFail(PyThreadState *); PY_GC_COLLECT_NO_FAIL(true, Void, PyThreadState), // PyObject *_PyObject_NextNotImplemented(PyObject *); - PY_OBJECT_NEXT_NOT_IMPLEMENTED(false, PyObjectTransfer, PyObject), + PY_OBJECT_NEXT_NOT_IMPLEMENTED(false, PyObject, PyObject), // int GraalPyPrivate_SubtypeTraverse(PyObject *, void *, void *); SUBTYPE_TRAVERSE(true, Int, PyObject, visitproc, Pointer), @@ -256,7 +254,7 @@ public enum ExternalFunctionSignature implements NativeCExtSymbol { GCCOLLECT(false, Py_ssize_t, Int), GETDICTPTRFUN(true, Pointer, PyObject), // typedef PyObject *(*vectorcallfunc)(PyObject *, PyObject *const *, size_t, PyObject *); - VECTORCALL(false, PyObjectReturn, PyObject, Pointer, Py_ssize_t, PyObject); + VECTORCALL(false, PyObject, PyObject, Pointer, Py_ssize_t, PyObject); public final ArgDescriptor returnValue; public final ArgDescriptor[] arguments; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/MethodDescriptorWrapper.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/MethodDescriptorWrapper.java index ad2a41e95b..c17079c510 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/MethodDescriptorWrapper.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/MethodDescriptorWrapper.java @@ -42,7 +42,6 @@ import static com.oracle.graal.python.annotations.ArgDescriptor.PyObject; import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectConstArray; -import static com.oracle.graal.python.annotations.ArgDescriptor.PyObjectReturn; import static com.oracle.graal.python.annotations.ArgDescriptor.PyTypeObject; import static com.oracle.graal.python.annotations.ArgDescriptor.Py_ssize_t; @@ -71,25 +70,25 @@ public enum MethodDescriptorWrapper implements NativeCExtSymbol { // METH_FASTCALL - FASTCALL(PyObjectReturn, PyObject, PyObjectConstArray, Py_ssize_t), + FASTCALL(PyObject, PyObject, PyObjectConstArray, Py_ssize_t), // METH_FASTCALL | METH_KEYWORDS - FASTCALL_WITH_KEYWORDS(PyObjectReturn, PyObject, PyObjectConstArray, Py_ssize_t, PyObject), + FASTCALL_WITH_KEYWORDS(PyObject, PyObject, PyObjectConstArray, Py_ssize_t, PyObject), // METH_VARARGS | METH_KEYWORDS - KEYWORDS(PyObjectReturn, PyObject, PyObject, PyObject), + KEYWORDS(PyObject, PyObject, PyObject, PyObject), // METH_VARARGS - VARARGS(PyObjectReturn, PyObject, PyObject), + VARARGS(PyObject, PyObject, PyObject), // METH_NOARGS - NOARGS(PyObjectReturn, PyObject, PyObject), + NOARGS(PyObject, PyObject, PyObject), // METH_O - O(PyObjectReturn, PyObject, PyObject), + O(PyObject, PyObject, PyObject), // METH_FASTCALL | METH_KEYWORDS | METH_METHOD: - METHOD(PyObjectReturn, PyObject, PyTypeObject, PyObjectConstArray, Py_ssize_t, PyObject); + METHOD(PyObject, PyObject, PyTypeObject, PyObjectConstArray, Py_ssize_t, PyObject); public final ArgDescriptor returnValue; public final ArgDescriptor[] arguments; diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/structs/CFields.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/structs/CFields.java index 4c26796dc5..b50d70e7d2 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/structs/CFields.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/structs/CFields.java @@ -42,7 +42,6 @@ import static com.oracle.graal.python.annotations.ArgDescriptor.CHAR; import static com.oracle.graal.python.annotations.ArgDescriptor.CHAR_PTR; -import static com.oracle.graal.python.annotations.ArgDescriptor.CharPtrAsTruffleString; import static com.oracle.graal.python.annotations.ArgDescriptor.ConstCharPtr; import static com.oracle.graal.python.annotations.ArgDescriptor.Double; import static com.oracle.graal.python.annotations.ArgDescriptor.INT64_T; @@ -169,7 +168,7 @@ public enum CFields { Py_buffer__itemsize(Py_ssize_t), Py_buffer__readonly(Int), Py_buffer__ndim(Int), - Py_buffer__format(CharPtrAsTruffleString), + Py_buffer__format(CHAR_PTR), Py_buffer__shape(PY_SSIZE_T_PTR), Py_buffer__strides(PY_SSIZE_T_PTR), Py_buffer__suboffsets(PY_SSIZE_T_PTR), @@ -352,7 +351,7 @@ public enum CFields { PyASCIIObject__state(Int), PyCompactUnicodeObject__utf8_length(Py_ssize_t), - PyCompactUnicodeObject__utf8(CharPtrAsTruffleString), + PyCompactUnicodeObject__utf8(CHAR_PTR), PyUnicodeObject__data(Pointer), From fdb1f46a498feb9d46b7352f9ef0161155b7f431 Mon Sep 17 00:00:00 2001 From: Florian Angerer Date: Tue, 20 Oct 2026 19:38:49 +0200 Subject: [PATCH 08/11] Fix copyright year --- .../builtins/modules/cext/PythonCextDateTimeBuiltins.java | 2 +- .../python/builtins/modules/cext/PythonCextFileBuiltins.java | 2 +- .../builtins/modules/cext/PythonCextMemoryViewBuiltins.java | 2 +- .../builtins/modules/cext/PythonCextPickleBufferBuiltins.java | 2 +- .../builtins/modules/cext/PythonCextPosixmoduleBuiltins.java | 2 +- .../python/builtins/modules/cext/PythonCextSliceBuiltins.java | 2 +- .../python/builtins/modules/cext/PythonCextWarnBuiltins.java | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDateTimeBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDateTimeBuiltins.java index 5ccdd4168d..ded4d9db0a 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDateTimeBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextDateTimeBuiltins.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2025, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * The Universal Permissive License (UPL), Version 1.0 diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFileBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFileBuiltins.java index 8a1b8afea4..5ee64f7b2c 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFileBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextFileBuiltins.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, 2025, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * The Universal Permissive License (UPL), Version 1.0 diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMemoryViewBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMemoryViewBuiltins.java index 6326c757d4..aa99f522b7 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMemoryViewBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextMemoryViewBuiltins.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, 2025, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * The Universal Permissive License (UPL), Version 1.0 diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPickleBufferBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPickleBufferBuiltins.java index 7f2557f94e..a173739200 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPickleBufferBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPickleBufferBuiltins.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023, 2025, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2023, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * The Universal Permissive License (UPL), Version 1.0 diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPosixmoduleBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPosixmoduleBuiltins.java index 7d6692b982..8449034db4 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPosixmoduleBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextPosixmoduleBuiltins.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, 2025, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * The Universal Permissive License (UPL), Version 1.0 diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSliceBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSliceBuiltins.java index 72427d72cd..e26aebd99a 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSliceBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextSliceBuiltins.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, 2025, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * The Universal Permissive License (UPL), Version 1.0 diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWarnBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWarnBuiltins.java index f98e7a2535..6cde562ee4 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWarnBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextWarnBuiltins.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022, 2025, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2022, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * The Universal Permissive License (UPL), Version 1.0 From fa34a1e5a7d7f3e3c6dc44e545750dbd3fdb6a42 Mon Sep 17 00:00:00 2001 From: Florian Angerer Date: Tue, 20 Oct 2026 22:00:57 +0200 Subject: [PATCH 09/11] Use ArgDescriptor directly in C API processor models --- .../processor/CApiBuiltinsProcessor.java | 102 +++++++----------- 1 file changed, 37 insertions(+), 65 deletions(-) diff --git a/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java b/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java index 8d609abe87..2602bbdb27 100644 --- a/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java +++ b/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java @@ -162,20 +162,12 @@ public synchronized void init(ProcessingEnvironment pe) { } } - private String getCSignature(VariableElement obj) { - return ArgDescriptor.valueOf(name(obj)).getCSignature(); - } - private static String[] splitInitializerArgs(String initializer) { int start = initializer.indexOf('('); int end = initializer.lastIndexOf(')'); return initializer.substring(start + 1, end).split(","); } - private static boolean isVarArgs(VariableElement obj) { - return name(obj).equals("VARARGS"); - } - private static String name(Element obj) { return obj.getSimpleName().toString(); } @@ -202,8 +194,8 @@ private static String formatCConstantValue(VariableElement constant, Object valu private static final class CApiBuiltinDesc { public final Element origin; public final String name; - public final VariableElement[] arguments; - public final VariableElement returnType; + public final ArgDescriptor[] arguments; + public final ArgDescriptor returnType; /** Conversion metadata is absent for signature-only declarations in CApiFunction. */ public final TypeMirror retConversion; public final List argConversions; @@ -215,7 +207,7 @@ private static final class CApiBuiltinDesc { public final Set abis; public int id; - public CApiBuiltinDesc(Element origin, String name, VariableElement returnType, VariableElement[] arguments, TypeMirror retConversion, List argConversions, + public CApiBuiltinDesc(Element origin, String name, ArgDescriptor returnType, ArgDescriptor[] arguments, TypeMirror retConversion, List argConversions, boolean acquireGil, boolean canRaise, String call, String factory, Set abis) { this.origin = origin; this.name = name; @@ -243,10 +235,6 @@ public CApiConstantDesc(Element origin, String name, String value) { } } - private static String capiTypeToLogicalType(VariableElement element) { - return capiTypeToLogicalType(ArgDescriptor.valueOf(name(element))); - } - private static String capiTypeToLogicalType(ArgDescriptor descriptor) { return switch (descriptor.getNativeSimpleType()) { case VOID -> "void"; @@ -260,11 +248,11 @@ private static String capiTypeToLogicalType(ArgDescriptor descriptor) { }; } - private static boolean isVoid(VariableElement element) { + private static boolean isVoid(ArgDescriptor element) { return capiTypeToLogicalType(element).equals("void"); } - private static String capiTypeToErrorValue(VariableElement element) { + private static String capiTypeToErrorValue(ArgDescriptor element) { if (capiTypeToLogicalType(element).equals("pointer")) { return "0"; } else { @@ -272,12 +260,12 @@ private static String capiTypeToErrorValue(VariableElement element) { } } - private static String capiTypeToJavaPrimitiveType(VariableElement element) { + private static String capiTypeToJavaPrimitiveType(ArgDescriptor element) { var type = capiTypeToLogicalType(element); return type.equals("pointer") ? "long" : type; } - private static String capiTypeToForeignPrimitiveType(VariableElement element) { + private static String capiTypeToForeignPrimitiveType(ArgDescriptor element) { String type = capiTypeToJavaPrimitiveType(element); return type.equals("void") ? "void" : ("j" + type); } @@ -393,6 +381,8 @@ public List visitType(TypeMirror t, Class p) { public List visitEnumConstant(VariableElement c, Class p) { if (p == VariableElement.class) { return List.of(p.cast(c)); + } else if (p == ArgDescriptor.class) { + return List.of(p.cast(ArgDescriptor.valueOf(name(c)))); } else { return null; } @@ -459,7 +449,7 @@ private void addCApiBuiltins(RoundEnvironment re, List javaBuil if (!builtinName.isEmpty()) { name = builtinName; } - var ret = findValue(builtin, "ret", VariableElement.class); + var ret = findValue(builtin, "ret", ArgDescriptor.class); boolean acquireGil = findValue(builtin, "acquireGil", Boolean.class); boolean canRaise = findValue(builtin, "canRaise", Boolean.class); if (acquireGil && !canRaise) { @@ -469,7 +459,7 @@ private void addCApiBuiltins(RoundEnvironment re, List javaBuil String call = name(findValue(builtin, "call", VariableElement.class)); Set abis = abiNames(findValues(builtin, "abi", VariableElement.class)); // boolean inlined = findValue(builtin, "inlined", Boolean.class); - VariableElement[] args = findValues(builtin, "args", VariableElement.class).toArray(new VariableElement[0]); + ArgDescriptor[] args = findValues(builtin, "args", ArgDescriptor.class).toArray(new ArgDescriptor[0]); if (element instanceof TypeElement te && te.getQualifiedName().toString().equals("com.oracle.graal.python.builtins.objects.cext.capi.CApiFunction.Dummy")) { additionalBuiltins.add(new CApiBuiltinDesc(element, builtinName, ret, args, null, List.of(), acquireGil, canRaise, call, null, abis)); } else { @@ -563,7 +553,7 @@ private boolean isValidConversionClass(TypeMirror conversion, boolean returnConv private void verifyStaticMethod(ExecutableElement e, AnnotationMirror annotation) { if (!e.getModifiers().contains(Modifier.STATIC)) { processingEnv.getMessager().printError("CApiBuiltins must be nodes or static methods", e); - } else if (e.getParameters().size() != findValues(annotation, "args", VariableElement.class).size()) { + } else if (e.getParameters().size() != findValues(annotation, "args", ArgDescriptor.class).size()) { processingEnv.getMessager().printError("Arity mismatch between declared arguments and static method", e); } } @@ -574,7 +564,7 @@ private void verifyNodeClass(TypeElement te, AnnotationMirror annotation) { for (var e : dt.asElement().getEnclosedElements()) { if (e.getKind() == ElementKind.METHOD) { if (e.getModifiers().contains(Modifier.ABSTRACT) && e.getSimpleName().toString().equals("execute")) { - if (((ExecutableElement) e).getParameters().size() != findValues(annotation, "args", VariableElement.class).size()) { + if (((ExecutableElement) e).getParameters().size() != findValues(annotation, "args", ArgDescriptor.class).size()) { processingEnv.getMessager().printError("Arity mismatch between declared arguments and builtin superclass", te); } return; @@ -599,31 +589,28 @@ private boolean isSimilarType(String t1, String t2) { t1.equals(resolveTypeAlias(t2)) || resolveTypeAlias(t1).equals(t2); } - private void compareFunction(String name, VariableElement ret1, VariableElement ret2, VariableElement[] args1, VariableElement[] args2) { - compareFunction(name, ret1, getCSignature(ret2), args1, Arrays.stream(args2).map(this::getCSignature).toArray(String[]::new)); + private void compareFunction(String name, ArgDescriptor ret1, ArgDescriptor ret2, ArgDescriptor[] args1, ArgDescriptor[] args2) { + compareFunction(name, ret1, ret2.getCSignature(), args1, Arrays.stream(args2).map(ArgDescriptor::getCSignature).toArray(String[]::new)); } - private void compareFunction(String name, VariableElement ret1, String ret2, VariableElement[] args1, String[] args2) { - if (trees == null) { - return; // This isn't correct without parsing - } - if (!isSimilarType(getCSignature(ret1), ret2)) { + private void compareFunction(String name, ArgDescriptor ret1, String ret2, ArgDescriptor[] args1, String[] args2) { + if (!isSimilarType(ret1.getCSignature(), ret2)) { processingEnv.getMessager().printError("duplicate entry for " + name + ", different return " + ret1 + " vs. " + ret2); } if (args1.length != args2.length) { processingEnv.getMessager().printError("duplicate entry for " + name + ", different arg lengths " + args1.length + " vs. " + args2.length); } else { for (int i = 0; i < args1.length; i++) { - if (!isSimilarType(getCSignature(args1[i]), args2[i])) { + if (!isSimilarType(args1[i].getCSignature(), args2[i])) { processingEnv.getMessager().printError("duplicate entry for " + name + ", different arg " + i + ": " + args1[i] + " vs. " + args2[i]); } } } } - private String getArgSignatureWithName(VariableElement arg, int i) { - String sig = getCSignature(arg); - if (isVarArgs(arg)) { + private static String getArgSignatureWithName(ArgDescriptor arg, int i) { + String sig = arg.getCSignature(); + if (arg == ArgDescriptor.VARARGS) { return sig; } else if (sig.contains("(*)")) { // function type @@ -650,9 +637,9 @@ private void generateCApiSource(List javaBuiltins, List lines.add("#undef " + name); String line; if (name.startsWith("GraalPyPrivate_")) { - line = "GraalPy_CAPI_HELPER_SYMBOL " + getCSignature(value.returnType) + " " + name + "("; + line = "GraalPy_CAPI_HELPER_SYMBOL " + value.returnType.getCSignature() + " " + name + "("; } else { - line = "PyAPI_FUNC(" + getCSignature(value.returnType) + ") " + name + "("; + line = "PyAPI_FUNC(" + value.returnType.getCSignature() + ") " + name + "("; } for (int i = 0; i < value.arguments.length; i++) { line += (i == 0 ? "" : ", ") + getArgSignatureWithName(value.arguments[i], i); @@ -738,21 +725,6 @@ private void updateResource(String name, List javaBuiltins, Lis updateResource(name, javaBuiltins, lines, StandardLocation.NATIVE_HEADER_OUTPUT); } - private Map getArgDescriptorsByName() { - TypeElement argDescriptorType = processingEnv.getElementUtils().getTypeElement(ArgDescriptor.class.getCanonicalName()); - if (argDescriptorType == null) { - processingEnv.getMessager().printError("Could not resolve ArgDescriptor while generating C API helper declarations."); - return Map.of(); - } - Map result = new HashMap<>(); - for (var element : argDescriptorType.getEnclosedElements()) { - if (element.getKind() == ElementKind.ENUM_CONSTANT) { - result.put(name(element), (VariableElement) element); - } - } - return result; - } - private static final class CApiSymbolDesc { final String cName; final CApiExternalFunctionSignatureDesc signature; @@ -798,7 +770,7 @@ private List collectNativeCAPISymbols(Map lines, List capiSymbols) { List declarations = new ArrayList<>(); - Map argDescriptors = getArgDescriptorsByName(); + Map argDescriptors = Arrays.stream(ArgDescriptor.values()).collect(Collectors.toMap(ArgDescriptor::name, descriptor -> descriptor)); for (var helper : capiSymbols) { if (!helper.cName.startsWith("GraalPyPrivate_")) { continue; @@ -809,19 +781,19 @@ private void addCApiSymbolDeclarations(List lines, List processingEnv.getMessager().printError("Invalid C API helper signature initializer for " + helper.signature.name, helper.signature.origin); continue; } - VariableElement returnType = argDescriptors.get(signatureArgs[1].strip()); + ArgDescriptor returnType = argDescriptors.get(signatureArgs[1].strip()); if (returnType == null) { processingEnv.getMessager().printError("Could not resolve return type " + signatureArgs[1].strip() + " for C API helper " + helper.cName, helper.signature.origin); continue; } - String line = "GraalPy_CAPI_HELPER_SYMBOL " + getCSignature(returnType) + " " + helper.cName + "("; + String line = "GraalPy_CAPI_HELPER_SYMBOL " + returnType.getCSignature() + " " + helper.cName + "("; if (signatureArgs.length == 2) { line += "void"; } else { boolean valid = true; for (int i = 2; i < signatureArgs.length; i++) { String argType = signatureArgs[i].strip(); - VariableElement arg = argDescriptors.get(argType); + ArgDescriptor arg = argDescriptors.get(argType); if (arg == null) { processingEnv.getMessager().printError("Could not resolve argument type " + argType + " for C API helper " + helper.cName, helper.signature.origin); valid = false; @@ -860,9 +832,9 @@ private void generateCApiHeader(List javaBuiltins, List javaBuiltins, List javaBuiltins, List Date: Tue, 20 Oct 2026 22:02:31 +0200 Subject: [PATCH 10/11] Use native type enums for C API processor decisions --- .../processor/CApiBuiltinsProcessor.java | 54 ++++++------------- 1 file changed, 16 insertions(+), 38 deletions(-) diff --git a/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java b/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java index 2602bbdb27..fa03bec73e 100644 --- a/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java +++ b/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java @@ -235,7 +235,8 @@ public CApiConstantDesc(Element origin, String name, String value) { } } - private static String capiTypeToLogicalType(ArgDescriptor descriptor) { + /** Maps an {@link ArgDescriptor} to the native Java carrier type. */ + private static String capiTypeToJavaPrimitiveType(ArgDescriptor descriptor) { return switch (descriptor.getNativeSimpleType()) { case VOID -> "void"; case DOUBLE -> "double"; @@ -243,31 +244,20 @@ private static String capiTypeToLogicalType(ArgDescriptor descriptor) { case SINT32 -> "int"; case SINT16 -> "short"; case SINT8 -> "byte"; - case POINTER -> "pointer"; - case SINT64 -> "long"; + case POINTER, SINT64 -> "long"; }; } - private static boolean isVoid(ArgDescriptor element) { - return capiTypeToLogicalType(element).equals("void"); - } - - private static String capiTypeToErrorValue(ArgDescriptor element) { - if (capiTypeToLogicalType(element).equals("pointer")) { - return "0"; - } else { - return "-1"; - } + private static boolean isVoid(ArgDescriptor descriptor) { + return descriptor.getNativeSimpleType() == NativeSimpleType.VOID; } - private static String capiTypeToJavaPrimitiveType(ArgDescriptor element) { - var type = capiTypeToLogicalType(element); - return type.equals("pointer") ? "long" : type; + private static String capiTypeToErrorValue(ArgDescriptor descriptor) { + return descriptor.getNativeSimpleType() == NativeSimpleType.POINTER ? "0" : "-1"; } - private static String capiTypeToForeignPrimitiveType(ArgDescriptor element) { - String type = capiTypeToJavaPrimitiveType(element); - return type.equals("void") ? "void" : ("j" + type); + private static String capiTypeToForeignPrimitiveType(ArgDescriptor descriptor) { + return isVoid(descriptor) ? "void" : ("j" + capiTypeToJavaPrimitiveType(descriptor)); } private static final String CAPI_BUILTIN = "com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin"; @@ -1106,18 +1096,12 @@ private PythonCextBuiltinRegistry() { } lines.add(" public static " + capiTypeToJavaPrimitiveType(builtin.returnType) + " upcall_" + builtin.name + "(" + argString + ") {"); String paramString = IntStream.range(0, builtin.arguments.length).mapToObj(i -> argName(i)).collect(Collectors.joining(", ")); - String retString = capiTypeToJavaPrimitiveType(builtin.returnType); - if (retString.equals("void")) { - retString = ""; - } else { - retString = "return (" + retString + ")"; - } + boolean isVoidReturn = isVoid(builtin.returnType); if (builtin.origin instanceof TypeElement) { + String retString = isVoidReturn ? "" : "return (" + capiTypeToJavaPrimitiveType(builtin.returnType) + ")"; lines.add(" " + retString + builtin.name + ".getCallTarget().call(" + paramString + ");"); } else { - if (!retString.isEmpty()) { - retString = "return "; - } + String retString = isVoidReturn ? "" : "return "; assert builtin.canRaise; lines.add(" try {"); lines.add(" try " + (builtin.acquireGil ? "(GilNode.UncachedAcquire gil = GilNode.uncachedAcquire()) " : "") + "{"); @@ -1128,7 +1112,7 @@ private PythonCextBuiltinRegistry() { lines.add(" }"); lines.add(" } catch (PException pe) {"); lines.add(" TransformPExceptionToNativeNode.executeUncached(pe);"); - if (!retString.isEmpty()) { + if (!isVoidReturn) { lines.add(" return " + capiTypeToErrorValue(builtin.returnType) + ";"); } lines.add(" }"); @@ -1401,12 +1385,6 @@ private void collectExternalFunctionAndWrapperDescs(Element element, List argTypes = Arrays.stream(sig.argumentTypes).map(this::toJavaNfiType).toList(); + String returnType = capiTypeToJavaPrimitiveType(sig.returnType); + List argTypes = Arrays.stream(sig.argumentTypes).map(CApiBuiltinsProcessor::capiTypeToJavaPrimitiveType).toList(); - boolean isVoidReturn = "void".equals(returnType); + boolean isVoidReturn = isVoid(sig.returnType); List invokeArgs = new LinkedList<>(); if (sig.cannotRaise) { From fbd3d8120e2a3d21f9dc2196822f2db1b281185e Mon Sep 17 00:00:00 2001 From: Florian Angerer Date: Tue, 20 Oct 2026 22:15:28 +0200 Subject: [PATCH 11/11] Define Java carriers on NativeSimpleType --- .../python/annotations/NativeSimpleType.java | 30 ++++++++++++++----- .../processor/CApiBuiltinsProcessor.java | 10 +------ .../nativeaccess/NativeAccessSupport.java | 13 -------- .../NativeAccessSupportJdk21.java | 4 +-- 4 files changed, 25 insertions(+), 32 deletions(-) diff --git a/graalpython/com.oracle.graal.python.annotations/src/com/oracle/graal/python/annotations/NativeSimpleType.java b/graalpython/com.oracle.graal.python.annotations/src/com/oracle/graal/python/annotations/NativeSimpleType.java index d4750eba04..5361f2bfb9 100644 --- a/graalpython/com.oracle.graal.python.annotations/src/com/oracle/graal/python/annotations/NativeSimpleType.java +++ b/graalpython/com.oracle.graal.python.annotations/src/com/oracle/graal/python/annotations/NativeSimpleType.java @@ -48,12 +48,26 @@ *

*/ public enum NativeSimpleType { - VOID, - SINT8, - SINT16, - SINT32, - SINT64, - FLOAT, - DOUBLE, - POINTER; // raw pointer represented in Java as a long + VOID(void.class), + SINT8(byte.class), + SINT16(short.class), + SINT32(int.class), + SINT64(long.class), + FLOAT(float.class), + DOUBLE(double.class), + POINTER(long.class); + + private final Class carrier; + + NativeSimpleType(Class carrier) { + this.carrier = carrier; + } + + /** + * Returns the Java carrier used by native access signatures. Pointers are represented as raw + * {@code long} addresses; {@link #VOID} uses {@code void.class} for return signatures. + */ + public Class carrier() { + return carrier; + } } diff --git a/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java b/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java index fa03bec73e..78c442f270 100644 --- a/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java +++ b/graalpython/com.oracle.graal.python.processor/src/com/oracle/graal/python/processor/CApiBuiltinsProcessor.java @@ -237,15 +237,7 @@ public CApiConstantDesc(Element origin, String name, String value) { /** Maps an {@link ArgDescriptor} to the native Java carrier type. */ private static String capiTypeToJavaPrimitiveType(ArgDescriptor descriptor) { - return switch (descriptor.getNativeSimpleType()) { - case VOID -> "void"; - case DOUBLE -> "double"; - case FLOAT -> "float"; - case SINT32 -> "int"; - case SINT16 -> "short"; - case SINT8 -> "byte"; - case POINTER, SINT64 -> "long"; - }; + return descriptor.getNativeSimpleType().carrier().getName(); } private static boolean isVoid(ArgDescriptor descriptor) { diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/nativeaccess/NativeAccessSupport.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/nativeaccess/NativeAccessSupport.java index e6651baf75..6d805acd28 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/nativeaccess/NativeAccessSupport.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/nativeaccess/NativeAccessSupport.java @@ -71,19 +71,6 @@ protected static MethodHandle unsupportedDowncallHandle(MethodType methodType) { return MethodHandles.dropArguments(methodHandle, 0, methodType.parameterList()); } - protected static Class asJavaType(NativeSimpleType type) { - return switch (type) { - case VOID -> void.class; - case SINT8 -> byte.class; - case SINT16 -> short.class; - case SINT32 -> int.class; - case SINT64 -> long.class; - case FLOAT -> float.class; - case DOUBLE -> double.class; - case POINTER -> long.class; - }; - } - static Object createArena() { return INSTANCE.createArenaImpl(); } diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/nativeaccess/NativeAccessSupportJdk21.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/nativeaccess/NativeAccessSupportJdk21.java index bb3a5f524e..ac30162af0 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/nativeaccess/NativeAccessSupportJdk21.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/nativeaccess/NativeAccessSupportJdk21.java @@ -78,9 +78,9 @@ private static MethodType createMethodType(boolean captureCallState, NativeSimpl parameterTypes[1] = Object.class; } for (int i = 0; i < argTypes.length; i++) { - parameterTypes[i + injectedArgumentCount] = asJavaType(argTypes[i]); + parameterTypes[i + injectedArgumentCount] = argTypes[i].carrier(); } - return MethodType.methodType(asJavaType(resType), parameterTypes); + return MethodType.methodType(resType.carrier(), parameterTypes); } @Override