diff --git a/docs/download/77.md b/docs/download/77.md index 34f8d65d5078..b7ad16b48fad 100644 --- a/docs/download/77.md +++ b/docs/download/77.md @@ -16,24 +16,22 @@ License & terms of use: http://www.unicode.org/copyright.html ICU is the [premier library for software internationalization](https://icu.unicode.org/#h.i33fakvpjb7o), used by a [wide array of companies and organizations](https://icu.unicode.org/#h.f9qwubthqabj). -## Not released yet! +## Release Candidate -**ICU 77 is still under development. -Once we have a release candidate, use it for testing, but do not use it in production!** +**Please use this release candidate for testing, but do not use it in production!** ## Release Overview -* TODO -- below is old - ICU 77 updates to [CLDR 47](https://cldr.unicode.org/downloads/cldr-47) -(TODO: blog) +([alpha blog](https://blog.unicode.org/2025/02/unicode-cldr-47-alpha-now-available-for.html)) locale data with new locales, and various additions and corrections. -TODO: Highlights +ICU 77 is mostly focused on bug fixes, segmentation conformance, and other refinements. -The Java technology preview implementation of the CLDR MessageFormat 2.0 specification has been updated to match the -[CLDR 46.1 spec](https://www.unicode.org/reports/tr35/tr35-74/tr35-messageFormat.html). +The Java technology preview implementation of the CLDR MessageFormat 2.0 specification has been updated to incorporate the +[CLDR 46.1 spec](https://www.unicode.org/reports/tr35/tr35-74/tr35-messageFormat.html) +plus most but not all of the CLDR 47 changes. The C++ technology preview implementation of MessageFormat 2.0 is not yet quite up to date with CLDR 46.1. @@ -55,7 +53,7 @@ Note: There may be additional commits on the [maint/maint-77](https://github.com ## Common Changes * [CLDR 47](https://cldr.unicode.org/downloads/cldr-47) - (TODO: blog): + ([alpha blog](https://blog.unicode.org/2025/02/unicode-cldr-47-alpha-now-available-for.html)): * No major data collection for existing locales; focus on bug fixes and structural improvements * New regional variants: English in several European countries, and Cantonese in Macau (`yue_Hant_MO`) * Improved RBNF (number spellout) and transliteration data @@ -84,65 +82,17 @@ Note: There may be additional commits on the [maint/maint-77](https://github.com ## ICU4J Specific Changes * [API Changes since ICU4J 76](https://htmlpreview.github.io/?https://github.com/unicode-org/icu/blob/maint/maint-77/icu4j/APIChangeReport.html) -* The Java technology preview implementation of the CLDR MessageFormat 2.0 specification has been updated to match the - [CLDR 46.1 spec](https://www.unicode.org/reports/tr35/tr35-74/tr35-messageFormat.html). +* The Java technology preview implementation of the CLDR MessageFormat 2.0 specification has been updated to incorporate the + [CLDR 46.1 spec](https://www.unicode.org/reports/tr35/tr35-74/tr35-messageFormat.html) + plus most but not all of the CLDR 47 changes. ## Known Issues -* TODO -- below is old -* One late CLDR 46 bug fix was accidentally omitted from ICU 46: - [CLDR-18002](https://unicode-org.atlassian.net/browse/CLDR-18002) Fix likely subtag inconsistency - ([CLDR PR #4105](https://github.com/unicode-org/cldr/pull/4105)) +* (none yet) ## Migration Issues -* TODO -- below is old - -### C++ Header-Only APIs -ICU 76 is the first version where we add what we call C++ header-only APIs. -These are especially intended for users who rely on only binary stable DLL/library exports of C APIs -(C++ APIs cannot be binary stable). - -_Please test these new APIs and let us know if you find problems — -especially if you find a platform/compiler/options combination -where the call site does end up calling into ICU DLL/library exports._ - -Remember that regular C++ APIs can be hidden by callers defining `U_SHOW_CPLUSPLUS_API=0`. -The new header-only APIs can be separately enabled via `U_SHOW_CPLUSPLUS_HEADER_API=1`. - -([GitHub query for `U_SHOW_CPLUSPLUS_HEADER_API` in public header files](https://github.com/search?q=repo%3Aunicode-org%2Ficu+U_SHOW_CPLUSPLUS_HEADER_API+path%3Aunicode%2F*.h&type=code)) - -These are C++ definitions that are not exported by the ICU DLLs/libraries, -are thus inlined into the calling code, -and which may call ICU C APIs but not into ICU non-header-only C++ APIs. - -The header-only APIs are defined in a nested `header` namespace. -If entry point renaming is turned off (the main namespace is `icu` rather than `icu_76` etc.), -then the new `U_HEADER_ONLY_NAMESPACE` is `icu::header`. - -([Link to the API proposal which introduced this concept](https://docs.google.com/document/d/1xERVccTYsptzjfbjcj6HDtoKVF_mEKmslPsOiQzzaFg/view#heading=h.cf4bmhjgozry)) - -For example, for iterating over the code point ranges in a `USet` (excluding the strings): - -```c++ -U_NAMESPACE_USE -using U_HEADER_NESTED_NAMESPACE::USetRanges; -LocalUSetPointer uset(uset_openPattern(u"[abcçカ🚴]", -1, &errorCode)); -for (auto [start, end] : USetRanges(uset.getAlias())) { - printf("uset.range U+%04lx..U+%04lx\n", (long)start, (long)end); -} -for (auto range : USetRanges(uset.getAlias())) { - for (UChar32 c : range) { - printf("uset.range.c U+%04lx\n", (long)c); - } -} -``` - -(Implementation note: On most platforms, when compiling ICU itself, -the `U_HEADER_ONLY_NAMESPACE` is `icu::internal`, -so that any such symbols that get exported differ from the ones that calling code sees. -On Windows, where DLL exports are explicit, -the namespace is always the same, but these header-only APIs are not marked for export.) +* (none yet) ### Migration Issues Related to CLDR * See [CLDR 47 migration issues](https://cldr.unicode.org/downloads/cldr-47#migration) @@ -174,7 +124,7 @@ ICU locale data was generated from CLDR data equivalent to: * * -[Maven dependency](https://central.sonatype.com/artifact/com.ibm.icu/icu4j): +TODO: [Maven dependency](https://central.sonatype.com/artifact/com.ibm.icu/icu4j): ``` com.ibm.icu