Skip to content

Commit a9a2bd3

Browse files
committed
Update ICU to 62.1 + local patches
What's new in ICU 62.1: - Unicode 11 (new scripts, Emoji update, Text Boundary/Line break updates) - CLDR 33.1 (locale data; http://cldr.unicode.org/index/downloads/cldr-33-1 ) - More Numberformatter improvements and its support in MsgFormat - See http://site.icu-project.org/download/62 for more details. The update steps are recorded in https://chromium.googlesource.com/chromium/deps/icu/+log/172d331..c28591b The list of local changes are: Cherry-pick Greek lowercasing fix Fix a DecimalFormat maxSignificantDigits issue. * Rebuild the data files: size eduction of ~ 45 KiB 6386176 => 6340576 android 4929248 => 4883232 cast 10264208 => 10218000 common 6372480 => 6326896 ios * Update README.chromium and remove a reference to icudt.dll for Windows because it's not used any more. * Drop patches that became unnecessary. * Apply the remaining patches Isvalidenum.patch, locid_map.patch, double_conversion.patch * Apply data-build related patches {wpo,vscomp,data.build,data.build.win,data_symb}.patch * Apply BreakIterator related patches + locale1 patch * Apply Google's patch for locale data - region display names - likely subtags - Arabic locale: default number system => Latn - AM/PM markers for Hindi and a few Indic locales * Check in ICU 62.1 to the tree (62staging branch) by running scripts/update.sh. Build files are updated by the script. TBR=drott@chromium.org Bug: 850334 Test: None Change-Id: I7327363c90b9bccda20c1be8f4a65399f36c4e99 Reviewed-on: https://chromium-review.googlesource.com/1128503 Reviewed-by: Jungshik Shin <jshin@chromium.org>
1 parent 172d331 commit a9a2bd3

File tree

1,053 files changed

+67172
-66605
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,053 files changed

+67172
-66605
lines changed

APIChangeReport.html

Lines changed: 778 additions & 303 deletions
Large diffs are not rendered by default.

BUILD.gn

