Skip to content

Commit 60de18c

Browse files
committed
[GR-37904] Backport into 21.3.2: Updating ICU4J library to version 70.1.
PullRequest: js/2398
2 parents 674b8dd + 397c14c commit 60de18c

File tree

6 files changed

+138
-33
lines changed

6 files changed

+138
-33
lines changed

3rd_party_licenses.txt

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -478,11 +478,11 @@ defined by the Mozilla Public License, v. 2.0.
478478

479479
================================================================================
480480

481-
ICU4J 68.2
481+
ICU4J 70.1
482482

483-
COPYRIGHT AND PERMISSION NOTICE (ICU 58 and later)
483+
COPYRIGHT AND PERMISSION NOTICE
484484

485-
Copyright © 1991-2020 Unicode, Inc. All rights reserved.
485+
Copyright © 1991-2022 Unicode, Inc. All rights reserved.
486486
Distributed under the Terms of Use in https://www.unicode.org/copyright.html.
487487

488488
Permission is hereby granted, free of charge, to any person obtaining
@@ -763,31 +763,29 @@ property of their respective owners.
763763

764764
3. Lao Word Break Dictionary Data (laodict.txt)
765765

766-
# Copyright (c) 2013 International Business Machines Corporation
767-
# and others. All Rights Reserved.
766+
# Copyright (C) 2016 and later: Unicode, Inc. and others.
767+
# License & terms of use: http://www.unicode.org/copyright.html
768+
# Copyright (c) 2015 International Business Machines Corporation
769+
# and others. All Rights Reserved.
768770
#
769-
# Project: https://github.com/veer66/lao-dictionary
770-
# Dictionary: https://github.com/veer66/lao-dictionary/blob/master/Lao-Dictionary.txt
771-
# License: https://github.com/veer66/lao-dictionary/blob/master/Lao-Dictionary-LICENSE.txt
772-
# (copied below)
771+
# Project: https://github.com/rober42539/lao-dictionary
772+
# Dictionary: https://github.com/rober42539/lao-dictionary/laodict.txt
773+
# License: https://github.com/rober42539/lao-dictionary/LICENSE.txt
774+
# (copied below)
773775
#
774-
# This file is derived from the above dictionary, with slight
775-
# modifications.
776+
# This file is derived from the above dictionary version of Nov 22, 2020
776777
# ----------------------------------------------------------------------
777778
# Copyright (C) 2013 Brian Eugene Wilson, Robert Martin Campbell.
778779
# All rights reserved.
779780
#
780781
# Redistribution and use in source and binary forms, with or without
781-
# modification,
782-
# are permitted provided that the following conditions are met:
783-
#
784-
#
785-
# Redistributions of source code must retain the above copyright notice, this
786-
# list of conditions and the following disclaimer. Redistributions in
787-
# binary form must reproduce the above copyright notice, this list of
788-
# conditions and the following disclaimer in the documentation and/or
789-
# other materials provided with the distribution.
782+
# modification, are permitted provided that the following conditions are met:
790783
#
784+
# Redistributions of source code must retain the above copyright notice, this
785+
# list of conditions and the following disclaimer. Redistributions in binary
786+
# form must reproduce the above copyright notice, this list of conditions and
787+
# the following disclaimer in the documentation and/or other materials
788+
# provided with the distribution.
791789
#
792790
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
793791
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ The main focus is on user-observable behavior of the engine.
55

66
## Version 21.3.2
77
* Updated Node.js to version 14.19.1.
8+
* Updated ICU4J library to version 70.1.
89

910
## Version 21.3.1
1011
* Updated Node.js to version 14.18.1.

common.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@
22
"README": "This file contains definitions that are useful for the hocon and jsonnet CI files of multiple repositories.",
33

