Frank Tang [Tue, 14 Feb 2023 01:18:34 +0000 (17:18 -0800)]
ICU-22269 Parallelize uconfig* tests
1. Shorten job name uconfig_variation-check-unit-tests to uconfig-unit-tests
2. Shorten job name uconfig_variation-check-all-header-tests to uconfig-header-tests
3. use 11 jobs to run each of them in parallel to reduce the ~1hrs run to about 6-8 mins
Co-authored-by: Markus Scherer <markus.icu@gmail.com>
Frank Tang [Sat, 14 Jan 2023 07:28:06 +0000 (23:28 -0800)]
ICU-21374 Add a CFI build bot for ICU4C
Add the github action bot to build with cfi
Also fix all the known issues which require the change from C style cast to
static_cast inside the i18n and common directory while we are sure about
the object. and use
C++ style dynamic_cast for base-to-derive cast in other code inside i18n
and common and in test code or tool.
Change to use const_cast for casting between const / non-const
Frank Tang [Sat, 4 Feb 2023 06:49:18 +0000 (22:49 -0800)]
ICU-22257 Add "Test ICU4J with only little-endian ICU4C data"
Automate "Test ICU4J with only little-endian ICU4C data" as stated in
https://unicode-org.github.io/icu/processes/release/tasks/integration.html#test-icu4j-with-only-little-endian-icu4c-data
Update .ci-builds/.azure-exhaustive-tests.yml
Co-authored-by: Markus Scherer <markus.icu@gmail.com>
Rich Gillam [Sat, 28 Jan 2023 02:04:35 +0000 (18:04 -0800)]
ICU-22249 Fixed endless loop in ICUResourceBundle when you ask for a locale with a nonstandard parent and that locale
is also the system default locale.
Fredrik Roubert [Fri, 16 Dec 2022 05:59:41 +0000 (14:59 +0900)]
ICU-22193 Make clang-release-build-and-test work with ubuntu-latest.
Contemporary implementations of the C++ standard library also use the
@deprecated annotation in its header files and these then get included
by the preprocessor when preprocessing the ICU header files, like this:
/// @deprecated Non-standard. Use `is_null_pointer` instead.
In order to work as expected, testtagsguards.sh must therefore be
updated to ignore @deprecated annotations unless they're for ICU.
Jungshik Shin [Thu, 25 Aug 2022 08:04:33 +0000 (01:04 -0700)]
ICU-22119 Add lw=phrase for Korean using line_*_phrase_cj
brkitr/ko.txt is created to use line_*_.cj.txt for both
lw=phrase and lw != phrase cases for Korean. This is the simplest
way to fix ICU-22119 taking advantage of the fact that ICU
does not have a Korean dictionary so we don't have to worry about
adding the list of Korean particles to keep them attached to the
preceeding word.
The downside is that it only works when the locale is ko or ja while
it should work in any locale. Another is it makes ICU deviate from
CSS3 by using the same CJ (conditonal Japanese) rules for Korean as
well. However, CSS3 spec is wrong on that point and should be changed.
See https://unicode-org.atlassian.net/browse/CLDR-4931 .
Andy Heninger [Fri, 21 Oct 2022 03:30:24 +0000 (20:30 -0700)]
ICU-21180 RuleBasedBreakIterator, refactor init.
In class RuleBasedBreakIterator, refactor how object initialization is handled
by the various constructors, taking advantage of C++11's ability to directly
initialize data members in the class declaration.
This will simplify ongoing maintenance of the code by eliminating the need
to keep initialization lists synchronized with the class data members.
This is being done now in preparation for additional changes to fix problems
with the handling of memory allocation failures.
Andy Heninger [Thu, 20 Oct 2022 22:12:36 +0000 (15:12 -0700)]
ICU-21180 BreakIterator, change all NULL to nulptr
In the C++ break iterator code, change all use of NULL to nullptr.
This is in preparation for follow-on PRs to improve out-of-memory error handling
in Break Iterators, keeping use of nullptr consistent between old and new
or updated code.
- rewrite to semi modular code
- run the sections first, then get counts
- section counts in ToC, skip if empty
- many link improvements: linkify bugs and commits rather than separate lines
Steven R. Loomis [Tue, 26 Jul 2022 17:19:55 +0000 (12:19 -0500)]
ICU-21755 commit checker: add support for COMMIT_METADATA.md file
- new option, --commit-metadata= with path to metadata file
- new option, --fix-version=41 (used for SKIP sections)
- scaffolding for 'bad commits' list
- new module CommitMetadata with unit tests
- sample file format TEST_COMMIT_METADATA.md
- such commits are skipped
- refactored the commit skipping part (formerly used for cherry pick skips)
- add a report section for skipped commits
- add a cache for JIRA queries (for dev use): --cache-for-dev "/tmp/cldr-commit-cache" - optional
- add an 'excluded commits' section at the bottom
- make sure commit metadata is used to update ticket IDs and messages.