Skip to content

Commit 40215c2

Browse files
committed
Move some nodes to common cext package
1 parent db14f75 commit 40215c2

15 files changed

+114
-111
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBuiltins.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,16 +118,16 @@
118118
import com.oracle.graal.python.builtins.objects.cext.capi.CApiGuards;
119119
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.ClearNativeWrapperNode;
120120
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.FromCharPointerNode;
121-
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.TransformExceptionToNativeNode;
122121
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodesFactory.FromCharPointerNodeGen;
123-
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodesFactory.TransformExceptionToNativeNodeGen;
124122
import com.oracle.graal.python.builtins.objects.cext.capi.PyTruffleObjectFree;
125123
import com.oracle.graal.python.builtins.objects.cext.capi.PythonClassNativeWrapper;
126124
import com.oracle.graal.python.builtins.objects.cext.capi.PythonNativeWrapper;
127125
import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor;
128126
import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTiming;
129127
import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions;
130128
import com.oracle.graal.python.builtins.objects.cext.common.CArrayWrappers.CArrayWrapper;
129+
import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes.TransformExceptionToNativeNode;
130+
import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodesFactory.TransformExceptionToNativeNodeGen;
131131
import com.oracle.graal.python.builtins.objects.cext.common.CExtParseArgumentsNode;
132132
import com.oracle.graal.python.builtins.objects.cext.common.CExtParseArgumentsNode.SplitFormatStringNode;
133133
import com.oracle.graal.python.builtins.objects.cext.common.CExtToJavaNode;

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextErrBuiltins.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,10 @@
8383
import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiUnaryBuiltinNode;
8484
import com.oracle.graal.python.builtins.modules.cext.PythonCextFileBuiltins.PyFile_WriteObject;
8585
import com.oracle.graal.python.builtins.objects.PNone;
86-
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.ClearCurrentExceptionNode;
86+
import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes.ClearCurrentExceptionNode;
8787
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.PyErrFetchNode;
8888
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.PyErrOccurredNode;
89-
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.TransformExceptionToNativeNode;
89+
import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes.TransformExceptionToNativeNode;
9090
import com.oracle.graal.python.builtins.objects.cext.capi.PThreadState;
9191
import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode;
9292
import com.oracle.graal.python.builtins.objects.cext.common.NativePointer;

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextLongBuiltins.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,11 @@
6868
import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiUnaryBuiltinNode;
6969
import com.oracle.graal.python.builtins.objects.cext.PythonNativeVoidPtr;
7070
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.CastToNativeLongNode;
71-
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.TransformExceptionToNativeNode;
72-
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodesFactory.TransformExceptionToNativeNodeGen;
7371
import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor;
7472
import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes.ConvertPIntToPrimitiveNode;
73+
import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes.TransformExceptionToNativeNode;
7574
import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodesFactory.ConvertPIntToPrimitiveNodeGen;
75+
import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodesFactory.TransformExceptionToNativeNodeGen;
7676
import com.oracle.graal.python.builtins.objects.cext.structs.CStructAccess;
7777
import com.oracle.graal.python.builtins.objects.ints.IntBuiltins;
7878
import com.oracle.graal.python.builtins.objects.ints.IntBuiltins.NegNode;

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/CApiFunction.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@
4141
package com.oracle.graal.python.builtins.objects.cext.capi;
4242

4343
import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.CImpl;
44-
import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Direct;
4544
import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.Ignored;
4645
import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiCallPath.NotImplemented;
4746
import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.CHAR;

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/CExtNodes.java