44
"jdks": {
5-
"openjdk8": {"name": "openjdk", "version": "8u302+06-jvmci-21.3-b02", "platformspecific": true },
6-
"oraclejdk8": {"name": "oraclejdk", "version": "8u311+06-jvmci-21.3-b02", "platformspecific": true },
7-
"oraclejdk8Debug": {"name": "oraclejdk", "version": "8u311+06-jvmci-21.3-b02-fastdebug", "platformspecific": true },
5+
"openjdk8": {"name": "openjdk", "version": "8u302+06-jvmci-21.3-b05", "platformspecific": true },
6+
"oraclejdk8": {"name": "oraclejdk", "version": "8u331+09-jvmci-21.3-b11", "platformspecific": true },
7+
"oraclejdk8Debug": {"name": "oraclejdk", "version": "8u331+09-jvmci-21.3-b11-fastdebug", "platformspecific": true },
88

99
"openjdk11": {"name": "openjdk", "version": "11.0.11+9", "platformspecific": true },
1010
"oraclejdk11": {"name": "oraclejdk", "version": "11.0.11+9", "platformspecific": true },
11-
"labsjdk-ce-11": {"name": "labsjdk", "version": "ce-11.0.12+5-jvmci-21.3-b02", "platformspecific": true },
12-
"labsjdk-ee-11": {"name": "labsjdk", "version": "ee-11.0.13+6-jvmci-21.3-b02", "platformspecific": true },
11+
"labsjdk-ce-11": {"name": "labsjdk", "version": "ce-11.0.15+7-jvmci-21.3-b12", "platformspecific": true },
12+
"labsjdk-ee-11": {"name": "labsjdk", "version": "ee-11.0.15+8-jvmci-21.3-b11", "platformspecific": true },
1313

1414
"oraclejdk17": {"name": "oraclejdk", "version": "17.0.1+2", "platformspecific": true },
15-
"labsjdk-ce-17": {"name": "labsjdk", "version": "ce-17+35-jvmci-21.3-b02", "platformspecific": true },
16-
"labsjdk-ce-17Debug": {"name": "labsjdk", "version": "ce-17+35-jvmci-21.3-b02-debug", "platformspecific": true },
17-
"labsjdk-ee-17": {"name": "labsjdk", "version": "ee-17.0.1+7-jvmci-21.3-b02", "platformspecific": true },
18-
"labsjdk-ee-17Debug": {"name": "labsjdk", "version": "ee-17.0.1+7-jvmci-21.3-b02-debug", "platformspecific": true }
15+
"labsjdk-ce-17": {"name": "labsjdk", "version": "ce-17.0.3+5-jvmci-21.3-b12", "platformspecific": true },
16+
"labsjdk-ce-17Debug": {"name": "labsjdk", "version": "ce-17.0.3+5-jvmci-21.3-b12-debug", "platformspecific": true },
17+
"labsjdk-ee-17": {"name": "labsjdk", "version": "ee-17.0.3+8-jvmci-21.3-b11", "platformspecific": true },
18+
"labsjdk-ee-17Debug": {"name": "labsjdk", "version": "ee-17.0.3+8-jvmci-21.3-b11-debug", "platformspecific": true }
1919
},
2020

2121
"COMMENT" : "The devkits versions reflect those used to build the JVMCI JDKs (e.g., see devkit_platform_revisions in <jdk>/make/conf/jib-profiles.js)",

