Skip to content

Commit 4edc01d

Browse files
committed
[GR-43593] [GR-43399] Update to JCodings 1.0.58 and Joni 2.1.44
PullRequest: truffleruby/3695
2 parents dd4e885 + 8fd1403 commit 4edc01d

File tree

7 files changed

+40
-26
lines changed

7 files changed

+40
-26
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ Compatibility:
9090
* Update `$LOAD_PATH.resolve_feature_path` to return `nil` instead of raising `LoadError` when feature isn't found (#2733, @andrykonchin).
9191
* Add `objspace/trace` file (#2733, @andrykonchin).
9292
* Add `Process._fork` (#2733, @horakivo).
93+
* Update to JCodings 1.0.58 and Joni 2.1.44 (@eregon).
9394

9495
Performance:
9596

mx.truffleruby/suite.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
{
88
"name": "regex",
99
"subdir": True,
10-
"version": "de9796c50f3de5a166287285174646fd34cbce5e",
10+
"version": "ccbe0c944d918159f36bac32e37c1a8cc529604f",
1111
"urls": [
1212
{"url": "https://github.com/oracle/graal.git", "kind": "git"},
1313
{"url": "https://curio.ssw.jku.at/nexus/content/repositories/snapshots", "kind": "binary"},
@@ -16,7 +16,7 @@
1616
{
1717
"name": "sulong",
1818
"subdir": True,
19-
"version": "de9796c50f3de5a166287285174646fd34cbce5e",
19+
"version": "ccbe0c944d918159f36bac32e37c1a8cc529604f",
2020
"urls": [
2121
{"url": "https://github.com/oracle/graal.git", "kind": "git"},
2222
{"url": "https://curio.ssw.jku.at/nexus/content/repositories/snapshots", "kind": "binary"},
@@ -56,25 +56,25 @@
5656

5757
# ------------- Libraries -------------
5858

59-
"JONI": {
59+
"JCODINGS": {
6060
"maven": {
61-
"groupId": "org.jruby.joni",
62-
"artifactId": "joni",
63-
"version": "2.1.41"
61+
"groupId": "org.jruby.jcodings",
62+
"artifactId": "jcodings",
63+
"version": "1.0.58"
6464
},
65-
"digest": "sha512:88728bb3b6cf8b385e3a4639981ab8a54e977291cbb1d8b60fddd3a3381d9d5f356faa46b6b15b9ccf6ed4a2a42552152a254bfeab60f8b2ddac4959300212ac",
66-
"sourceDigest": "sha512:8502efcc9ab4d31aa92eb9c279f02b9cb1ab2d9c65660635a84d9ef6e773b05ebae026043ed7749a41dc0ee8b5f822d2e88ba44b3f6e244b145d61f2095e8d77",
65+
"digest": "sha512:625210aa07d1e08bf2f5fdc9da6c491a4e5a56e7db297cba1aa73636670ac1d62f3fd763716ef6ede862456b17169272ed9c8461d07100f95262163dc9c18ef8",
66+
"sourceDigest": "sha512:d0f883f658310f7ad091aea08df28f1f5fe12080d6cb266cd91aec7e34cda1d57736d32618e8632b329854367d6e4d5fc91b5eb8ac9b823b26113fae3f75f50c",
6767
"license": ["MIT"],
6868
},
6969

70-
"JCODINGS": {
70+
"JONI": {
7171
"maven": {
72-
"groupId": "org.jruby.jcodings",
73-
"artifactId": "jcodings",
74-
"version": "1.0.55"
72+
"groupId": "org.jruby.joni",
73+
"artifactId": "joni",
74+
"version": "2.1.44"
7575
},
76-
"digest": "sha512:791c1442ca0aad9132f5d2d641f9bacf5b461e11fa2f8d2010af0de77ee2629a330c739004699bb987e331798e1eea06b5b6b15b7e7dd6d41f3322edce805d6b",
77-
"sourceDigest": "sha512:8935def3d670972d1d82a981fe3fbd999abffac07350c46419f1e542c4529f00c949e3eef442321fce23941b648cb09de157114ec751c0ef85c7ccfa6b719445",
76+
"digest": "sha512:59b901333d93b8eaf0c28a2d269d159e6806701902505113148c4df6b2ade973e97f9b888b8b5b4dff4d3c667b4594eeee8133f4260e7f1f3d9af1a031b9cab4",
77+
"sourceDigest": "sha512:773051c47893799ecc0b916b80c4dedac0efe2988743d455ce8529460aed2d7664d4b12cd51e449a8b20ac0c37e32ead89d72f6acf4f6a780268b55fdd67e3cf",
7878
"license": ["MIT"],
7979
},
8080

src/main/java/org/truffleruby/core/encoding/Encodings.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@
1212
*/
1313
package org.truffleruby.core.encoding;
1414

15+
import com.oracle.truffle.api.CompilerDirectives;
1516
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
17+
import com.oracle.truffle.api.strings.TruffleString;
1618
import org.jcodings.Encoding;
1719
import org.jcodings.EncodingDB;
1820
import org.jcodings.specific.ASCIIEncoding;
@@ -72,8 +74,11 @@ private static RubyEncoding[] initializeRubyEncodings() {
7274
if (encoding == USASCIIEncoding.INSTANCE) {
7375
rubyEncoding = US_ASCII;
7476
} else {
75-
final ImmutableRubyString name = FrozenStringLiterals.createStringAndCacheLater(
76-
TStringConstants.TSTRING_CONSTANTS.get(encoding.toString()), US_ASCII);
77+
TruffleString tstring = TStringConstants.TSTRING_CONSTANTS.get(encoding.toString());
78+
if (tstring == null) {
79+
throw CompilerDirectives.shouldNotReachHere("no TStringConstants for " + encoding);
80+
}
81+
final ImmutableRubyString name = FrozenStringLiterals.createStringAndCacheLater(tstring, US_ASCII);
7782
rubyEncoding = new RubyEncoding(encoding, name, encoding.getIndex());
7883
}
7984
encodings[encoding.getIndex()] = rubyEncoding;

src/main/java/org/truffleruby/core/string/ImmutableRubyString.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535
import org.truffleruby.language.dispatch.DispatchNode;
3636
import org.truffleruby.language.library.RubyStringLibrary;
3737

38+
import java.util.Objects;
39+
3840
/** All ImmutableRubyString are interned and must be created through
3941
* {@link FrozenStringLiterals#getFrozenStringLiteral}. */
4042
@ExportLibrary(InteropLibrary.class)
@@ -47,8 +49,8 @@ public final class ImmutableRubyString extends ImmutableRubyObjectCopyable imple
4749
ImmutableRubyString(TruffleString tstring, RubyEncoding encoding) {
4850
assert tstring.isCompatibleToUncached(encoding.tencoding);
4951
assert tstring.isManaged();
50-
this.tstring = tstring;
51-
this.encoding = encoding;
52+
this.tstring = Objects.requireNonNull(tstring);
53+
this.encoding = Objects.requireNonNull(encoding);
5254
}
5355

5456
/** should only be used for debugging */

src/main/java/org/truffleruby/core/string/RubyString.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
import com.oracle.truffle.api.object.Shape;
3535
import org.truffleruby.language.library.RubyStringLibrary;
3636

37+
import java.util.Objects;
38+
3739
@ExportLibrary(RubyLibrary.class)
3840
@ExportLibrary(InteropLibrary.class)
3941
@ImportStatic(RubyBaseNode.class)
@@ -53,19 +55,19 @@ public RubyString(
5355
super(rubyClass, shape);
5456
assert tstring.isCompatibleToUncached(rubyEncoding.tencoding);
5557
this.frozen = frozen;
56-
this.tstring = tstring;
57-
this.encoding = rubyEncoding;
58+
this.tstring = Objects.requireNonNull(tstring);
59+
this.encoding = Objects.requireNonNull(rubyEncoding);
5860
}
5961

6062
public void setTString(AbstractTruffleString tstring) {
6163
assert tstring.isCompatibleToUncached(getEncodingUncached().tencoding);
62-
this.tstring = tstring;
64+
this.tstring = Objects.requireNonNull(tstring);
6365
}
6466

6567
public void setTString(AbstractTruffleString tstring, RubyEncoding encoding) {
6668
assert tstring.isCompatibleToUncached(encoding.tencoding);
67-
this.tstring = tstring;
68-
this.encoding = encoding;
69+
this.tstring = Objects.requireNonNull(tstring);
70+
this.encoding = Objects.requireNonNull(encoding);
6971
}
7072

7173
public void clearCodeRange() {

src/main/java/org/truffleruby/core/string/TStringConstants.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,8 @@ public class TStringConstants {
203203
public static final TruffleString STATELESS_ISO_2022_JP_KDDI = ascii("stateless-ISO-2022-JP-KDDI");
204204
public static final TruffleString UTF8_SOFTBANK = ascii("UTF8-SoftBank");
205205
public static final TruffleString SJIS_SOFTBANK = ascii("SJIS-SoftBank");
206+
public static final TruffleString IBM720 = ascii("IBM720");
207+
public static final TruffleString CESU_8 = ascii("CESU-8");
206208

207209
private static TruffleString ascii(String string) {
208210
if (string.length() == 1) {

src/main/java/org/truffleruby/core/symbol/RubySymbol.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131
import org.truffleruby.parser.IdentifierType;
3232
import org.truffleruby.parser.Identifiers;
3333

34+
import java.util.Objects;
35+
3436
@ExportLibrary(InteropLibrary.class)
3537
public final class RubySymbol extends ImmutableRubyObjectNotCopyable implements TruffleObject {
3638

@@ -51,9 +53,9 @@ public final class RubySymbol extends ImmutableRubyObjectNotCopyable implements
5153
RubySymbol(String string, TruffleString tstring, RubyEncoding encoding, long id) {
5254
assert tstring.isManaged();
5355
assert tstring.isCompatibleToUncached(encoding.tencoding);
54-
this.encoding = encoding;
55-
this.string = string;
56-
this.tstring = tstring;
56+
this.encoding = Objects.requireNonNull(encoding);
57+
this.string = Objects.requireNonNull(string);
58+
this.tstring = Objects.requireNonNull(tstring);
5759
this.javaStringHashCode = string.hashCode();
5860
this.id = id;
5961
this.type = Identifiers.stringToType(string);

0 commit comments

Comments
 (0)