Lines changed: 2 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,10 @@
105105
import com.oracle.graal.python.builtins.objects.cext.common.CArrayWrappers.CArrayWrapper;
106106
import com.oracle.graal.python.builtins.objects.cext.common.CArrayWrappers.CByteArrayWrapper;
107107
import com.oracle.graal.python.builtins.objects.cext.common.CArrayWrappers.CStringWrapper;
108+
import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes.ClearCurrentExceptionNode;
108109
import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes.EnsureTruffleStringNode;
109110
import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes.TransformExceptionFromNativeNode;
111+
import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes.TransformExceptionToNativeNode;
110112
import com.oracle.graal.python.builtins.objects.cext.common.CExtContext;
111113
import com.oracle.graal.python.builtins.objects.cext.common.CExtContext.ModuleSpec;
112114
import com.oracle.graal.python.builtins.objects.cext.common.GetNextVaArgNode;
@@ -125,7 +127,6 @@
125127
import com.oracle.graal.python.builtins.objects.module.PythonModule;
126128
import com.oracle.graal.python.builtins.objects.object.PythonObject;
127129
import com.oracle.graal.python.builtins.objects.str.PString;
128-
import com.oracle.graal.python.builtins.objects.traceback.LazyTraceback;
129130
import com.oracle.graal.python.builtins.objects.traceback.MaterializeLazyTracebackNode;
130131
import com.oracle.graal.python.builtins.objects.type.PythonAbstractClass;
131132
import com.oracle.graal.python.builtins.objects.type.PythonBuiltinClass;
@@ -153,7 +154,6 @@
153154
import com.oracle.graal.python.nodes.call.CallNode;
154155
import com.oracle.graal.python.nodes.call.special.LookupAndCallUnaryNode.LookupAndCallUnaryDynamicNode;
155156
import com.oracle.graal.python.nodes.classes.IsSubtypeNode;
156-
import com.oracle.graal.python.nodes.frame.GetCurrentFrameRef;
157157
import com.oracle.graal.python.nodes.object.GetClassNode;
158158
import com.oracle.graal.python.nodes.object.GetClassNode.GetPythonObjectClassNode;
159159
import com.oracle.graal.python.nodes.util.CannotCastException;
@@ -994,94 +994,6 @@ static long doSingleContext(Object cls, CFields nativeMember, HiddenAttr managed
994994
}
995995
}
996996

997-
/**
998-
* Use this node to transform an exception to native if a Python exception was thrown during an
999-
* upcall and before returning to native code. This node will reify the exception appropriately
1000-
* and register the exception as the current exception.
1001-
*/
1002-
@GenerateInline(inlineByDefault = true)
1003-
@GenerateCached
1004-
@GenerateUncached
1005-
public abstract static class TransformExceptionToNativeNode extends Node {
1006-
1007-
public abstract void execute(Frame frame, Node inliningTarget, PException e, LazyTraceback tb);
1008-
1009-
public final void execute(Node inliningTarget, PException e) {
1010-
execute(null, inliningTarget, e, null);
1011-
}
1012-
1013-
public final void execute(Frame frame, Node inliningTarget, PException e) {
1014-
execute(frame, inliningTarget, e, null);
1015-
}
1016-
1017-
public final void execute(Node inliningTarget, PException e, LazyTraceback tb) {
1018-
execute(null, inliningTarget, e, tb);
1019-
}
1020-
1021-
public final void executeCached(PException e) {
1022-
execute(null, this, e, null);
1023-
}
1024-
1025-
@Specialization
1026-
static void setCurrentException(Frame frame, Node inliningTarget, PException e, LazyTraceback tb,
1027-
@Cached GetCurrentFrameRef getCurrentFrameRef,
1028-
@Cached GetThreadStateNode getThreadStateNode,
1029-
@Cached GetClassNode getClassNode,
1030-
@Cached(inline = false) PythonToNativeNode pythonToNativeNode,
1031-
@Cached(inline = false) CStructAccess.WritePointerNode writePointerNode) {
1032-
// TODO connect f_back
1033-
getCurrentFrameRef.execute(frame, inliningTarget).markAsEscaped();
1034-
PythonContext.PythonThreadState threadState = getThreadStateNode.execute(inliningTarget);
1035-
if (tb != null) {
1036-
threadState.setCurrentException(e, tb);
1037-
} else {
1038-
threadState.setCurrentException(e);
1039-
}
1040-
/*
1041-
* Mirror the global exception state to native for faster access. For now, we only write
1042-
* 'PyThreadState.curexc_type' (which is the only one required for 'PyErr_Occurred').
1043-
* Since that won't escape the exception object to the program, we can use
1044-
* 'getUnreifiedException'. As soon as we provide the exception object and the traceback
1045-
* as well, we need to use 'getEscapedException'.
1046-
*/
1047-
PThreadState nativeWrapper = threadState.getNativeWrapper();
1048-
if (nativeWrapper != null) {
1049-
Object exceptionType = getClassNode.execute(inliningTarget, e.getUnreifiedException());
1050-
Object nativeThreadState = PThreadState.getOrCreateNativeThreadState(threadState);
1051-
/*
1052-
* Write a borrowed ref to the native mirror because we need to keep that in sync
1053-
* anyway.
1054-
*/
1055-
writePointerNode.write(nativeThreadState, CFields.PyThreadState__curexc_type, pythonToNativeNode.execute(exceptionType));
1056-
}
1057-
}
1058-
}
1059-
1060-
@GenerateInline
1061-
@GenerateCached(false)
1062-
@GenerateUncached
1063-
public abstract static class ClearCurrentExceptionNode extends Node {
1064-
1065-
public abstract void execute(Node inliningTarget, PythonThreadState threadState);
1066-
1067-
public final PException getCurrentExceptionForReraise(Node inliningTarget, PythonThreadState threadState) {
1068-
PException exceptionForReraise = threadState.getCurrentExceptionForReraise();
1069-
execute(inliningTarget, threadState);
1070-
return exceptionForReraise;
1071-
}
1072-
1073-
@Specialization
1074-
static void doGeneric(PythonThreadState threadState,
1075-
@Cached(inline = false) CStructAccess.WritePointerNode writePointerNode) {
1076-
threadState.clearCurrentException();
1077-
PThreadState nativeWrapper = threadState.getNativeWrapper();
1078-
if (nativeWrapper != null) {
1079-
Object nativeThreadState = PThreadState.getOrCreateNativeThreadState(threadState);
1080-
writePointerNode.write(nativeThreadState, CFields.PyThreadState__curexc_type, 0L);
1081-
}
1082-
}
1083-
}
1084-
1085997
@GenerateInline
1086998
@GenerateCached(false)
1087999
@GenerateUncached

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/ExternalFunctionNodes.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@
6464
import com.oracle.graal.python.builtins.objects.PNone;
6565
import com.oracle.graal.python.builtins.objects.PythonAbstractObject;
6666
import com.oracle.graal.python.builtins.objects.cext.PythonAbstractNativeObject;
67-
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.ClearCurrentExceptionNode;
6867
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.PCallCapiFunction;
6968
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.ReleaseNativeWrapperNode;
7069
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodesFactory.AsCharPointerNodeGen;
@@ -83,6 +82,7 @@
8382
import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.ToPythonWrapperNode;
8483
import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitionsFactory.PythonToNativeNodeGen;
8584
import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes.CheckFunctionResultNode;
85+
import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes.ClearCurrentExceptionNode;
8686
import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes.ConvertPIntToPrimitiveNode;
8787
import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes.GetIndexNode;
8888
import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes.TransformExceptionFromNativeNode;

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/ManagedMethodWrappers.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@
4343
import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.checkThrowableBeforeNative;
4444

