Skip to content

Commit

Permalink
ICU-22922 ICU 77rc download page
Browse files Browse the repository at this point in the history
  • Loading branch information
markusicu committed Feb 21, 2025
1 parent 9f51147 commit 950ddc2
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 64 deletions.
81 changes: 17 additions & 64 deletions docs/download/77.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand All @@ -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
Expand All @@ -64,6 +62,9 @@ Note: There may be additional commits on the [maint/maint-77](https://github.com
([ICU-22941](https://unicode-org.atlassian.net/browse/ICU-22941))
* These tailorings were introduced in ICU 72, but feedback has been negative,
and the UTC declined to adopt these changes.
* Line break: Fixed a bug in the line breaking of obscure sequences
⟨no-break space, combining mark, hyphen, alphabetic character⟩
([ICU-22986](https://unicode-org.atlassian.net/browse/ICU-22986)).
* Updated Indic grapheme clusters to use the latest `Indic_Conjunct_Break` data
([ICU-22956](https://unicode-org.atlassian.net/browse/ICU-22956))
* Time zone data (tzdata) version 2025a (2025-jan).
Expand All @@ -84,65 +85,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)
Expand Down Expand Up @@ -174,7 +127,7 @@ ICU locale data was generated from CLDR data equivalent to:
* <https://github.com/unicode-org/cldr/releases/tag/release-47-alpha2>
* <https://github.com/unicode-org/cldr-staging/releases/tag/release-47-alpha2>

[Maven dependency](https://central.sonatype.com/artifact/com.ibm.icu/icu4j):
TODO: [Maven dependency](https://central.sonatype.com/artifact/com.ibm.icu/icu4j):
```
<dependency>
<groupId>com.ibm.icu</groupId>
Expand Down
11 changes: 11 additions & 0 deletions docs/download/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,17 @@ License & terms of use: http://www.unicode.org/copyright.html

If you want to use ICU (as opposed to developing it), it is recommended that you download an official packaged version of the ICU source code. These versions are tested more thoroughly than day-to-day development builds of the system, and they are packaged in zip and tar files for convenient download. Here are several recent releases of ICU that are available:

## Release Candidate

***2025-02-21: ICU 77rc is now available.***
It updates to [CLDR 47](https://cldr.unicode.org/downloads/cldr-47)
locale data with new locales, and various additions and corrections.

ICU 77 is mostly focused on bug fixes, segmentation conformance, and other refinements.
The technology preview implementations of the CLDR MessageFormat 2.0 specification have been updated to incorporate some, but not yet all, of the CLDR 47 changes. (Java more than C++)

See [ICU 77](77.md).

## Latest Release

***2024-10-24: ICU 76 is now available.***
Expand Down

0 comments on commit 950ddc2

Please sign in to comment.