Update to ICU 65.1
ICU 65.1 release notes: http://site.icu-project.org/download/65
CLDR 36: http://blog.unicode.org/2019/10/unicode-cldr-version-36-languagelocale.html
1. Update to 65-1
Diary https://docs.google.com/document/d/1RHttPn26N3hPeGUz9LLTsrQ7UvORLDOK9XumhgqgtvU/edit#
2. Remove unnecessary files
$ git rm source/data/*/*local.mk
$ git rm source/data/translit/root_subset.txt
3. Reduce the data size by filtering supplemental data
Size changes:
65-1 . 64-2
7786368 7777488 android/icudtl.dat
6412768 6427344 android_small/icudtl.dat
1418320 1394480 android_small/icudtl_extra.dat
5060080 5108144 cast/icudtl.dat
10481216 10450592 chromeos/icudtl.dat
10505952 10426816 common/icudtb.dat
10505952 10426816 common/icudtl.dat
900576 . 901808 flutter/icudtl.dat
6375984 6377520 ios/icudtl.dat
A. Filter supplementalData by keeping fields only if referenced by the code.
calendarData source/i18n/erarules.cpp
calendarPreferenceData source/i18n/calendar.cpp source/i18n/ucal.cpp
cldrVersion source/i18n/ulocdata.cpp
codeMappings source/i18n/region.cpp
idValidity source/i18n/region.cpp
measurementData source/i18n/ulocdata.cpp
territoryContainment source/i18n/region.cpp
timeData source/i18n/dtptngen.cpp
weekData source/i18n/dtptngen.cpp
weekData%variant source/i18n/dtptngen.cpp
The following fields will be dropped because there's no code reference in ICU, Chrome and v8:
codeMappingsCurrency
languageData
languageMatching
languageMatchingInfo
languageMatchingNew
parentLocales
subdivisionContainment
territoryInfo
unitPreferenceData
weekOfPreference
To verify that they're not needed by running the following command:
find -type f |egrep -v "./data/"|xargs egrep "(codeMappingsCurrency|languageData|languageMatching|parentLocales|subdivisionContainment|territoryInfo|unitPreferenceData|weekOfPreference)"
under icu4c/source in ICU65 tree.
B. add back dnam in unit to prepare for extension of Intl.DisplayNames
Note that ICU 65.1 comes with a new file langInfo.res which is needed by the
new LocaleMatcher API. The languageMatching* fields in supplementalData,
although named very similar to that, is not used by the implementation of
LocaleMatcher* API. We also search the chromium code and found no references
to these fields name in chromium tree.
See https://cs.chromium.org/search/?q=%5B%5EA-Za-z0-9%5D(codeMappingsCurrency%7ClanguageData%7ClanguageMatching%7CparentLocales%7CsubdivisionContainment%7CterritoryInfo%7CunitPreferenceData%7CweekOfPreference)%5B%5EA-Za-z0-9%5D&type=cs
Bug: chromium:1014272
Change-Id: I30220449b1dbe58371ca89fbfe61c6b3f47295c2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/deps/icu/+/1881599
Reviewed-by: Jungshik Shin <jshin@chromium.org>
diff --git a/source/tools/toolutil/filetools.cpp b/source/tools/toolutil/filetools.cpp
index 6e88c94..0f0e9c5 100644
--- a/source/tools/toolutil/filetools.cpp
+++ b/source/tools/toolutil/filetools.cpp
@@ -65,7 +65,7 @@
if (U_FAILURE(status)) {
fprintf(stderr, "%s:%d: %s\n", __FILE__, __LINE__, u_errorName(status));
return FALSE;
- };
+ }
if ((subDirp = opendir(newpath.data())) != NULL) {
/* If this new path is a directory, make a recursive call with the newpath. */