ICU-2686 Update os/400, HP-UX compiler issue and other minor updates.
X-SVN-Rev: 12271
This commit is contained in:
parent
2d88094649
commit
2074a38f25
@ -78,11 +78,10 @@
|
||||
<li><a href="#ImportantNotesCPlusPlus">Using ICU in a Multithreaded
|
||||
Environment</a></li>
|
||||
|
||||
<li><a href="#MakeICUSmaller">How to Make ICU Smaller</a></li>
|
||||
|
||||
<li><a href="#CharStrings">char * strings in ICU</a></li>
|
||||
|
||||
<li><a href="#ImportantNotesDefaultCP">Using the Default Codepage</a></li>
|
||||
<li><a href="#ImportantNotesDefaultCP">Using the Default
|
||||
Codepage</a></li>
|
||||
|
||||
<li><a href="#ImportantNotesWindows">Windows Platform</a></li>
|
||||
|
||||
@ -234,54 +233,54 @@
|
||||
|
||||
<h3>ICU code library size</h3>
|
||||
|
||||
<p>ICU code libraries can be made smaller by removing functionality. See <a
|
||||
href="#MakeICUSmaller">How to Make ICU Smaller</a>.</p>
|
||||
<p>ICU code libraries can be made smaller by removing functionality. See
|
||||
the <a href=
|
||||
"http://oss.software.ibm.com/icu/userguide/packaging.html">Packaging
|
||||
ICU</a> section of the User's Guide.</p>
|
||||
|
||||
<h3>Support for Unicode 4.0</h3>
|
||||
|
||||
<p>Unicode properties and algorithms have been upgraded to <a href=
|
||||
"http://www.unicode.org/versions/Unicode4.0.0/">
|
||||
Unicode 4.0</a>, which includes the addition of 1226 new encoded
|
||||
characters. The UCA (<a href="http://www.unicode.org/reports/tr10/">Unicode
|
||||
Collation Algorithm</a>) table
|
||||
is still at version 3.1.1, with Unicode 4-based canonical closure,
|
||||
because UCA 4 is not available yet.
|
||||
All Unicode properties (except for those in Unihan.txt) are now <a href=
|
||||
"http://oss.software.ibm.com/icu/userguide/properties.html">
|
||||
available via direct APIs, and most via UnicodeSet</a>.</p>
|
||||
"http://www.unicode.org/versions/Unicode4.0.0/">Unicode 4.0</a>, which
|
||||
includes the addition of 1226 new encoded characters. The UCA (<a href=
|
||||
"http://www.unicode.org/reports/tr10/">Unicode Collation Algorithm</a>)
|
||||
table is still at version 3.1.1, with Unicode 4-based canonical closure,
|
||||
because UCA 4 is not available yet. All Unicode properties (except for
|
||||
those in Unihan.txt) are now <a href=
|
||||
"http://oss.software.ibm.com/icu/userguide/properties.html">available via
|
||||
direct APIs, and most via UnicodeSet</a>.</p>
|
||||
|
||||
<p>Note that a Unicode update includes changes in algorithms.
|
||||
For example, the default iterator for finding titlecasing positions has
|
||||
changed from the titlecasing iterator to the word break iterator
|
||||
according to the Unicode Standard.</p>
|
||||
<p>Note that a Unicode update includes changes in algorithms. For example,
|
||||
the default iterator for finding titlecasing positions has changed from the
|
||||
titlecasing iterator to the word break iterator according to the Unicode
|
||||
Standard.</p>
|
||||
|
||||
<p><a href="http://www.unicode.org/reports/tr15/#Corrigenda">Unicode 4 fixes 5 normalization bugs</a>,
|
||||
which changes the decomposition and canonical equivalence of 5 characters.
|
||||
ICU 2.6 normalization uses Unicode 4 data, therefore contains these bug fixes.</p>
|
||||
<p><a href="http://www.unicode.org/reports/tr15/#Corrigenda">Unicode 4
|
||||
fixes 5 normalization bugs</a>, which changes the decomposition and
|
||||
canonical equivalence of 5 characters. ICU 2.6 normalization uses Unicode 4
|
||||
data, therefore it contains these bug fixes.</p>
|
||||
|
||||
<h3>Currency formatting</h3>
|
||||
|
||||
<p>Formatting of currency values has been improved in ICU 2.6 by allowing
|
||||
the specification of any currency with any language-specific formatter.
|
||||
The currency itself can be chosen independently of the display language,
|
||||
but an appropriately localized string will be displayed for the currency
|
||||
symbol. The display symbol data is not fully fleshed out.
|
||||
See the API references for ucurr.h and NumberFormat.
|
||||
<code>icu/source/samples/numfmt/</code> is updated to illustrate this
|
||||
feature.</p>
|
||||
the specification of any currency with any language-specific formatter. The
|
||||
currency itself can be chosen independently of the display language, but an
|
||||
appropriately localized string will be displayed for the currency symbol.
|
||||
The display symbol data is not fully fleshed out. See the API references
|
||||
for ucurr.h and NumberFormat. <code>icu/source/samples/numfmt/</code> is
|
||||
updated to illustrate this feature.</p>
|
||||
|
||||
<h3>XML resource bundles</h3>
|
||||
|
||||
<p>The ICU team had developed a custom XML format that matched
|
||||
the capabilities of the binary data structure of ICU .res files.
|
||||
This format was not known to be used and not optimal for
|
||||
translation/localization.
|
||||
ICU 2.6 supports the standard XLIFF format for product localization by
|
||||
providing tools to convert between .xlf and ICU .txt files.
|
||||
See the User Guide
|
||||
<a href="http://oss.software.ibm.com/icu/userguide/localizing.html">Localizing with ICU</a>
|
||||
chapter for details.
|
||||
The previous, ICU-specific XML format has been withdrawn.</p>
|
||||
<p>The ICU team had developed a custom XML format that matched the
|
||||
capabilities of the binary data structure of ICU .res files. This format
|
||||
was not known to be used and not optimal for translation/localization. ICU
|
||||
2.6 supports the standard XLIFF format for product localization by
|
||||
providing tools to convert between .xlf and ICU .txt files. See the User
|
||||
Guide <a href=
|
||||
"http://oss.software.ibm.com/icu/userguide/localizing.html">Localizing with
|
||||
ICU</a> chapter for details. The previous, ICU-specific XML format has been
|
||||
withdrawn.</p>
|
||||
|
||||
<h3>Flexible data loading</h3>
|
||||
|
||||
@ -1012,8 +1011,9 @@
|
||||
CC,CXX, CFLAGS and CXXFLAGS environment variables, and type
|
||||
<tt>"./configure"</tt>. Some of the more frequently used options to
|
||||
configure are --disable-64bit-libs to create 32-bit libraries, and --srcdir
|
||||
to do out of source builds (build the libraries in the current
|
||||
location).</p>
|
||||
to do out of source builds (build the libraries in the current location).
|
||||
HP-UX user's, please see this <a href="#ImportantNotesHPUX">note</a>
|
||||
regarding multithreaded build issues with newer compilers.</p>
|
||||
|
||||
<p><a name="HowToTestWithoutGmake"><strong>Running The Tests From The
|
||||
Command Line NOTE:</strong></a> You may have to set certain variables if
|
||||
@ -1124,8 +1124,8 @@
|
||||
linker to run at the older level, thereby producing the desired
|
||||
binaries.</p>
|
||||
|
||||
<p>To set the compiler and LE environment to OS/390 2.10,
|
||||
specify the following:</p>
|
||||
<p>To set the compiler and LE environment to OS/390 2.10, specify the
|
||||
following:</p>
|
||||
<pre>
|
||||
<samp>./runConfigureICU OS390V2R10</samp>
|
||||
</pre>
|
||||
@ -1227,7 +1227,7 @@ Data set name type : PDS</samp>
|
||||
<h3><a name="HowToBuildOS400" href="#HowToBuildOS400">How To Build And
|
||||
Install On OS/400 (iSeries)</a></h3>
|
||||
|
||||
<p>ICU Reference Release 2.4 contains partial support for the iSeries
|
||||
<p>ICU Reference Release 2.6 contains partial support for the iSeries
|
||||
platform. After building ICU and running the tests, you may notice that
|
||||
some of the formatting tests fail. The formating failures can be ignored
|
||||
for now. These failures are expected to be resolved in a future release of
|
||||
@ -1339,9 +1339,9 @@ system CRTLIB "LIB(<i>datalibraryname</i>)"
|
||||
gmake OUTPUTDIR=<i>datalibraryname</i>
|
||||
system CRTSRVPGM "SRVPGM(<i>libraryname</i>/LIBICUDATA)" "MODULE(<i>datalibraryname</i>/*ALL)"
|
||||
"EXPORT(*ALL)" "TEXT('ICU 2.6 DATA')" "OPTION(*DUPPROC *DUPVAR)"
|
||||
ln -fs /qsys.lib/<i>libraryname</i>.lib/libicudata.srvpgm out/libicudata.o
|
||||
ln -fs /qsys.lib/<i>libraryname</i>.lib/libicudata.srvpgm out/libicudata.so
|
||||
cd ..
|
||||
del common/libicuuc.o
|
||||
del common/libicuuc.so
|
||||
</samp>
|
||||
</pre>
|
||||
</li>
|
||||
@ -1458,6 +1458,17 @@ del common/libicuuc.o
|
||||
<td>Contains an optional engine for doing font layout.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Layout Extensions Engine</td>
|
||||
|
||||
<td>iculx<i>XY</i>.dll</td>
|
||||
|
||||
<td>libiculx.so.<i>XY</i>.<i>Z</i></td>
|
||||
|
||||
<td>Contains an optional engine for doing font layout that uses parts
|
||||
of ICU.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Unicode stdio Library</td>
|
||||
|
||||
@ -1514,104 +1525,276 @@ del common/libicuuc.o
|
||||
If you do not have a multithreaded application, you do not need to worry
|
||||
about the global mutex.</p>
|
||||
|
||||
<h3><a name="MakeICUSmaller" href="#MakeICUSmaller">How to Make ICU
|
||||
Smaller</a></h3>
|
||||
<h4><a name="ImportantNotesHPUX" href="#ImportantNotesHPUX">Using ICU in a
|
||||
Multithreaded Environment on HP-UX</a></h4>
|
||||
|
||||
<p>For some environments, ICU "is too large". There are two ways to remove
|
||||
parts and make it smaller: Remove some of its library code modules from the
|
||||
build (reducing functionality), or remove some of its data (possibly
|
||||
reducing only codepage/locale/etc. coverage without sacrificing overall
|
||||
functionality). For details about reducing the data size see the <a href=
|
||||
"http://oss.software.ibm.com/icu/userguide/">User Guide</a> "ICU Data"
|
||||
chapter.</p>
|
||||
<p>If you are building ICU with a newer aCC compiler, or you are planning
|
||||
on using any RogueWave libraries, you will need to set special flags before
|
||||
building ICU. These flags are needed in order to make ICU thread safe and
|
||||
to allow iostream to work properly. More information on these flags can be
|
||||
found <a href=
|
||||
"http://docs.hp.com/hpux/onlinedocs/dev/aCC/a_03_30/options.htm#option-mt">here</a>
|
||||
and <a href=
|
||||
"http://docs.hp.com/hpux/onlinedocs/dev/aCC/a_03_30/options.htm#optioncap-AA">
|
||||
here</a>.</p>
|
||||
<pre>
|
||||
<samp>CFLAGS="-mt" CXXFLAGS="-mt -AA" LDFLAGS="-mt" ./runConfigureICU HP-UX11ACC</samp>
|
||||
</pre>
|
||||
|
||||
<p>The header file <code>source/common/unicode/uconfig.h</code> contains
|
||||
source-code-level "switches" corresponding to <code>#if</code> directives
|
||||
in the ICU source code. Setting one of the <code>UCONFIG_NO_...</code>
|
||||
switches to 1 (by setting <code>CFLAGS/CPPFLAGS</code> or adding a
|
||||
<code>#define</code> at the beginning of <code>uconfig.h</code>) turns off
|
||||
the code associated with one of the ICU service modules. Setting one of the
|
||||
<code>UCONFIG_ONLY_...</code> switches to 1 turns off all modules that are
|
||||
not essential for the functioning of the associated "only" service. For the
|
||||
current set of available switches see <code>uconfig.h</code> itself.</p>
|
||||
|
||||
<p>When a source code module is turned off, then the data-building
|
||||
makefiles should be modified to not generate the data files that are used
|
||||
with that module. Some of the data-generating genxyz tools rely on the
|
||||
module itself to build its data; they will generate dummy data files to
|
||||
satisfy the dependencies of the unmodified makefiles (to make these
|
||||
switches easily testable). Other data files for which the tools do not rely
|
||||
on the related library modules (e.g., mapping tables [<code>.cnv</code>]
|
||||
and transliterator files [<code>.res</code>, from
|
||||
<code>source/data/translit/</code>]) continue to be built unless the data
|
||||
makefiles are modified. For further details on data building see the <a
|
||||
href="http://oss.software.ibm.com/icu/userguide/">User Guide</a> "ICU Data"
|
||||
chapter.</p>
|
||||
|
||||
<h3><a name="CharStrings" href="#CharStrings">char * strings in ICU</a></h3>
|
||||
<h3><a name="CharStrings" href="#CharStrings">char * strings in
|
||||
ICU</a></h3>
|
||||
|
||||
<p>The C/C++ languages do not provide a portable way to specify Unicode
|
||||
code point or string literals other than with arrays of numeric constants.
|
||||
For convenience, ICU4C tends to use char * strings in places where only
|
||||
"invariant characters" are used — a portable subset of the 7-bit ASCII
|
||||
repertoire — so that locale IDs, charset names, resource bundle item keys
|
||||
and similar can be easily specified as string literals in the source code.
|
||||
The same types of strings are also stored as "invariant character" char *
|
||||
strings in the ICU data files.</p>
|
||||
"invariant characters" are used — a portable subset of the 7-bit
|
||||
ASCII repertoire — so that locale IDs, charset names, resource bundle
|
||||
item keys and similar can be easily specified as string literals in the
|
||||
source code. The same types of strings are also stored as "invariant
|
||||
character" char * strings in the ICU data files.</p>
|
||||
|
||||
<p>ICU has hardcoded mapping tables in <code>source/common/putil.c</code>
|
||||
to convert invariant characters to and from Unicode without using a full
|
||||
ICU converter.
|
||||
These tables must match the encoding of string literals in the ICU code
|
||||
as well as in the ICU data files.</p>
|
||||
ICU converter. These tables must match the encoding of string literals in
|
||||
the ICU code as well as in the ICU data files.</p>
|
||||
|
||||
<p><strong>Important: </strong>ICU assumes that at least the
|
||||
invariant characters always have the same codes as is common on platforms
|
||||
with the same charset family (ASCII vs. EBCDIC).
|
||||
<em>ICU has not been tested on platforms where this is not the case.</em></p>
|
||||
<p><strong>Important:</strong> ICU assumes that at least the invariant
|
||||
characters always have the same codes as is common on platforms with the
|
||||
same charset family (ASCII vs. EBCDIC). <em>ICU has not been tested on
|
||||
platforms where this is not the case.</em></p>
|
||||
|
||||
<p>Some usage of char * strings in ICU assumes the system charset
|
||||
instead of invariant characters;
|
||||
such strings are only handled with the default converter.
|
||||
See the following section.
|
||||
(The system charset is usually a superset of the invariant characters.)</p>
|
||||
<p>Some usage of char * strings in ICU assumes the system charset instead
|
||||
of invariant characters; such strings are only handled with the default
|
||||
converter. See the following section. (The system charset is usually a
|
||||
superset of the invariant characters.)</p>
|
||||
|
||||
<p>The following are the ASCII and EBCDIC code values for all of the
|
||||
invariant characters (see also unicode/utypes.h):</p>
|
||||
|
||||
<table border="1">
|
||||
<tr><th>Character(s)</th><th>ASCII</th><th>EBCDIC</th></tr>
|
||||
<tr><td>a..i</td><td>61..69</td><td>81..89</td></tr>
|
||||
<tr><td>j..r</td><td>6A..72</td><td>91..99</td></tr>
|
||||
<tr><td>s..z</td><td>73..7A</td><td>A2..A9</td></tr>
|
||||
<tr>
|
||||
<th>Character(s)</th>
|
||||
|
||||
<tr><td>A..I</td><td>41..49</td><td>C1..C9</td></tr>
|
||||
<tr><td>J..R</td><td>4A..52</td><td>D1..D9</td></tr>
|
||||
<tr><td>S..Z</td><td>53..5A</td><td>E2..E9</td></tr>
|
||||
<th>ASCII</th>
|
||||
|
||||
<tr><td>0..9</td><td>30..39</td><td>F0..F9</td></tr>
|
||||
<th>EBCDIC</th>
|
||||
</tr>
|
||||
|
||||
<tr><td>(space)</td><td>20</td><td>40</td></tr>
|
||||
<tr>
|
||||
<td>a..i</td>
|
||||
|
||||
<tr><td>"</td><td>22</td><td>7F</td></tr>
|
||||
<tr><td>%</td><td>25</td><td>6C</td></tr>
|
||||
<tr><td>&</td><td>26</td><td>50</td></tr>
|
||||
<tr><td>'</td><td>27</td><td>7D</td></tr>
|
||||
<tr><td>(</td><td>28</td><td>4D</td></tr>
|
||||
<tr><td>)</td><td>29</td><td>5D</td></tr>
|
||||
<tr><td>*</td><td>2A</td><td>5C</td></tr>
|
||||
<tr><td>+</td><td>2B</td><td>4E</td></tr>
|
||||
<tr><td>,</td><td>2C</td><td>6B</td></tr>
|
||||
<tr><td>-</td><td>2D</td><td>60</td></tr>
|
||||
<tr><td>.</td><td>2E</td><td>4B</td></tr>
|
||||
<tr><td>/</td><td>2F</td><td>61</td></tr>
|
||||
<tr><td>:</td><td>3A</td><td>7A</td></tr>
|
||||
<tr><td>;</td><td>3B</td><td>5E</td></tr>
|
||||
<tr><td><</td><td>3C</td><td>4C</td></tr>
|
||||
<tr><td>=</td><td>3D</td><td>7E</td></tr>
|
||||
<tr><td>></td><td>3E</td><td>6E</td></tr>
|
||||
<tr><td>?</td><td>3F</td><td>6F</td></tr>
|
||||
<tr><td>_</td><td>5F</td><td>6D</td></tr>
|
||||
<td>61..69</td>
|
||||
|
||||
<td>81..89</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>j..r</td>
|
||||
|
||||
<td>6A..72</td>
|
||||
|
||||
<td>91..99</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>s..z</td>
|
||||
|
||||
<td>73..7A</td>
|
||||
|
||||
<td>A2..A9</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>A..I</td>
|
||||
|
||||
<td>41..49</td>
|
||||
|
||||
<td>C1..C9</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>J..R</td>
|
||||
|
||||
<td>4A..52</td>
|
||||
|
||||
<td>D1..D9</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>S..Z</td>
|
||||
|
||||
<td>53..5A</td>
|
||||
|
||||
<td>E2..E9</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>0..9</td>
|
||||
|
||||
<td>30..39</td>
|
||||
|
||||
<td>F0..F9</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>(space)</td>
|
||||
|
||||
<td>20</td>
|
||||
|
||||
<td>40</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>"</td>
|
||||
|
||||
<td>22</td>
|
||||
|
||||
<td>7F</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>%</td>
|
||||
|
||||
<td>25</td>
|
||||
|
||||
<td>6C</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>&</td>
|
||||
|
||||
<td>26</td>
|
||||
|
||||
<td>50</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>'</td>
|
||||
|
||||
<td>27</td>
|
||||
|
||||
<td>7D</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>(</td>
|
||||
|
||||
<td>28</td>
|
||||
|
||||
<td>4D</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>)</td>
|
||||
|
||||
<td>29</td>
|
||||
|
||||
<td>5D</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>*</td>
|
||||
|
||||
<td>2A</td>
|
||||
|
||||
<td>5C</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>+</td>
|
||||
|
||||
<td>2B</td>
|
||||
|
||||
<td>4E</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>,</td>
|
||||
|
||||
<td>2C</td>
|
||||
|
||||
<td>6B</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>-</td>
|
||||
|
||||
<td>2D</td>
|
||||
|
||||
<td>60</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>.</td>
|
||||
|
||||
<td>2E</td>
|
||||
|
||||
<td>4B</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>/</td>
|
||||
|
||||
<td>2F</td>
|
||||
|
||||
<td>61</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>:</td>
|
||||
|
||||
<td>3A</td>
|
||||
|
||||
<td>7A</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>;</td>
|
||||
|
||||
<td>3B</td>
|
||||
|
||||
<td>5E</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><</td>
|
||||
|
||||
<td>3C</td>
|
||||
|
||||
<td>4C</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>=</td>
|
||||
|
||||
<td>3D</td>
|
||||
|
||||
<td>7E</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>></td>
|
||||
|
||||
<td>3E</td>
|
||||
|
||||
<td>6E</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>?</td>
|
||||
|
||||
<td>3F</td>
|
||||
|
||||
<td>6F</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>_</td>
|
||||
|
||||
<td>5F</td>
|
||||
|
||||
<td>6D</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3><a name="ImportantNotesDefaultCP" href="#ImportantNotesDefaultCP">Using
|
||||
|
Loading…
Reference in New Issue
Block a user