First created at: 2/17/2009 Last updated at: 2/23/2009 ICU 4.0.1 --------- OVERVIEW International Components for Unicode (ICU) is a multi-platform, multi-locale, and MT-safe I18N API with C and C++ bindings. It comes from the ICU open source community at http://icu-project.org/. Currently, we deliver ICU version 3.2 [1] (which is the default) and ICU version 2.1 [2, 3] as Contracted Consolidation/Project Private interfaces. As the interface classifications imply, they are only for Sun internal product groups. Changing that going forward, this project proposes to deliver the new, ICU version 4.0.1 as the default ICU version and opening up the access to general public. (ICU 4.0.1 is a patch level revision to ICU 4.0 and fully compatible with ICU 4.0.) TECHNICAL DETAILS This project delivers ICU 4.0.1 as the default libraries, headers, and utilities as we did for [1]. Existing ICU 2.1 and ICU 3.2 libraries will still be delivered until the support for each is no longer required by the contracted SWI product groups. (At that time, we will appropriately EOF the older versions of libraries as needed.) For the SWI products that will use ICU 4.0.1 in future, we will forward- port a few selected Sun enhancements such as code conversion name aliases being used and supported in SWI products such as webmail that originated from libNLS which was replaced by ICU 2.1 several years ago. We will try to minimize such "enhancements" as bare minimum going forward since we hope the ICU deliverables to be "pass-through" as much as possible in future. SWI product groups are okay with this project as outlined in this material. Due to the known C++ ABI issues documented in the [3, 9, 10, 11] and also based on the currently available resources, the project team plans to deliver a single set of ICU 4.0.1 libraries that is compatible and linkable with C++ binaries compiled with Sun C++ 5.1 or later only. (In other words, no GNU GCC compiler compatible sets are planned at this point.) This dependency will be documented in the [4]. The existing SUNWicu and SUNWicud packages will be used to deliver the ICU 4.0.1. The man pages will be delivered via Solaris Nevada man gate and the section 8 man pages may change into the section 1M man pages if necessary and/or required by the man page group. INTERFACE STABILITY The project exports the following interfaces. While there are some level of stability described at the ICU open source community web site on the ICU C and C++ interfaces, when we apply Sun standard, they are rather of Volatile in nature and thus we hope to ask for Volatile stability for the interfaces shown at below: Interface Stability Comment --------- --------- ------- /usr/lib/libicudata.so.40.1 Volatile ICU library [4] /usr/lib/libicui18n.so.40.1 Volatile ICU library [4] /usr/lib/libicuio.so.40.1 Volatile ICU library [4] /usr/lib/libicule.so.40.1 Volatile ICU library [4] /usr/lib/libiculx.so.40.1 Volatile ICU library [4] /usr/lib/libicutu.so.40.1 Volatile ICU library [4] /usr/lib/libicuuc.so.40.1 Volatile ICU library [4] /usr/include/layout/*.h Volatile ICU headers /usr/include/unicode/*.h Volatile ICU headers /usr/lib/icu/4.0.1/Makefile.inc Volatile Makefile.inc for ICU apps /usr/bin/derb Volatile ICU utility [5] /usr/bin/genbrk Volatile ICU utility [5] /usr/bin/gencnval Volatile ICU utility [5] /usr/bin/genrb Volatile ICU utility [5] /usr/bin/icu-config Volatile ICU utility [5] /usr/bin/makeconv Volatile ICU utility [5] /usr/bin/pkgdata Volatile ICU utility [5] /usr/bin/uconv Volatile ICU utility [5] /usr/sbin/genccode Volatile ICU utility [5] /usr/sbin/gencmn Volatile ICU utility [5] /usr/sbin/gensprep Volatile ICU utility [5] /usr/sbin/genuca Volatile ICU utility [5] /usr/sbin/icuswap Volatile ICU utility [5] For the ICU libraries, we also ask the same interface stability for the corresponding 64-bit libraries. The project imports the following interfaces: Interface Stability Comment --------- --------- ------- libc Committed C runtime library libCrun Committed C++ runtime library libm Committed Math. library libpthread Committed POSIX thread library RELEASE BINDING The project team asks for Micro/Patch release binding. REFERENCES [1] PSARC/2005/041 ICU 3.2 [2] PSARC/2002/699 ICU utilities [3] PSARC/2002/348 International Components for Unicode (ICU) [4] Section 3LIB library man pages at the materials directory of the case: materials/{ libicudata.3lib, libicui18n.3lib, libicuio.3lib, libicule.3lib, libiculx.3lib, libicuuc.3lib, libicutu.3lib } [5] Utility man pages at the materials directory of the case: { derb.1, genbrk.1, gencnval.1, genrb.1, icu-config.1, makeconv.1, pkgdata.1, uconv.1, genccode.8, gencmn.8, gensprep.8, genuca.8, icuswap.8 } [6] ICU 4.0/4.0.1 User Guide: http://www.icu-project.org/userguide Available also at the materials directory of the case: materials/icu-4_0-userguide.zip [7] ICU 4.0.1 API Reference: http://www.icu-project.org/apiref/icu4c/ Available also at the materials directory of the case: materials/icu4c-4_0_1-docs.zip [8] OSR #2736 International Components for Unicode (ICU) v. 3.2 and later [9] LSARC/1993/571 LSARC Guidelines for C++ [10] LSARC/1997/150 C++ 5.0 [11] LSARC/2000/211 C++ 5.1 [12] PSARC/2008/549 Apache Standard C++ Library [13] LSARC/2008/776 GNU Developer Collection [14] LSARC/2009/017 Sun Studio C/C++/dbx Collection END_OF_MEMO.