Skip to content

Commit 610b2f2

Browse files
committed
Remove obsolete method 'PTuple.getItemNormalized'.
1 parent 844221b commit 610b2f2

File tree

6 files changed

+47
-23
lines changed

6 files changed

+47
-23
lines changed

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

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@
139139
import com.oracle.graal.python.runtime.PythonParser.ParserMode;
140140
import com.oracle.graal.python.runtime.exception.PException;
141141
import com.oracle.graal.python.runtime.exception.PythonErrorType;
142+
import com.oracle.graal.python.runtime.sequence.storage.SequenceStorage;
142143
import com.oracle.truffle.api.CompilerDirectives;
143144
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
144145
import com.oracle.truffle.api.RootCallTarget;
@@ -1101,17 +1102,20 @@ public abstract static class PrintNode extends PythonBuiltinNode {
11011102
@SuppressWarnings("unused")
11021103
@Specialization
11031104
public Object print(PTuple values, String sep, String end, Object file, boolean flush,
1105+
@Cached("createNotNormalized()") SequenceStorageNodes.GetItemNode getItemNode,
11041106
@Cached("create(__STR__)") LookupAndCallUnaryNode callStr) {
11051107
try {
11061108
PythonContext context = getContext();
11071109
if (values.len() == 0) {
11081110
write(context, end);
11091111
} else {
1112+
SequenceStorage store = values.getSequenceStorage();
11101113
StringBuilder sb = new StringBuilder();
1111-
for (int i = 0; i < values.len() - 1; i++) {
1112-
sb.append(callStr.executeObject(values.getItemNormalized(i)) + " ");
1114+
for (int i = 0; i < store.length() - 1; i++) {
1115+
append(sb, callStr.executeObject(getItemNode.execute(store, i)));
1116+
append(sb, " ");
11131117
}
1114-
sb.append(callStr.executeObject(values.getItemNormalized(values.len() - 1)));
1118+
append(sb, callStr.executeObject(getItemNode.execute(store, store.length() - 1)));
11151119
sb.append(end);
11161120
write(context, sb.toString());
11171121
}
@@ -1122,6 +1126,11 @@ public Object print(PTuple values, String sep, String end, Object file, boolean
11221126
return PNone.NONE;
11231127
}
11241128

1129+
@TruffleBoundary(transferToInterpreterOnException = false)
1130+
private static void append(StringBuilder sb, Object o) {
1131+
sb.append(o);
1132+
}
1133+
11251134
@TruffleBoundary
11261135
private static void write(PythonContext context, String string) throws IOException {
11271136
context.getStandardOut().write(string.getBytes());

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

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import com.oracle.graal.python.builtins.CoreFunctions;
4040
import com.oracle.graal.python.builtins.PythonBuiltins;
4141
import com.oracle.graal.python.builtins.objects.PNone;
42+
import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes;
4243
import com.oracle.graal.python.builtins.objects.floats.PFloat;
4344
import com.oracle.graal.python.builtins.objects.ints.PInt;
4445
import com.oracle.graal.python.builtins.objects.tuple.PTuple;
@@ -55,6 +56,7 @@
5556
import com.oracle.graal.python.runtime.exception.PythonErrorType;
5657
import static com.oracle.graal.python.runtime.exception.PythonErrorType.NotImplementedError;
5758
import com.oracle.graal.python.runtime.object.PythonObjectFactory;
59+
import com.oracle.graal.python.runtime.sequence.storage.SequenceStorage;
5860
import com.oracle.truffle.api.CompilerDirectives;
5961
import com.oracle.truffle.api.CompilerDirectives.CompilationFinal;
6062
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
@@ -742,9 +744,10 @@ public PTuple frexpL(long value) {
742744

743745
@Specialization
744746
@TruffleBoundary
745-
public PTuple frexpPI(PInt value) {
747+
public PTuple frexpPI(PInt value,
748+
@Cached("createNotNormalized()") SequenceStorageNodes.GetItemNode getItemNode) {
746749
PTuple result = frexpD(value.getValue().doubleValue());
747-
if (Double.isInfinite((double) result.getItemNormalized(0))) {
750+
if (Double.isInfinite((double) getItemNode.execute(result.getSequenceStorage(), 0))) {
748751
throw raise(OverflowError, "int too large to convert to float");
749752
}
750753
return result;
@@ -1661,6 +1664,8 @@ public double count(double value) {
16611664
@GenerateNodeFactory
16621665
public abstract static class Log2Node extends MathDoubleUnaryBuiltinNode {
16631666

1667+
@Child private SequenceStorageNodes.GetItemNode getItemNode;
1668+
16641669
private static final double LOG2 = Math.log(2);
16651670
private static final BigInteger TWO = BigInteger.valueOf(2);
16661671

@@ -1683,14 +1688,22 @@ public double doPI(PInt value) {
16831688
public double count(double value) {
16841689
checkMathDomainError(value <= 0);
16851690
PTuple frexpR = FrexpNode.frexp(value, factory());
1686-
double m = (double) frexpR.getItemNormalized(0);
1687-
int e = (int) frexpR.getItemNormalized(1);
1691+
double m = (double) getItem(frexpR.getSequenceStorage(), 0);
1692+
int e = (int) getItem(frexpR.getSequenceStorage(), 1);
16881693
if (value >= 1.0) {
16891694
return Math.log(2.0 * m) / LOG2 + (e - 1);
16901695
} else {
16911696
return Math.log(m) / LOG2 + e;
16921697
}
16931698
}
1699+
1700+
private Object getItem(SequenceStorage store, int idx) {
1701+
if (getItemNode == null) {
1702+
CompilerDirectives.transferToInterpreterAndInvalidate();
1703+
getItemNode = insert(SequenceStorageNodes.GetItemNode.createNotNormalized());
1704+
}
1705+
return getItemNode.execute(store, idx);
1706+
}
16941707
}
16951708

16961709
@Builtin(name = "log10", fixedNumOfArguments = 1)

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
import com.oracle.graal.python.builtins.objects.bytes.PBytes;
7171
import com.oracle.graal.python.builtins.objects.bytes.PIBytesLike;
7272
import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes;
73+
import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes.GetItemNode;
7374
import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes.ToByteArrayNode;
7475
import com.oracle.graal.python.builtins.objects.floats.PFloat;
7576
import com.oracle.graal.python.builtins.objects.function.PKeyword;
@@ -873,6 +874,8 @@ Object chmod(Object path, Object mode, Object dir_fd, Object follow_symlinks) {
873874
@GenerateNodeFactory
874875
@TypeSystemReference(PythonArithmeticTypes.class)
875876
abstract static class UtimeNode extends PythonBuiltinNode {
877+
@Child private GetItemNode getItemNode;
878+
876879
@SuppressWarnings("unused")
877880
@Specialization
878881
Object utime(String path, PNone times, PNone ns, PNone dir_fd, PNone follow_symlinks) {
@@ -930,7 +933,11 @@ private long getTime(PTuple times, int index, String argname) {
930933
if (times.len() <= index) {
931934
throw tupleError(argname);
932935
}
933-
Object mtimeObj = times.getItemNormalized(index);
936+
if (getItemNode == null) {
937+
CompilerDirectives.transferToInterpreterAndInvalidate();
938+
getItemNode = insert(GetItemNode.createNotNormalized());
939+
}
940+
Object mtimeObj = getItemNode.execute(times.getSequenceStorage(), index);
934941
long mtime;
935942
if (mtimeObj instanceof Integer) {
936943
mtime = ((Integer) mtimeObj).longValue();

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
import com.oracle.graal.python.builtins.objects.PNotImplemented;
6464
import com.oracle.graal.python.builtins.objects.common.HashingStorage;
6565
import com.oracle.graal.python.builtins.objects.common.HashingStorageNodes;
66+
import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes;
6667
import com.oracle.graal.python.builtins.objects.dict.PDictView.PDictItemsView;
6768
import com.oracle.graal.python.builtins.objects.dict.PDictView.PDictKeysView;
6869
import com.oracle.graal.python.builtins.objects.set.PBaseSet;
@@ -136,13 +137,14 @@ boolean contains(PDictKeysView self, Object key,
136137
boolean contains(PDictItemsView self, PTuple key,
137138
@Cached("create()") HashingStorageNodes.GetItemNode getItemNode,
138139
@Cached("create()") HashingStorageNodes.PythonEquivalence equivalenceNode,
139-
@Cached("createBinaryProfile()") ConditionProfile tupleLenProfile) {
140+
@Cached("createBinaryProfile()") ConditionProfile tupleLenProfile,
141+
@Cached("createNotNormalized()") SequenceStorageNodes.GetItemNode getSeqItemNode) {
140142
if (tupleLenProfile.profile(key.len() != 2)) {
141143
return false;
142144
}
143145
HashingStorage dictStorage = self.getDict().getDictStorage();
144-
Object value = getItemNode.execute(dictStorage, key.getItemNormalized(0));
145-
return value != null && equivalenceNode.equals(value, key.getItemNormalized(1));
146+
Object value = getItemNode.execute(dictStorage, getSeqItemNode.execute(key.getSequenceStorage(), 0));
147+
return value != null && equivalenceNode.equals(value, getSeqItemNode.execute(key.getSequenceStorage(), 1));
146148
}
147149
}
148150

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/exception/PBaseException.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@
5555
import com.oracle.graal.python.runtime.exception.PException;
5656
import com.oracle.graal.python.runtime.formatting.ErrorMessageFormatter;
5757
import com.oracle.graal.python.runtime.object.PythonObjectFactory;
58+
import com.oracle.graal.python.runtime.sequence.storage.BasicSequenceStorage;
59+
import com.oracle.graal.python.runtime.sequence.storage.SequenceStorage;
5860
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
5961
import com.oracle.truffle.api.CompilerAsserts;
6062
import com.oracle.truffle.api.TruffleStackTraceElement;
@@ -161,7 +163,9 @@ public String toString() {
161163
} else if (args.len() == 0) {
162164
return getPythonClass().getName();
163165
} else if (args.len() == 1) {
164-
return getPythonClass().getName() + ": " + args.getItemNormalized(0).toString();
166+
SequenceStorage store = args.getSequenceStorage();
167+
Object item = store instanceof BasicSequenceStorage ? store.getItemNormalized(0) : "<unknown>";
168+
return getPythonClass().getName() + ": " + item.toString();
165169
} else {
166170
return getPythonClass().getName() + ": " + args.toString();
167171
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/tuple/PTuple.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ public PTuple(PythonClass cls, SequenceStorage store) {
4949
this.store = store;
5050
}
5151

52-
@Deprecated
5352
public Object[] getArray() {
5453
// TODO disallow direct array access
5554
if (store instanceof ObjectSequenceStorage) {
@@ -67,11 +66,6 @@ public boolean isEmpty() {
6766
return len() == 0;
6867
}
6968

70-
@Deprecated
71-
public Object getItemNormalized(int index) {
72-
return store.getItemNormalized(index);
73-
}
74-
7569
@Override
7670
public String toString() {
7771
CompilerAsserts.neverPartOfCompilation();
@@ -98,11 +92,6 @@ public String toString() {
9892
}
9993
}
10094

101-
@SuppressWarnings({"unused", "static-method"})
102-
public PTuple __mul__(int value) {
103-
throw new UnsupportedOperationException();
104-
}
105-
10695
@Override
10796
public SequenceStorage getSequenceStorage() {
10897
return store;

0 commit comments

Comments
 (0)