Skip to content

Commit 276c3c5

Browse files
committed
Remove PythonBuiltinBaseNode#raiseOSError() and raiseOSErrorFromPosixException()
1 parent f3a5c93 commit 276c3c5

26 files changed

+656
-458
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/CryptModuleBuiltins.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,19 @@
4646
import com.oracle.graal.python.builtins.Builtin;
4747
import com.oracle.graal.python.builtins.CoreFunctions;
4848
import com.oracle.graal.python.builtins.PythonBuiltins;
49+
import com.oracle.graal.python.nodes.PConstructAndRaiseNode;
4950
import com.oracle.graal.python.nodes.function.PythonBuiltinBaseNode;
5051
import com.oracle.graal.python.nodes.function.builtins.PythonBinaryClinicBuiltinNode;
5152
import com.oracle.graal.python.nodes.function.builtins.clinic.ArgumentClinicProvider;
5253
import com.oracle.graal.python.runtime.PosixSupportLibrary;
54+
import com.oracle.truffle.api.dsl.Bind;
55+
import com.oracle.truffle.api.dsl.Cached;
5356
import com.oracle.truffle.api.dsl.GenerateNodeFactory;
5457
import com.oracle.truffle.api.dsl.NodeFactory;
5558
import com.oracle.truffle.api.dsl.Specialization;
5659
import com.oracle.truffle.api.frame.VirtualFrame;
5760
import com.oracle.truffle.api.library.CachedLibrary;
61+
import com.oracle.truffle.api.nodes.Node;
5862
import com.oracle.truffle.api.strings.TruffleString;
5963