Lines changed: 41 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,6 @@ component("icui18n") {
111111
# sort | sed 's/^\(.*\)$/ "\1",/'
112112
sources = [
113113
# I18N_SRC_START
114-
"source/i18n/affixpatternparser.cpp",
115-
"source/i18n/affixpatternparser.h",
116114
"source/i18n/alphaindex.cpp",
117115
"source/i18n/anytrans.cpp",
118116
"source/i18n/anytrans.h",
@@ -205,33 +203,13 @@ component("icui18n") {
205203
"source/i18n/datefmt.cpp",
206204
"source/i18n/dayperiodrules.cpp",
207205
"source/i18n/dayperiodrules.h",
208-
"source/i18n/dcfmtimp.h",
209206
"source/i18n/dcfmtsym.cpp",
210207
"source/i18n/decContext.cpp",
211208
"source/i18n/decContext.h",
212-
"source/i18n/decfmtst.cpp",
213-
"source/i18n/decfmtst.h",
214-
"source/i18n/decimalformatpattern.cpp",
215-
"source/i18n/decimalformatpattern.h",
216-
"source/i18n/decimalformatpatternimpl.h",
217209
"source/i18n/decimfmt.cpp",
218-
"source/i18n/decimfmtimpl.cpp",
219-
"source/i18n/decimfmtimpl.h",
220210
"source/i18n/decNumber.cpp",
221211
"source/i18n/decNumber.h",
222212
"source/i18n/decNumberLocal.h",
223-
"source/i18n/digitaffix.cpp",
224-
"source/i18n/digitaffixesandpadding.cpp",
225-
"source/i18n/digitaffixesandpadding.h",
226-
"source/i18n/digitaffix.h",
227-
"source/i18n/digitformatter.cpp",
228-
"source/i18n/digitformatter.h",
229-
"source/i18n/digitgrouping.cpp",
230-
"source/i18n/digitgrouping.h",
231-
"source/i18n/digitinterval.cpp",
232-
"source/i18n/digitinterval.h",
233-
"source/i18n/digitlst.cpp",
234-
"source/i18n/digitlst.h",
235213
"source/i18n/double-conversion-bignum.cpp",
236214
"source/i18n/double-conversion-bignum-dtoa.cpp",
237215
"source/i18n/double-conversion-bignum-dtoa.h",
@@ -245,6 +223,8 @@ component("icui18n") {
245223
"source/i18n/double-conversion-fast-dtoa.h",
246224
"source/i18n/double-conversion.h",
247225
"source/i18n/double-conversion-ieee.h",
226+
"source/i18n/double-conversion-strtod.cpp",
227+
"source/i18n/double-conversion-strtod.h",
248228
"source/i18n/double-conversion-utils.h",
249229
"source/i18n/dtfmtsym.cpp",
250230
"source/i18n/dt_impl.h",
@@ -302,21 +282,32 @@ component("icui18n") {
302282
"source/i18n/nultrans.h",
303283
"source/i18n/number_affixutils.cpp",
304284
"source/i18n/number_affixutils.h",
285+
"source/i18n/number_asformat.cpp",
286+
"source/i18n/number_asformat.h",
287+
"source/i18n/number_capi.cpp",
305288
"source/i18n/number_compact.cpp",
306289
"source/i18n/number_compact.h",
290+
"source/i18n/number_currencysymbols.cpp",
291+
"source/i18n/number_currencysymbols.h",
307292
"source/i18n/number_decimalquantity.cpp",
308293
"source/i18n/number_decimalquantity.h",
309294
"source/i18n/number_decimfmtprops.cpp",
310295
"source/i18n/number_decimfmtprops.h",
296+
"source/i18n/number_decnum.h",
311297
"source/i18n/number_fluent.cpp",
312298
"source/i18n/number_formatimpl.cpp",
313299
"source/i18n/number_formatimpl.h",
314300
"source/i18n/number_grouping.cpp",
315301
"source/i18n/number_integerwidth.cpp",
316302
"source/i18n/number_longnames.cpp",
317303
"source/i18n/number_longnames.h",
304+
"source/i18n/number_mapper.cpp",
305+
"source/i18n/number_mapper.h",
306+
"source/i18n/number_microprops.h",
318307
"source/i18n/number_modifiers.cpp",
319308
"source/i18n/number_modifiers.h",
309+
"source/i18n/number_multiplier.cpp",
310+
"source/i18n/number_multiplier.h",
320311
"source/i18n/number_notation.cpp",
321312
"source/i18n/number_padding.cpp",
322313
"source/i18n/number_patternmodifier.cpp",
@@ -327,24 +318,45 @@ component("icui18n") {
327318
"source/i18n/number_roundingutils.h",
328319
"source/i18n/number_scientific.cpp",
329320
"source/i18n/number_scientific.h",
321+
"source/i18n/number_skeletons.cpp",
322+
"source/i18n/number_skeletons.h",
330323
"source/i18n/number_stringbuilder.cpp",
331324
"source/i18n/number_stringbuilder.h",
332325
"source/i18n/number_types.h",
326+
"source/i18n/number_utils.cpp",
333327
"source/i18n/number_utils.h",
328+
"source/i18n/number_utypes.h",
334329
"source/i18n/numfmt.cpp",
330+
"source/i18n/numparse_affixes.cpp",
331+
"source/i18n/numparse_affixes.h",
332+
"source/i18n/numparse_compositions.cpp",
333+
"source/i18n/numparse_compositions.h",
334+
"source/i18n/numparse_currency.cpp",
335+
"source/i18n/numparse_currency.h",
336+
"source/i18n/numparse_decimal.cpp",
337+
"source/i18n/numparse_decimal.h",
338+
"source/i18n/numparse_impl.cpp",
339+
"source/i18n/numparse_impl.h",
340+
"source/i18n/numparse_parsednumber.cpp",
341+
"source/i18n/numparse_scientific.cpp",
342+
"source/i18n/numparse_scientific.h",
343+
"source/i18n/numparse_stringsegment.cpp",
344+
"source/i18n/numparse_stringsegment.h",
345+
"source/i18n/numparse_symbols.cpp",
346+
"source/i18n/numparse_symbols.h",
347+
"source/i18n/numparse_types.h",
348+
"source/i18n/numparse_utils.h",
349+
"source/i18n/numparse_validators.cpp",
350+
"source/i18n/numparse_validators.h",
335351
"source/i18n/numsys.cpp",
336352
"source/i18n/numsys_impl.h",
337353
"source/i18n/olsontz.cpp",
338354
"source/i18n/olsontz.h",
339355
"source/i18n/persncal.cpp",
340356
"source/i18n/persncal.h",
341-
"source/i18n/pluralaffix.cpp",
342-
"source/i18n/pluralaffix.h",
343357
"source/i18n/plurfmt.cpp",
344358
"source/i18n/plurrule.cpp",
345359
"source/i18n/plurrule_impl.h",
346-
"source/i18n/precision.cpp",
347-
"source/i18n/precision.h",
348360
"source/i18n/quant.cpp",
349361
"source/i18n/quant.h",
350362
"source/i18n/quantityformatter.cpp",
@@ -392,10 +404,7 @@ component("icui18n") {
392404
"source/i18n/shareddateformatsymbols.h",
393405
"source/i18n/sharednumberformat.h",
394406
"source/i18n/sharedpluralrules.h",
395-
"source/i18n/significantdigitinterval.h",
396407
"source/i18n/simpletz.cpp",
397-
"source/i18n/smallintformatter.cpp",
398-
"source/i18n/smallintformatter.h",
399408
"source/i18n/smpdtfmt.cpp",
400409
"source/i18n/smpdtfst.cpp",
401410
"source/i18n/smpdtfst.h",
@@ -474,10 +483,6 @@ component("icui18n") {
474483
"source/i18n/utf8collationiterator.h",
475484
"source/i18n/utmscale.cpp",
476485
"source/i18n/utrans.cpp",
477-
"source/i18n/valueformatter.cpp",
478-
"source/i18n/valueformatter.h",
479-
"source/i18n/visibledigits.cpp",
480-
"source/i18n/visibledigits.h",
481486
"source/i18n/vtzone.cpp",
482487
"source/i18n/vzone.cpp",
483488
"source/i18n/vzone.h",
@@ -569,6 +574,7 @@ component("icui18n") {
569574
"source/i18n/unicode/ulocdata.h",
570575
"source/i18n/unicode/umsg.h",
571576
"source/i18n/unicode/unirepl.h",
577+
"source/i18n/unicode/unumberformatter.h",
572578
"source/i18n/unicode/unum.h",
573579
"source/i18n/unicode/unumsys.h",
574580
"source/i18n/unicode/upluralrules.h",
@@ -728,6 +734,8 @@ component("icuuc") {
728734
"source/common/sharedobject.h",
729735
"source/common/simpleformatter.cpp",
730736
"source/common/sprpimpl.h",
737+
"source/common/static_unicode_sets.cpp",
738+
"source/common/static_unicode_sets.h",
731739
"source/common/stringpiece.cpp",
732740
"source/common/stringtriebuilder.cpp",
733741
"source/common/uarrsort.cpp",

README.chromium

Lines changed: 14 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
Name: icu
22
URL: http://site.icu-project.org/
3-
Version: 60.1
3+
Version: 62.1
44
License: MIT
55
Security Critical: yes
66

77
Description:
8-
This directory contains the source code of ICU 60.1 for C/C++.
8+
This directory contains the source code of ICU 62.1 for C/C++.
99

1010
A. How to update ICU
1111

@@ -84,32 +84,9 @@ Pre-built data files are generated and checked in with the following steps
8484
non-Android and Android platforms.
8585

8686
e. Whenever data is updated (e.g timezone update), take step d as long
87-
as the ICU build directory used in a ~ c is kept. Besides, icudt.dll for
88-
Windows has to be udpated following the procedure described below.
87+
as the ICU build directory used in a ~ c is kept.
8988

90-
91-
2. icu data dll for Windows (non-default build option)
92-
93-
Follow these steps to build windows/icudt.dll. By default, we set
94-
icu_use_icu_data_flag to 1 and don't use this file.
95-
96-
a. check out a clean copy of icu 60.1 from the upstream on Windows
97-
outside the Chrome tree.
98-
99-
$ svn export --native-eol LF http://source.icu-project.org/repos/icu/tags/release-60-1/icu4c ${SEPARATE_ICU_ROOT}/icu60
100-
101-
b. copy ${CHROME_ICU_ROOT}/common/icudtl.dat to
102-
${SEPARATE_ICU_ROOT}/source/data/in/icudt60l.dat
103-
c. copy ${CHROME_ICU_ROOT}/source/data/makedata.mak to
104-
${SEPARATE_ICU_ROOT}/source/data/makedata.mak
105-
c. In Visual Studio, open source/allinone/allinone.sln solution
106-
in ${SEPARATE_ICU_ROOT}
107-
d. Build 'makedata' target
108-
e. icudt60.dll will be generated in ${SEPARATE_ICU_ROOT}/bin
109-
f. Copy that icudt60.dll to ${CHROME_ICU_ROOT}/windows/icudt.dll
110-
and check that in.
111-
112-
3. Note on the locale data customization
89+
2. Note on the locale data customization
11390

11491
- scripts/trim_data.sh
11592
a. Trim the locale data for Chrome's UI langauges :
@@ -198,6 +175,7 @@ D. Local Modifications
198175
* Currency signs in ru and uk locales (do not include 'tr' locale changes)
199176
* AM/PM, midnight, noon formatting for a few Indian locales
200177
* Timezone name changes in Korean and Chinese locales
178+
* Default digit for Arabic locale is European digits.
201179

202180
- patches/locale1.patch: Minor fixes for Korean
203181

@@ -252,22 +230,7 @@ D. Local Modifications
252230
- patches/isvalidenum.patch
253231
upstream bug: https://ssl.icu-project.org/trac/ticket/13509
254232

255-
6. Reduce size of SmallIntFormatter implementation
256-
257-
- patches/simplify_smallintformatter.patch
258-
upstream bug: https://ssl.icu-project.org/trac/ticket/12390
259-
260-
Reduce the size of the binary by about 16 kiB on Android,
261-
without noticeable performance change.
262-
263-
7. Apply a rule fix for a perf issue with a long sequence of letters/digits
264-
265-
- patches/word_long.patch
266-
upstream bug: https://ssl.icu-project.org/trac/ticket/13692
267-
(62-to-be does not have this issue)
268-
- bug: crbug.com/829144
269-
270-
8. Update IANA language tag/subtag mapping and add missing canonicalization for
233+
7. Update IANA language tag/subtag mapping and add missing canonicalization for
271234
deprecated regions
272235

273236
- patches/locid_map.patch
@@ -278,23 +241,22 @@ D. Local Modifications
278241
https://ssl.icu-project.org/trac/ticket/13720
279242
https://ssl.icu-project.org/trac/ticket/13719
280243

281-
9. Double conversion library build failure
244+
8. Double conversion library build failure
282245

283246
- patches/double_conversion.patch
284247
- upstream bugs:
285248
https://ssl.icu-project.org/trac/ticket/13750
286249
https://github.com/google/double-conversion/issues/66
287250

288-
10. MSVC C4715 warning (treated as error)
251+
9. Cherry-pick Greek lowercase fix from the upstream
289252

290-
- patches/msvc_numgroup.patch (fixed in 62-to-be)
291-
- upstream bug:
292-
https://ssl.icu-project.org/trac/ticket/13752
253+
- patches/greek_lowercase.patch
254+
- upstream bug (fixed in 62.2-to-be)
255+
https://ssl.icu-project.org/trac/ticket/13851
293256

294-
11. Fix the Windows timezone detection on Japanese/Korean Windows
257+
10. Max significant digit is always 6
295258

296-
- patches/wintz.patch
259+
- patches/nf_maxsig.patch
297260
- upstream bug:
298-
https://ssl.icu-project.org/trac/ticket/13826
299-
261+
https://ssl.icu-project.org/trac/ticket/13852
300262

android/icudtl.dat

-44.5 KB
Binary file not shown.

cast/icudtl.dat

-44.9 KB
Binary file not shown.

common/icudtb.dat

-45.1 KB
Binary file not shown.

common/icudtl.dat

-45.1 KB
Binary file not shown.

icu.gyp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -571,6 +571,7 @@
571571
'unicode/ulocdata.h',
572572
'unicode/umsg.h',
573573
'unicode/unirepl.h',
574+
'unicode/unumberformatter.h',
574575
'unicode/unum.h',
575576
'unicode/unumsys.h',
576577
'unicode/upluralrules.h',

0 commit comments

Comments
 (0)