Skip to content

Commit b031792

Browse files
committed
[GR-68708] Enable uncached Bytecode DSL interpreter.
PullRequest: graalpython/4169
2 parents 2690c0d + 439209b commit b031792

File tree

66 files changed

+184
-101
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+184
-101
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/array/ArrayBuiltins.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2017, 2025, Oracle and/or its affiliates.
2+
* Copyright (c) 2017, 2026, Oracle and/or its affiliates.
33
* Copyright (c) 2014, Regents of the University of California
44
*
55
* All rights reserved.
@@ -323,7 +323,7 @@ static PArray arraySequenceInitializer(VirtualFrame frame, Node inliningTarget,
323323
}
324324
}
325325

326-
@Specialization(guards = {"!isBytes(initializer)", "!isString(initializer)", "!isPSequence(initializer)"})
326+
@Specialization(guards = {"!isBytes(initializer)", "!isString(initializer)", "!isPSequence(initializer)", "!isNoValue(initializer)"})
327327
@InliningCutoff
328328
static PArray arrayIteratorInitializer(VirtualFrame frame, Node inliningTarget, Object cls, TruffleString typeCode, Object initializer,
329329
@Cached PyObjectGetIter getIter,

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/asyncio/GetAwaitableNode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@
6262
import com.oracle.truffle.api.nodes.Node;
6363

6464
@GenerateUncached
65-
@OperationProxy.Proxyable(storeBytecodeIndex = true)
65+
@OperationProxy.Proxyable(allowUncached = true, storeBytecodeIndex = true)
6666
@GenerateInline(false)
6767
public abstract class GetAwaitableNode extends Node {
6868
public abstract Object execute(VirtualFrame frame, Object arg);

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2018, 2025, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2018, 2026, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* The Universal Permissive License (UPL), Version 1.0
@@ -2230,7 +2230,7 @@ static Object doGeneric(PythonThreadState state, @SuppressWarnings("unused") Tru
22302230
if (currentException == PNone.NO_VALUE) {
22312231
throw raiseNode.raise(inliningTarget, PythonBuiltinClassType.StopIteration);
22322232
} else {
2233-
throw PException.fromObject(currentException, inliningTarget, false);
2233+
throw PException.fromObjectFixUncachedLocation(currentException, inliningTarget, false);
22342234
}
22352235
}
22362236
return result;

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/common/CExtCommonNodes.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2019, 2025, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2019, 2026, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* The Universal Permissive License (UPL), Version 1.0
@@ -617,7 +617,7 @@ private static void checkFunctionResultSlowpath(Node inliningTarget, TruffleStri
617617
if (indicatesError) {
618618
if (errOccurred) {
619619
assert currentException != PNone.NO_VALUE;
620-
throw PException.fromObject(currentException, inliningTarget, false);
620+
throw PException.fromObjectFixUncachedLocation(currentException, inliningTarget, false);
621621
} else if (strict) {
622622
assert currentException == PNone.NO_VALUE;
623623
throw raiseNullButNoError(inliningTarget, name, nullButNoErrorMessage);

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/common/HashingStorage.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@
7575
import com.oracle.truffle.api.dsl.Fallback;
7676
import com.oracle.truffle.api.dsl.GenerateCached;
7777
import com.oracle.truffle.api.dsl.GenerateInline;
78+
import com.oracle.truffle.api.dsl.GenerateUncached;
7879
import com.oracle.truffle.api.dsl.NeverDefault;
7980
import com.oracle.truffle.api.dsl.Specialization;
8081
import com.oracle.truffle.api.frame.VirtualFrame;
@@ -190,6 +191,7 @@ public static HashingStorage addKeyValuesToStorage(VirtualFrame frame, HashingSt
190191
// partial impl dict_update_arg
191192
@GenerateCached
192193
@GenerateInline(false)
194+
@GenerateUncached
193195
public abstract static class ObjectToArrayPairNode extends PNodeWithContext {
194196
public abstract ArrayBuilder<KeyValue> execute(VirtualFrame frame, Object mapping, Object keyAttr);
195197

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/dict/DictNodes.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ static void doForeign(Object dict, HashingStorage oldStorage, HashingStorage new
131131
}
132132

133133
@GenerateInline(false) // footprint reduction 52 -> 36
134+
@GenerateUncached
134135
public abstract static class UpdateNode extends PNodeWithContext {
135136
public abstract void execute(Frame frame, Object self, Object other);
136137

@@ -155,6 +156,7 @@ public static UpdateNode create() {
155156
}
156157

157158
@GenerateInline
159+
@GenerateUncached
158160
@GenerateCached(false)
159161
public abstract static class UpdateInnerNode extends PNodeWithContext {
160162
public abstract void execute(Frame frame, Node inliningTarget, Object self, HashingStorage selfStorage, Object other, Object otherStorage);

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/foreign/ForeignAbstractClassBuiltins.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2017, 2025, Oracle and/or its affiliates.
2+
* Copyright (c) 2017, 2026, Oracle and/or its affiliates.
33
* Copyright (c) 2014, Regents of the University of California
44
*
55
* All rights reserved.
@@ -76,7 +76,7 @@
7676
*/
7777
@CoreFunctions(extendClasses = PythonBuiltinClassType.ForeignAbstractClass)
7878
public final class ForeignAbstractClassBuiltins extends PythonBuiltins {
79-
public static TpSlots SLOTS = ForeignAbstractClassBuiltinsSlotsGen.SLOTS;
79+
public static final TpSlots SLOTS = ForeignAbstractClassBuiltinsSlotsGen.SLOTS;
8080

8181
@Override
8282
protected List<? extends NodeFactory<? extends PythonBuiltinBaseNode>> getNodeFactories() {

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/foreign/ForeignBooleanBuiltins.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2017, 2025, Oracle and/or its affiliates.
2+
* Copyright (c) 2017, 2026, Oracle and/or its affiliates.
33
* Copyright (c) 2014, Regents of the University of California
44
*
55
* All rights reserved.
@@ -65,7 +65,7 @@
6565
*/
6666
@CoreFunctions(extendClasses = PythonBuiltinClassType.ForeignBoolean)
6767
public final class ForeignBooleanBuiltins extends PythonBuiltins {
68-
public static TpSlots SLOTS = ForeignBooleanBuiltinsSlotsGen.SLOTS;
68+
public static final TpSlots SLOTS = ForeignBooleanBuiltinsSlotsGen.SLOTS;
6969

7070
@Override
7171
protected List<? extends NodeFactory<? extends PythonBuiltinBaseNode>> getNodeFactories() {

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/foreign/ForeignNumberBuiltins.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2017, 2025, Oracle and/or its affiliates.
2+
* Copyright (c) 2017, 2026, Oracle and/or its affiliates.
33
* Copyright (c) 2014, Regents of the University of California
44
*
55
* All rights reserved.
@@ -127,7 +127,7 @@
127127
*/
128128
@CoreFunctions(extendClasses = PythonBuiltinClassType.ForeignNumber)
129129
public final class ForeignNumberBuiltins extends PythonBuiltins {
130-
public static TpSlots SLOTS = ForeignNumberBuiltinsSlotsGen.SLOTS;
130+
public static final TpSlots SLOTS = ForeignNumberBuiltinsSlotsGen.SLOTS;
131131

132132
@Override
133133
protected List<? extends NodeFactory<? extends PythonBuiltinBaseNode>> getNodeFactories() {

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/foreign/ForeignObjectBuiltins.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@
105105
*/
106106
@CoreFunctions(extendClasses = PythonBuiltinClassType.ForeignObject)
107107
public final class ForeignObjectBuiltins extends PythonBuiltins {
108-
public static TpSlots SLOTS = ForeignObjectBuiltinsSlotsGen.SLOTS;
108+
public static final TpSlots SLOTS = ForeignObjectBuiltinsSlotsGen.SLOTS;
109109

110110
@Override
111111
protected List<? extends NodeFactory<? extends PythonBuiltinBaseNode>> getNodeFactories() {

0 commit comments

Comments
 (0)