4545
import com.oracle.graal.python.builtins.objects.PNone;
46-
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.TransformExceptionToNativeNode;
4746
import com.oracle.graal.python.builtins.objects.cext.capi.PythonNativeWrapper.PythonStructNativeWrapper;
4847
import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode;
4948
import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode;
49+
import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes.TransformExceptionToNativeNode;
5050
import com.oracle.graal.python.builtins.objects.function.PKeyword;
5151
import com.oracle.graal.python.nodes.argument.keywords.ExpandKeywordStarargsNode;
5252
import com.oracle.graal.python.nodes.argument.positional.ExecutePositionalStarargsNode;

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/PyCFunctionWrapper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,10 @@
4444

4545
import com.oracle.graal.python.builtins.Builtin;
4646
import com.oracle.graal.python.builtins.objects.PNone;
47-
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.TransformExceptionToNativeNode;
4847
import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTiming;
4948
import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode;
5049
import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode;
50+
import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes.TransformExceptionToNativeNode;
5151
import com.oracle.graal.python.builtins.objects.cext.common.CExtContext;
5252
import com.oracle.graal.python.builtins.objects.function.BuiltinMethodDescriptor;
5353
import com.oracle.graal.python.builtins.objects.function.BuiltinMethodDescriptor.BinaryBuiltinDescriptor;

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/PyProcsWrapper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,11 @@
4343
import static com.oracle.graal.python.builtins.PythonBuiltinClassType.TypeError;
4444
import static com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.checkThrowableBeforeNative;
4545

46-
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.TransformExceptionToNativeNode;
4746
import com.oracle.graal.python.builtins.objects.cext.capi.PythonNativeWrapper.PythonStructNativeWrapper;
4847
import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTiming;
4948
import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.NativeToPythonNode;
5049
import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNewRefNode;
50+
import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes.TransformExceptionToNativeNode;
5151
import com.oracle.graal.python.builtins.objects.function.PKeyword;
5252
import com.oracle.graal.python.lib.PyNumberAsSizeNode;
5353
import com.oracle.graal.python.lib.PyNumberIndexNode;

0 commit comments

Comments
 (0)