Skip to content

Commit 9fff68b

Browse files
committed
Address more truffle sharing warnings
1 parent d3f7862 commit 9fff68b

29 files changed

+283
-267
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@SuppressPackageWarnings({ "truffle-sharing", "truffle-inlining" })
1+
@SuppressPackageWarnings({ "truffle-inlining" })
22
package org.truffleruby.core.array.library;
33

44
import com.oracle.truffle.api.dsl.SuppressPackageWarnings;

src/main/java/org/truffleruby/core/cast/NameToJavaStringNode.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,9 @@ public static NameToJavaStringNode getUncached() {
4848

4949
public abstract RubyBaseNodeWithExecute getValueNode();
5050

51-
@Specialization(guards = "strings.isRubyString(value)", limit = "1")
51+
@Specialization(guards = "libString.isRubyString(value)", limit = "1")
5252
protected String stringNameToJavaString(Object value,
53-
@Cached RubyStringLibrary strings,
53+
@Cached @Shared RubyStringLibrary libString,
5454
@Cached @Shared ToJavaStringNode toJavaStringNode) {
5555
return toJavaStringNode.executeToJavaString(value);
5656
}
@@ -70,7 +70,7 @@ protected String nameToJavaString(String value) {
7070
protected String nameToJavaString(Object object,
7171
@Cached BranchProfile errorProfile,
7272
@Cached DispatchNode toStr,
73-
@Cached RubyStringLibrary libString,
73+
@Cached @Shared RubyStringLibrary libString,
7474
@Cached @Shared ToJavaStringNode toJavaStringNode) {
7575
final Object coerced;
7676
try {

src/main/java/org/truffleruby/core/cast/ToFNode.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
package org.truffleruby.core.cast;
1212

1313
import com.oracle.truffle.api.dsl.Cached;
14+
import com.oracle.truffle.api.dsl.NeverDefault;
1415
import com.oracle.truffle.api.dsl.Specialization;
1516
import org.truffleruby.core.numeric.BigIntegerOps;
1617
import org.truffleruby.core.numeric.RubyBignum;
@@ -21,6 +22,7 @@ public abstract class ToFNode extends RubyBaseNode {
2122

2223
@Child private DispatchNode toFNode;
2324

25+
@NeverDefault
2426
public static ToFNode create() {
2527
return ToFNodeGen.create();
2628
}

src/main/java/org/truffleruby/core/cast/ToRubyEncodingNode.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
package org.truffleruby.core.cast;
1111

1212
import com.oracle.truffle.api.dsl.Cached;
13+
import com.oracle.truffle.api.dsl.Cached.Exclusive;
1314
import com.oracle.truffle.api.dsl.NeverDefault;
1415
import org.truffleruby.core.encoding.RubyEncoding;
1516
import org.truffleruby.core.regexp.RubyRegexp;
@@ -34,13 +35,13 @@ public static ToRubyEncodingNode create() {
3435

3536
@Specialization
3637
protected RubyEncoding stringToEncoding(RubyString value,
37-
@Cached RubyStringLibrary libString) {
38+
@Cached @Exclusive RubyStringLibrary libString) {
3839
return libString.getEncoding(value);
3940
}
4041

4142
@Specialization
4243
protected RubyEncoding immutableStringToEncoding(ImmutableRubyString value,
43-
@Cached RubyStringLibrary libString) {
44+
@Cached @Exclusive RubyStringLibrary libString) {
4445
return libString.getEncoding(value);
4546
}
4647

src/main/java/org/truffleruby/core/cast/ToSymbolNode.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
package org.truffleruby.core.cast;
1111

1212
import com.oracle.truffle.api.dsl.Cached;
13+
import com.oracle.truffle.api.dsl.Cached.Shared;
1314
import com.oracle.truffle.api.dsl.NeverDefault;
1415
import com.oracle.truffle.api.dsl.NodeChild;
1516
import com.oracle.truffle.api.profiles.BranchProfile;
@@ -67,7 +68,7 @@ protected RubySymbol javaStringUncached(String str) {
6768
guards = { "strings.isRubyString(str)", "equalNode.execute(strings, str, cachedTString, cachedEncoding)" },
6869
limit = "getCacheLimit()")
6970
protected RubySymbol rubyString(Object str,
70-
@Cached RubyStringLibrary strings,
71+
@Cached @Shared RubyStringLibrary strings,
7172
@Cached(value = "asTruffleStringUncached(str)") TruffleString cachedTString,
7273
@Cached(value = "strings.getEncoding(str)") RubyEncoding cachedEncoding,
7374
@Cached StringHelperNodes.EqualSameEncodingNode equalNode,
@@ -77,15 +78,15 @@ protected RubySymbol rubyString(Object str,
7778

7879
@Specialization(guards = "strings.isRubyString(str)", replaces = "rubyString", limit = "1")
7980
protected RubySymbol rubyStringUncached(Object str,
80-
@Cached RubyStringLibrary strings) {
81+
@Cached @Shared RubyStringLibrary strings) {
8182
return getSymbol(strings.getTString(str), strings.getEncoding(str));
8283
}
8384

8485
@Specialization(guards = { "!isRubySymbol(object)", "!isString(object)", "isNotRubyString(object)" })
8586
protected RubySymbol toStr(Object object,
8687
@Cached BranchProfile errorProfile,
8788
@Cached DispatchNode toStrNode,
88-
@Cached RubyStringLibrary libString,
89+
@Cached @Shared RubyStringLibrary strings,
8990
@Cached ToSymbolNode toSymbolNode) {
9091
var coerced = toStrNode.call(
9192
coreLibrary().truffleTypeModule,
@@ -94,7 +95,7 @@ protected RubySymbol toStr(Object object,
9495
coreLibrary().stringClass,
9596
coreSymbols().TO_STR);
9697

97-
if (libString.isRubyString(coerced)) {
98+
if (strings.isRubyString(coerced)) {
9899
return toSymbolNode.execute(coerced);
99100
} else {
100101
errorProfile.enter();
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@SuppressPackageWarnings({ "truffle-sharing", "truffle-inlining" })
1+
@SuppressPackageWarnings({ "truffle-inlining" })
22
package org.truffleruby.core.cast;
33

44
import com.oracle.truffle.api.dsl.SuppressPackageWarnings;

src/main/java/org/truffleruby/core/format/convert/ToDoubleNode.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
2020
import com.oracle.truffle.api.dsl.Cached;
21+
import com.oracle.truffle.api.dsl.Cached.Shared;
2122
import com.oracle.truffle.api.dsl.NodeChild;
2223
import com.oracle.truffle.api.dsl.Specialization;
2324
import org.truffleruby.language.objects.IsANode;
@@ -55,14 +56,14 @@ protected double toDouble(RubyBignum bignum) {
5556

5657
@Specialization(guards = { "!isRubyNumber(object)", "isNumeric(object, isANode)" }, limit = "1")
5758
protected double toDouble(RubyDynamicObject object,
58-
@Cached IsANode isANode,
59+
@Cached @Shared IsANode isANode,
5960
@Cached ToFNode toFNode) {
6061
return toFNode.executeToDouble(object);
6162
}
6263

6364
@Specialization(guards = { "!isRubyNumber(object)", "!isNumeric(object, isANode)" }, limit = "1")
6465
protected double toDouble(Object object,
65-
@Cached IsANode isANode) {
66+
@Cached @Shared IsANode isANode) {
6667
throw new RaiseException(
6768
getContext(),
6869
coreExceptions().typeErrorCantConvertInto(object, "Float", this));

src/main/java/org/truffleruby/core/format/convert/ToStringNode.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import java.nio.charset.StandardCharsets;
1313

1414
import com.oracle.truffle.api.dsl.Cached;
15+
import com.oracle.truffle.api.dsl.Cached.Shared;
16+
import com.oracle.truffle.api.dsl.Cached.Exclusive;
1517
import com.oracle.truffle.api.strings.TruffleString;
1618
import org.truffleruby.core.array.RubyArray;
1719
import org.truffleruby.core.encoding.Encodings;
@@ -91,7 +93,7 @@ protected RubyString toString(double value,
9193
@TruffleBoundary
9294
@Specialization(guards = "specialClassBehaviour")
9395
protected Object toStringSpecialClass(RubyClass rubyClass,
94-
@Cached RubyStringLibrary libString) {
96+
@Cached @Shared RubyStringLibrary libString) {
9597
if (rubyClass == getContext().getCoreLibrary().trueClass) {
9698
return createString(TStringConstants.TRUE, Encodings.US_ASCII);
9799
} else if (rubyClass == getContext().getCoreLibrary().falseClass) {
@@ -105,8 +107,8 @@ protected Object toStringSpecialClass(RubyClass rubyClass,
105107

106108
@Specialization(guards = "libString.isRubyString(string)", limit = "1")
107109
protected Object toStringString(Object string,
108-
@Cached RubyStringLibrary libValue,
109-
@Cached RubyStringLibrary libString) {
110+
@Cached @Exclusive RubyStringLibrary libValue,
111+
@Cached @Shared RubyStringLibrary libString) {
110112
if ("inspect".equals(conversionMethod)) {
111113
final Object value = getToStrNode().call(string, conversionMethod);
112114

@@ -121,7 +123,7 @@ protected Object toStringString(Object string,
121123

122124
@Specialization
123125
protected Object toString(RubyArray array,
124-
@Cached RubyStringLibrary libString) {
126+
@Cached @Shared RubyStringLibrary libString) {
125127
if (toSNode == null) {
126128
CompilerDirectives.transferToInterpreterAndInvalidate();
127129
toSNode = insert(DispatchNode.create(PRIVATE_RETURN_MISSING));
@@ -139,7 +141,7 @@ protected Object toString(RubyArray array,
139141
@Specialization(
140142
guards = { "isNotRubyString(object)", "!isRubyArray(object)", "!isForeignObject(object)" })
141143
protected Object toString(Object object,
142-
@Cached RubyStringLibrary libString) {
144+
@Cached @Shared RubyStringLibrary libString) {
143145
final Object value = getToStrNode().call(object, conversionMethod);
144146

145147
if (libString.isRubyString(value)) {
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@SuppressPackageWarnings({ "truffle-sharing", "truffle-inlining" })
1+
@SuppressPackageWarnings({ "truffle-inlining" })
22
package org.truffleruby.core.format.convert;
33

44
import com.oracle.truffle.api.dsl.SuppressPackageWarnings;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@SuppressPackageWarnings({ "truffle-sharing", "truffle-inlining" })
1+
@SuppressPackageWarnings({ "truffle-inlining" })
22
package org.truffleruby.core.format.format;
33

44
import com.oracle.truffle.api.dsl.SuppressPackageWarnings;

0 commit comments

Comments
 (0)