graal-js/mx.graal-js/suite.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
{
2525
"name" : "regex",
2626
"subdir" : True,
27-
"version" : "ad535115cd6441bdc6e2b0842b50a630aa5abf1c",
27+
"version" : "7a579862f78a85b56b4239d9e8535cad93ec4ff8",
2828
"urls" : [
2929
{"url" : "https://github.com/oracle/graal.git", "kind" : "git"},
3030
{"url" : "https://curio.ssw.jku.at/nexus/content/repositories/snapshots", "kind" : "binary"},
@@ -60,12 +60,12 @@
6060

6161
"ICU4J" : {
6262
"moduleName" : "com.ibm.icu",
63-
"sha1" : "ff666ac55986650893aacb9e2e0003538e9799c0",
64-
"sourceSha1" : "3e19ca5465fce86a094c24df0b6c9256e53c8885",
63+
"sha1" : "dfa3a1fbc55bf5db8c6e79fc0935ac7ab1202950",
64+
"sourceSha1" : "21551c094193ab59d284b434c1e33a3ddf4b5c0e",
6565
"maven" : {
6666
"groupId" : "com.ibm.icu",
6767
"artifactId" : "icu4j",
68-
"version" : "69.1",
68+
"version" : "70.1",
6969
},
7070
},
7171

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
/*
2+
* Copyright (c) 2021, 2022, Oracle and/or its affiliates. All rights reserved.
3+
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4+
*
5+
* The Universal Permissive License (UPL), Version 1.0
6+
*
7+
* Subject to the condition set forth below, permission is hereby granted to any
8+
* person obtaining a copy of this software, associated documentation and/or
9+
* data (collectively the "Software"), free of charge and under any and all
10+
* copyright rights in the Software, and any and all patent rights owned or
11+
* freely licensable by each licensor hereunder covering either (i) the
12+
* unmodified Software as contributed to or provided by such licensor, or (ii)
13+
* the Larger Works (as defined below), to deal in both
14+
*
15+
* (a) the Software, and
16+
*
17+
* (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if
18+
* one is included with the Software each a "Larger Work" to which the Software
19+
* is contributed by such licensors),
20+
*
21+
* without restriction, including without limitation the rights to copy, create
22+
* derivative works of, display, perform, and distribute the Software and make,
23+
* use, sell, offer for sale, import, export, have made, and have sold the
24+
* Software and the Larger Work(s), and to sublicense the foregoing rights on
25+
* either these or other terms.
26+
*
27+
* This license is subject to the following condition:
28+
*
29+
* The above copyright notice and either this complete permission notice or at a
30+
* minimum a reference to the UPL must be included in all copies or substantial
31+
* portions of the Software.
32+
*
33+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
34+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
35+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
36+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
37+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
38+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
39+
* SOFTWARE.
40+
*/
41+
package com.oracle.truffle.js.test.runtime;
42+
43+
import java.util.Arrays;
44+
import java.util.HashSet;
45+
import java.util.Set;
46+
47+
import org.junit.Assert;
48+
import org.junit.Test;
49+
50+
public class TimezoneICUJDKCompat {
51+
52+
@Test
53+
public void compareICUandJDKTimezones() {
54+
String[] icuIDs = com.ibm.icu.util.TimeZone.getAvailableIDs();
55+
String[] jdkIDs = java.util.TimeZone.getAvailableIDs();
56+
Set<String> jdkSet = new HashSet<>(Arrays.asList(jdkIDs));
57+
58+
String error = null;
59+
long now = System.currentTimeMillis();
60+
for (String entry : icuIDs) {
61+
if (jdkSet.contains(entry)) {
62+
63+
com.ibm.icu.util.TimeZone icuTimezone = com.ibm.icu.util.TimeZone.getTimeZone(entry);
64+
java.util.TimeZone jdkTimezone = java.util.TimeZone.getTimeZone(entry);
65+
66+
int icuOffset = icuTimezone.getOffset(now);
67+
int jdkOffset = jdkTimezone.getOffset(now);
68+
if (icuOffset != jdkOffset) {
69+
error = "difference in timezone offset: " + entry + " icu=" + icuOffset + " jdk=" + jdkOffset;
70+
System.err.println(error);
71+
}
72+
73+
jdkSet.remove(entry);
74+
} else {
75+
System.err.println("timezone missing in JDK: " + entry);
76+
// TODO we consider this a warning only
77+
}
78+
}
79+
80+
for (String entry : jdkSet) {
81+
error = "missing in ICU: " + entry;
82+
System.err.println(error);
83+
}
84+
if (error != null) {
85+
Assert.fail(error);
86+
}
87+
}
88+
89+
@Test
90+
public void compareICUandJDKversions() {
91+
String versionJDK = java.time.zone.ZoneRulesProvider.getVersions("UTC").lastEntry().getKey();
92+
String versionICU = com.ibm.icu.util.TimeZone.getTZDataVersion();
93+
if ("2021a3".equals(versionICU)) {
94+
// Time zone data (tzdata) version 2021e (2021-oct) except that
95+
// for now ICU retains pre-1970 time zone data that has recently
96+
// been removed from the TZ DB. (Reports as version "2021a3")
97+
versionICU = "2021e";
98+
}
99+
Assert.assertEquals(versionJDK, versionICU);
100+
}
101+
102+
}

graal-js/test/testV8.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,10 @@
153153
"filePath" : "intl/regress-10613.js",
154154
"status" : "FAIL",
155155
"comment" : "Different error message expected, passes otherwise"
156+
}, {
157+
"filePath" : "intl/regress-1074578.js",
158+
"status" : "FAIL",
159+
"comment" : "Fails after ICU4J 70.1 update. Expects a different formatting of a timezone (MST versus GMT-7)."
156160
}, {
157161
"filePath" : "intl/regress-1130489.js",
158162
"status" : "PASS",

0 commit comments

Comments
 (0)