Browse Source

Update ICU to 70.1

romankoshelev 1 year ago
parent
commit
fd82fb12fb

+ 3 - 0
build/conf/license.conf

@@ -116,6 +116,8 @@ LICENSES_UNATTRIBUTED= \
     LicenseRef-scancode-afpl-9.0 \
     LicenseRef-scancode-amd-historical \
     LicenseRef-scancode-anu-license \
+    LicenseRef-scancode-autoconf-simple-exception \
+    LicenseRef-scancode-autoconf-simple-exception-2.0 \
     LicenseRef-scancode-bsd-3-clause-jtag \
     LicenseRef-scancode-bsd-axis-nomod \
     LicenseRef-scancode-bsd-new-nomod \
@@ -166,6 +168,7 @@ LICENSES_UNATTRIBUTED= \
     Mit-Xfig \
     Mozilla-GC \
     NAIST-2003 \
+    NOSL \
     Nvidia-Gov \
     OFL-1.1 \
     Oracle \

+ 28 - 0
contrib/libs/cxxsupp/libcxx/include/ctgmath

@@ -0,0 +1,28 @@
+// -*- C++ -*-
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef _LIBCPP_CTGMATH
+#define _LIBCPP_CTGMATH
+
+/*
+    ctgmath synopsis
+
+#include <ccomplex>
+#include <cmath>
+
+*/
+
+#include <ccomplex>
+#include <cmath>
+
+#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
+#  pragma GCC system_header
+#endif
+
+#endif // _LIBCPP_CTGMATH

+ 11 - 2
contrib/libs/icu/CMakeLists.darwin-x86_64.txt