6064
@CoreFunctions(defineModule = "_crypt")
@@ -71,11 +75,13 @@ protected List<? extends NodeFactory<? extends PythonBuiltinBaseNode>> getNodeFa
7175
abstract static class CryptNode extends PythonBinaryClinicBuiltinNode {
7276
@Specialization
7377
Object crypt(VirtualFrame frame, TruffleString word, TruffleString salt,
74-
@CachedLibrary("getPosixSupport()") PosixSupportLibrary posixLib) {
78+
@Bind("this") Node inliningTarget,
79+
@CachedLibrary("getPosixSupport()") PosixSupportLibrary posixLib,
80+
@Cached PConstructAndRaiseNode.Lazy constructAndRaiseNode) {
7581
try {
7682
return posixLib.crypt(getPosixSupport(), word, salt);
7783
} catch (PosixSupportLibrary.PosixException e) {
78-
throw raiseOSErrorFromPosixException(frame, e);
84+
throw constructAndRaiseNode.get(inliningTarget).raiseOSErrorFromPosixException(frame, e);
7985
}
8086
}
8187

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/FcntlModuleBuiltins.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
import com.oracle.graal.python.builtins.modules.FcntlModuleBuiltinsClinicProviders.FlockNodeClinicProviderGen;
5252
import com.oracle.graal.python.builtins.modules.PosixModuleBuiltins.FileDescriptorConversionNode;
5353
import com.oracle.graal.python.builtins.objects.PNone;
54+
import com.oracle.graal.python.nodes.PConstructAndRaiseNode;
5455
import com.oracle.graal.python.nodes.function.PythonBuiltinBaseNode;
5556
import com.oracle.graal.python.nodes.function.builtins.PythonBinaryClinicBuiltinNode;
5657
import com.oracle.graal.python.nodes.function.builtins.clinic.ArgumentClinicProvider;
@@ -104,12 +105,13 @@ protected ArgumentClinicProvider getArgumentClinic() {
104105
synchronized PNone flock(VirtualFrame frame, int fd, int operation,
105106
@Bind("this") Node inliningTarget,
106107
@Cached SysModuleBuiltins.AuditNode auditNode,
107-
@CachedLibrary("getPosixSupport()") PosixSupportLibrary posix) {
108+
@CachedLibrary("getPosixSupport()") PosixSupportLibrary posix,
109+
@Cached PConstructAndRaiseNode.Lazy constructAndRaiseNode) {
108110
auditNode.audit(inliningTarget, "fcntl.flock", fd, operation);
109111
try {
110112
posix.flock(getPosixSupport(), fd, operation);
111113
} catch (PosixException e) {
112-
throw raiseOSErrorFromPosixException(frame, e);
114+
throw constructAndRaiseNode.get(inliningTarget).raiseOSErrorFromPosixException(frame, e);
113115
}
114116
return PNone.NONE;
115117
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/GraalPythonModuleBuiltins.java

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@
122122
import com.oracle.graal.python.lib.PyObjectCallMethodObjArgs;
123123
import com.oracle.graal.python.lib.PyObjectGetItem;
124124
import com.oracle.graal.python.nodes.ErrorMessages;
125+
import com.oracle.graal.python.nodes.PConstructAndRaiseNode;
125126
import com.oracle.graal.python.nodes.builtins.FunctionNodes.GetCallTargetNode;
126127
import com.oracle.graal.python.nodes.bytecode.PBytecodeRootNode;
127128
import com.oracle.graal.python.nodes.call.CallNode;
@@ -158,7 +159,6 @@
158159
import com.oracle.truffle.api.TruffleLogger;
159160
import com.oracle.truffle.api.dsl.Bind;
160161
import com.oracle.truffle.api.dsl.Cached;
161-
import com.oracle.truffle.api.dsl.Cached.Shared;
162162
import com.oracle.truffle.api.dsl.Fallback;
163163
import com.oracle.truffle.api.dsl.GenerateNodeFactory;
164164
import com.oracle.truffle.api.dsl.NeverDefault;
@@ -396,25 +396,21 @@ private static Object[] convertToObjectArray(TruffleString[] arr) {
396396
@GenerateNodeFactory
397397
public abstract static class ReadFileNode extends PythonUnaryBuiltinNode {
398398
@Specialization
399-
public PBytes doString(VirtualFrame frame, TruffleString filename,
400-
@Shared @Cached TruffleString.EqualNode eqNode) {
399+
PBytes doString(VirtualFrame frame, Object filenameObj,
400+
@Bind("this") Node inliningTarget,
401+
@Cached CastToTruffleStringNode castToTruffleStringNode,
402+
@Cached TruffleString.EqualNode eqNode,
403+
@Cached PConstructAndRaiseNode.Lazy constructAndRaiseNode) {
401404
try {
405+
TruffleString filename = castToTruffleStringNode.execute(inliningTarget, filenameObj);
402406
TruffleFile file = getContext().getPublicTruffleFileRelaxed(filename, PythonLanguage.T_DEFAULT_PYTHON_EXTENSIONS);
403407
byte[] bytes = file.readAllBytes();
404408
return factory().createBytes(bytes);
405409
} catch (Exception ex) {
406410
ErrorAndMessagePair errAndMsg = OSErrorEnum.fromException(ex, eqNode);
407-
throw raiseOSError(frame, errAndMsg.oserror.getNumber(), errAndMsg.message);
411+
throw constructAndRaiseNode.get(inliningTarget).raiseOSError(frame, errAndMsg.oserror.getNumber(), errAndMsg.message);
408412
}
409413
}
410-
411-
@Specialization
412-
public Object doGeneric(VirtualFrame frame, Object filename,
413-
@Bind("this") Node inliningTarget,
414-
@Cached CastToTruffleStringNode castToTruffleStringNode,
415-
@Shared @Cached TruffleString.EqualNode eqNode) {
416-
return doString(frame, castToTruffleStringNode.execute(inliningTarget, filename), eqNode);
417-
}
418414
}
419415

420416
@Builtin(name = "dump_truffle_ast", minNumOfPositionalArgs = 1)
@@ -940,15 +936,17 @@ Object which(Object object) {
940936
abstract static class DumpHeapNode extends PythonBuiltinNode {
941937
@Specialization
942938
TruffleString doit(VirtualFrame frame,
939+
@Bind("this") Node inliningTarget,
943940
@Cached TruffleString.FromJavaStringNode fromJavaStringNode,
944-
@Cached TruffleString.EqualNode eqNode) {
941+
@Cached TruffleString.EqualNode eqNode,
942+
@Cached PConstructAndRaiseNode.Lazy constructAndRaiseNode) {
945943
TruffleFile tempFile;
946944
try {
947945
PythonContext context = getContext();
948946
tempFile = context.getEnv().createTempFile(context.getEnv().getCurrentWorkingDirectory(), J_GRAALPYTHON_ID, ".hprof");
949947
tempFile.delete();
950948
} catch (IOException e) {
951-
throw raiseOSError(frame, e, eqNode);
949+
throw constructAndRaiseNode.get(inliningTarget).raiseOSError(frame, e, eqNode);
952950
}
953951
PythonUtils.dumpHeap(tempFile.getPath());
954952
return fromJavaStringNode.execute(tempFile.getPath(), TS_ENCODING);

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/MMapModuleBuiltins.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.PythonToNativeNode;
6666
import com.oracle.graal.python.builtins.objects.mmap.PMMap;
6767
import com.oracle.graal.python.nodes.ErrorMessages;
68+
import com.oracle.graal.python.nodes.PConstructAndRaiseNode;
6869
import com.oracle.graal.python.nodes.function.PythonBuiltinBaseNode;
6970
import com.oracle.graal.python.nodes.function.builtins.PythonClinicBuiltinNode;
7071
import com.oracle.graal.python.nodes.function.builtins.clinic.ArgumentClinicProvider;
@@ -160,7 +161,8 @@ protected ArgumentClinicProvider getArgumentClinic() {
160161
PMMap doFile(VirtualFrame frame, Object clazz, int fd, long lengthIn, int flagsIn, int protIn, @SuppressWarnings("unused") int accessIn, long offset,
161162
@Bind("this") Node inliningTarget,
162163
@Cached SysModuleBuiltins.AuditNode auditNode,
163-
@CachedLibrary("getPosixSupport()") PosixSupportLibrary posixSupport) {
164+
@CachedLibrary("getPosixSupport()") PosixSupportLibrary posixSupport,
165+
@Cached PConstructAndRaiseNode.Lazy constructAndRaiseNode) {
164166
checkLength(lengthIn);
165167
checkOffset(offset);
166168
int flags = flagsIn;
@@ -229,15 +231,15 @@ PMMap doFile(VirtualFrame frame, Object clazz, int fd, long lengthIn, int flagsI
229231
try {
230232
dupFd = posixSupport.dup(getPosixSupport(), fd);
231233
} catch (PosixException e) {
232-
throw raiseOSErrorFromPosixException(frame, e);
234+
throw constructAndRaiseNode.get(inliningTarget).raiseOSErrorFromPosixException(frame, e);
233235
}
234236
}
235237

236238
Object mmapHandle;
237239
try {
238240
mmapHandle = posixSupport.mmap(getPosixSupport(), length, prot, flags, dupFd, offset);
239241
} catch (PosixException e) {
240-
throw raiseOSErrorFromPosixException(frame, e);
242+
throw constructAndRaiseNode.get(inliningTarget).raiseOSErrorFromPosixException(frame, e);
241243
}
242244
return factory().createMMap(getContext(), clazz, mmapHandle, dupFd, length, access);
243245
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/MultiprocessingModuleBuiltins.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,8 @@ Object doGeneric(VirtualFrame frame, Object multiprocessingFdsList, Object multi
396396
@Cached ListNodes.FastConstructListNode constructListNode,
397397
@Cached CastToJavaIntLossyNode castToJava,
398398
@Cached CastToJavaDoubleNode castToDouble,
399-
@Cached GilNode gil) {
399+
@Cached GilNode gil,
400+
@Cached PConstructAndRaiseNode.Lazy constructAndRaiseNode) {
400401
PythonContext context = getContext();
401402
SharedMultiprocessingData sharedData = context.getSharedMultiprocessingData();
402403

@@ -438,7 +439,7 @@ Object doGeneric(VirtualFrame frame, Object multiprocessingFdsList, Object multi
438439

439440
return factory().createList(result.toArray(new Object[0]));
440441
} catch (PosixSupportLibrary.PosixException e) {
441-
throw raiseOSErrorFromPosixException(frame, e);
442+
throw constructAndRaiseNode.get(inliningTarget).raiseOSErrorFromPosixException(frame, e);
442443
} finally {
443444
gil.acquire();
444445
}

0 commit comments

Comments
 (0)