@@ -48,6 +48,7 @@ target_sources(contrib-libs-icu PRIVATE
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/dictionarydata.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/dtintrv.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/edits.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/emojiprops.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/errorcode.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/filteredbrk.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/filterednormalizer2.cpp
@@ -69,6 +70,7 @@ target_sources(contrib-libs-icu PRIVATE
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/locresdata.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/locutil.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/lsr.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/lstmbe.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/messagepattern.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/normalizer2.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/normalizer2impl.cpp
@@ -322,7 +324,6 @@ target_sources(contrib-libs-icu PRIVATE
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/nfrule.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/nfsubs.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/nortrans.cpp
-  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/nounit.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/nultrans.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_affixutils.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_asformat.cpp
@@ -347,6 +348,8 @@ target_sources(contrib-libs-icu PRIVATE
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_rounding.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_scientific.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_skeletons.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_symbolswrapper.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_usageprefs.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_utils.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numfmt.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numparse_affixes.cpp
@@ -358,11 +361,13 @@ target_sources(contrib-libs-icu PRIVATE
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numparse_scientific.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numparse_symbols.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numparse_validators.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numrange_capi.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numrange_fluent.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numrange_impl.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numsys.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/olsontz.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/persncal.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/pluralranges.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/plurfmt.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/plurrule.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/quant.cpp
@@ -433,6 +438,10 @@ target_sources(contrib-libs-icu PRIVATE
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/umsg.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/unesctrn.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/uni2name.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/units_complexconverter.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/units_converter.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/units_data.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/units_router.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/unum.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/unumsys.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/upluralrules.cpp
@@ -471,5 +480,5 @@ target_sources(contrib-libs-icu PRIVATE
 )
 target_rodata_sources(contrib-libs-icu
   PRIVATE
-  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/icudt67_dat.rodata
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/icudt70_dat.rodata
 )

+ 11 - 2
contrib/libs/icu/CMakeLists.linux-aarch64.txt

@@ -49,6 +49,7 @@ target_sources(contrib-libs-icu PRIVATE
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/dictionarydata.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/dtintrv.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/edits.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/emojiprops.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/errorcode.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/filteredbrk.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/filterednormalizer2.cpp
@@ -70,6 +71,7 @@ target_sources(contrib-libs-icu PRIVATE
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/locresdata.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/locutil.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/lsr.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/lstmbe.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/messagepattern.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/normalizer2.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/normalizer2impl.cpp
@@ -323,7 +325,6 @@ target_sources(contrib-libs-icu PRIVATE
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/nfrule.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/nfsubs.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/nortrans.cpp
-  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/nounit.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/nultrans.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_affixutils.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_asformat.cpp
@@ -348,6 +349,8 @@ target_sources(contrib-libs-icu PRIVATE
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_rounding.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_scientific.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_skeletons.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_symbolswrapper.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_usageprefs.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_utils.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numfmt.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numparse_affixes.cpp
@@ -359,11 +362,13 @@ target_sources(contrib-libs-icu PRIVATE
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numparse_scientific.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numparse_symbols.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numparse_validators.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numrange_capi.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numrange_fluent.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numrange_impl.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numsys.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/olsontz.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/persncal.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/pluralranges.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/plurfmt.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/plurrule.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/quant.cpp
@@ -434,6 +439,10 @@ target_sources(contrib-libs-icu PRIVATE
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/umsg.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/unesctrn.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/uni2name.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/units_complexconverter.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/units_converter.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/units_data.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/units_router.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/unum.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/unumsys.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/upluralrules.cpp
@@ -472,5 +481,5 @@ target_sources(contrib-libs-icu PRIVATE
 )
 target_rodata_sources(contrib-libs-icu
   PRIVATE
-  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/icudt67_dat.rodata
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/icudt70_dat.rodata
 )

+ 11 - 2
contrib/libs/icu/CMakeLists.linux-x86_64.txt

@@ -49,6 +49,7 @@ target_sources(contrib-libs-icu PRIVATE
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/dictionarydata.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/dtintrv.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/edits.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/emojiprops.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/errorcode.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/filteredbrk.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/filterednormalizer2.cpp
@@ -70,6 +71,7 @@ target_sources(contrib-libs-icu PRIVATE
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/locresdata.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/locutil.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/lsr.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/lstmbe.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/messagepattern.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/normalizer2.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/normalizer2impl.cpp
@@ -323,7 +325,6 @@ target_sources(contrib-libs-icu PRIVATE
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/nfrule.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/nfsubs.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/nortrans.cpp
-  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/nounit.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/nultrans.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_affixutils.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_asformat.cpp
@@ -348,6 +349,8 @@ target_sources(contrib-libs-icu PRIVATE
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_rounding.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_scientific.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_skeletons.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_symbolswrapper.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_usageprefs.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_utils.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numfmt.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numparse_affixes.cpp
@@ -359,11 +362,13 @@ target_sources(contrib-libs-icu PRIVATE
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numparse_scientific.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numparse_symbols.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numparse_validators.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numrange_capi.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numrange_fluent.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numrange_impl.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numsys.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/olsontz.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/persncal.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/pluralranges.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/plurfmt.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/plurrule.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/quant.cpp
@@ -434,6 +439,10 @@ target_sources(contrib-libs-icu PRIVATE
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/umsg.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/unesctrn.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/uni2name.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/units_complexconverter.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/units_converter.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/units_data.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/units_router.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/unum.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/unumsys.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/upluralrules.cpp
@@ -472,5 +481,5 @@ target_sources(contrib-libs-icu PRIVATE
 )
 target_rodata_sources(contrib-libs-icu
   PRIVATE
-  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/icudt67_dat.rodata
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/icudt70_dat.rodata
 )

+ 11 - 2
contrib/libs/icu/CMakeLists.windows-x86_64.txt

@@ -50,6 +50,7 @@ target_sources(contrib-libs-icu PRIVATE
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/dictionarydata.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/dtintrv.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/edits.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/emojiprops.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/errorcode.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/filteredbrk.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/filterednormalizer2.cpp
@@ -71,6 +72,7 @@ target_sources(contrib-libs-icu PRIVATE
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/locresdata.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/locutil.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/lsr.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/lstmbe.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/messagepattern.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/normalizer2.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/common/normalizer2impl.cpp
@@ -324,7 +326,6 @@ target_sources(contrib-libs-icu PRIVATE
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/nfrule.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/nfsubs.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/nortrans.cpp
-  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/nounit.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/nultrans.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_affixutils.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_asformat.cpp
@@ -349,6 +350,8 @@ target_sources(contrib-libs-icu PRIVATE
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_rounding.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_scientific.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_skeletons.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_symbolswrapper.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_usageprefs.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/number_utils.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numfmt.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numparse_affixes.cpp
@@ -360,11 +363,13 @@ target_sources(contrib-libs-icu PRIVATE
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numparse_scientific.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numparse_symbols.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numparse_validators.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numrange_capi.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numrange_fluent.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numrange_impl.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/numsys.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/olsontz.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/persncal.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/pluralranges.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/plurfmt.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/plurrule.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/quant.cpp
@@ -435,6 +440,10 @@ target_sources(contrib-libs-icu PRIVATE
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/umsg.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/unesctrn.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/uni2name.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/units_complexconverter.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/units_converter.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/units_data.cpp
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/units_router.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/unum.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/unumsys.cpp
   ${CMAKE_SOURCE_DIR}/contrib/libs/icu/i18n/upluralrules.cpp
@@ -473,5 +482,5 @@ target_sources(contrib-libs-icu PRIVATE
 )
 target_rodata_sources(contrib-libs-icu
   PRIVATE
-  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/icudt67_dat.rodata
+  ${CMAKE_SOURCE_DIR}/contrib/libs/icu/icudt70_dat.rodata
 )

+ 15 - 17
contrib/libs/icu/LICENSE

@@ -281,31 +281,29 @@ property of their respective owners.
 
 3. Lao Word Break Dictionary Data (laodict.txt)
 
- #  Copyright (c) 2013 International Business Machines Corporation
- #  and others. All Rights Reserved.
+ # Copyright (C) 2016 and later: Unicode, Inc. and others.
+ # License & terms of use: http://www.unicode.org/copyright.html
+ # Copyright (c) 2015 International Business Machines Corporation
+ # and others. All Rights Reserved.
  #
- # Project: http://code.google.com/p/lao-dictionary/
- # Dictionary: http://lao-dictionary.googlecode.com/git/Lao-Dictionary.txt
- # License: http://lao-dictionary.googlecode.com/git/Lao-Dictionary-LICENSE.txt
- #              (copied below)
+ # Project: https://github.com/rober42539/lao-dictionary
+ # Dictionary: https://github.com/rober42539/lao-dictionary/laodict.txt
+ # License: https://github.com/rober42539/lao-dictionary/LICENSE.txt
+ #          (copied below)
  #
- #  This file is derived from the above dictionary, with slight
- #  modifications.
+ #	This file is derived from the above dictionary version of Nov 22, 2020
  #  ----------------------------------------------------------------------
  #  Copyright (C) 2013 Brian Eugene Wilson, Robert Martin Campbell.
  #  All rights reserved.
  #
  #  Redistribution and use in source and binary forms, with or without
- #  modification,
- #  are permitted provided that the following conditions are met:
- #
- #
- # Redistributions of source code must retain the above copyright notice, this
- #  list of conditions and the following disclaimer. Redistributions in
- #  binary form must reproduce the above copyright notice, this list of
- #  conditions and the following disclaimer in the documentation and/or
- #  other materials provided with the distribution.
+ #  modification, are permitted provided that the following conditions are met:
  #
+ #  Redistributions of source code must retain the above copyright notice, this
+ #  list of conditions and the following disclaimer. Redistributions in binary
+ #  form must reproduce the above copyright notice, this list of conditions and
+ #  the following disclaimer in the documentation and/or other materials
+ #  provided with the distribution.
  #
  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT

+ 1 - 1
contrib/libs/icu/common/bmpset.h

@@ -101,7 +101,7 @@ private:
      */
     UBool latin1Contains[0x100];
 
-    /* TRUE if contains(U+FFFD). */
+    /* true if contains(U+FFFD). */
     UBool containsFFFD;
 
     /*

+ 29 - 10
contrib/libs/icu/common/brkeng.cpp

@@ -25,6 +25,7 @@
 #include "brkeng.h"
 #include "cmemory.h"
 #include "dictbe.h"
+#include "lstmbe.h"
 #include "charstr.h"
 #include "dictionarydata.h"
 #include "mutex.h"
@@ -77,7 +78,9 @@ int32_t
 UnhandledEngine::findBreaks( UText *text,
                              int32_t /* startPos */,
                              int32_t endPos,
-                             UVector32 &/*foundBreaks*/ ) const {
+                             UVector32 &/*foundBreaks*/,
+                             UErrorCode &status) const {
+    if (U_FAILURE(status)) return 0;
     UChar32 c = utext_current32(text); 
     while((int32_t)utext_getNativeIndex(text) < endPos && fHandled->contains(c)) {
         utext_next32(text);            // TODO:  recast loop to work with post-increment operations.
@@ -132,14 +135,13 @@ ICULanguageBreakFactory::getEngineFor(UChar32 c) {
     static UMutex gBreakEngineMutex;
     Mutex m(&gBreakEngineMutex);
 
-    if (fEngines == NULL) {
-        UStack  *engines = new UStack(_deleteEngine, NULL, status);
-        if (U_FAILURE(status) || engines == NULL) {
+    if (fEngines == nullptr) {
+        LocalPointer<UStack>  engines(new UStack(_deleteEngine, nullptr, status), status);
+        if (U_FAILURE(status) ) {
             // Note: no way to return error code to caller.
-            delete engines;
-            return NULL;
+            return nullptr;
         }
-        fEngines = engines;
+        fEngines = engines.orphan();
     } else {
         int32_t i = fEngines->size();
         while (--i >= 0) {
@@ -152,10 +154,10 @@ ICULanguageBreakFactory::getEngineFor(UChar32 c) {
     
     // We didn't find an engine. Create one.
     lbe = loadEngineFor(c);
-    if (lbe != NULL) {
+    if (lbe != nullptr) {
         fEngines->push((void *)lbe, status);
     }
-    return lbe;
+    return U_SUCCESS(status) ? lbe : nullptr;
 }
 
 const LanguageBreakEngine *
@@ -163,9 +165,26 @@ ICULanguageBreakFactory::loadEngineFor(UChar32 c) {
     UErrorCode status = U_ZERO_ERROR;
     UScriptCode code = uscript_getScript(c, &status);
     if (U_SUCCESS(status)) {
+        const LanguageBreakEngine *engine = nullptr;
+        // Try to use LSTM first
+        const LSTMData *data = CreateLSTMDataForScript(code, status);
+        if (U_SUCCESS(status)) {
+            if (data != nullptr) {
+                engine = CreateLSTMBreakEngine(code, data, status);
+                if (U_SUCCESS(status) && engine != nullptr) {
+                    return engine;
+                }
+                if (engine != nullptr) {
+                    delete engine;
+                    engine = nullptr;
+                } else {
+                    DeleteLSTMData(data);
+                }
+            }
+        }
+        status = U_ZERO_ERROR;  // fallback to dictionary based
         DictionaryMatcher *m = loadDictionaryMatcherFor(code);
         if (m != NULL) {
-            const LanguageBreakEngine *engine = NULL;
             switch(code) {
             case USCRIPT_THAI:
                 engine = new ThaiBreakEngine(m, status);

+ 10 - 6
contrib/libs/icu/common/brkeng.h

@@ -54,7 +54,7 @@ class LanguageBreakEngine : public UMemory {
   * a particular kind of break.</p>
   *
   * @param c A character which begins a run that the engine might handle
-  * @return TRUE if this engine handles the particular character and break
+  * @return true if this engine handles the particular character and break
   * type.
   */
   virtual UBool handles(UChar32 c) const = 0;
@@ -68,12 +68,14 @@ class LanguageBreakEngine : public UMemory {
   * @param startPos The start of the run within the supplied text.
   * @param endPos The end of the run within the supplied text.
   * @param foundBreaks A Vector of int32_t to receive the breaks.
+  * @param status Information on any errors encountered.
   * @return The number of breaks found.
   */
   virtual int32_t findBreaks( UText *text,
                               int32_t startPos,
                               int32_t endPos,
-                              UVector32 &foundBreaks ) const = 0;
+                              UVector32 &foundBreaks,
+                              UErrorCode &status) const = 0;
 
 };
 
@@ -171,10 +173,10 @@ class UnhandledEngine : public LanguageBreakEngine {
   * a particular kind of break.</p>
   *
   * @param c A character which begins a run that the engine might handle
-  * @return TRUE if this engine handles the particular character and break
+  * @return true if this engine handles the particular character and break
   * type.
   */
-  virtual UBool handles(UChar32 c) const;
+  virtual UBool handles(UChar32 c) const override;
 
  /**
   * <p>Find any breaks within a run in the supplied text.</p>
@@ -185,12 +187,14 @@ class UnhandledEngine : public LanguageBreakEngine {
   * @param startPos The start of the run within the supplied text.
   * @param endPos The end of the run within the supplied text.
   * @param foundBreaks An allocated C array of the breaks found, if any
+  * @param status Information on any errors encountered.
   * @return The number of breaks found.
   */
   virtual int32_t findBreaks( UText *text,
                               int32_t startPos,
                               int32_t endPos,
-                              UVector32 &foundBreaks ) const;
+                              UVector32 &foundBreaks,
+                              UErrorCode &status) const override;
 
  /**
   * <p>Tell the engine to handle a particular character and break type.</p>
@@ -243,7 +247,7 @@ class ICULanguageBreakFactory : public LanguageBreakFactory {
   * sought.
   * @return A LanguageBreakEngine with the desired characteristics, or 0.
   */
-  virtual const LanguageBreakEngine *getEngineFor(UChar32 c);
+  virtual const LanguageBreakEngine *getEngineFor(UChar32 c) override;
 
 protected:
  /**

Some files were not shown because too many files changed in this diff