[corlib] Improve CancellationTokenSource test
[mono.git] / mcs / class / corlib / Mono.Globalization.Unicode / ChangeLog
index 8a2bfb5ed89ff77725f87b24a53ff17a20a355d0..551f367c78af7480ad734e2928b783a7e9d894be 100644 (file)
@@ -1,3 +1,180 @@
+2010-06-04  Damien Diederen  <dd@crosstwine.com>
+
+       * create-category-table.cs: Utility to generate reasonably-packed
+       Unicode tables.
+
+       This program generates (partially) bi-level tables encoding the
+       contents of the Unicode character category database.
+
+       Mono embeds a linear table with category codes for the Unicode BMP
+       (first 65536 codepoints), and lacks information about characters
+       in the astral planes--leading to requests such as bug 480178.
+       Extending the linear table to cover the full codespace is not an
+       ideal solution, as that would expand the embedded "blob" by a
+       factor of 17.
+
+       The new tables generated by this program can be used to support
+       the full range of characters.  An additional level of indirection
+       used for characters outside the U+0000..U+FFFF range enables
+       "page" sharing, so that the total amount of embedded data only
+       grows by 13.5kB.
+
+       Cf. in-file comments for usage instructions.
+
+2010-05-17  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * SimpleCollator.cs : fix extender search index for LastIndexOf().
+         Fixed bug #605094.
+
+2010-04-20  Damien Diederen  <dd@crosstwine.com>
+
+       * Normalization.cs: Really apply canonical reordering "recursively."
+
+       Before this, a sequence of code points with the combining
+       classes (22, 33, 11) would be reordered to (22, 11, 33) instead of
+       the correct (11, 22, 33).  This is because the 'i--' would be
+       directly cancelled by the 'i++' in the for loop.
+
+2010-04-20  Damien Diederen  <dd@crosstwine.com>
+
+       * Normalization.cs: The correct "checkType" argument to
+       Decompose() is NKD or NKFD when normalizing to NKC resp. NKFC.
+
+       * StringTest.cs: More NFC test cases.
+
+2010-04-20  Damien Diederen  <dd@crosstwine.com>
+
+       * Normalization.cs: Implement algorithmic Hangul composition.
+       Calling Normalize(NormalizationForm.FormC) on Korean characters
+       now works properly (bnc#480152).
+
+       * StringTest.cs: Add test cases for Hangul composition.
+
+2010-04-20  Damien Diederen  <dd@crosstwine.com>
+
+       * Normalization.cs: Follow the spec when checking composition pairs.
+
+       Figure 7 in section 1.3 of http://unicode.org/reports/tr15/ shows
+       how when doing composition, one has to examine the successive
+       (starter, candidate) pairs, and combine if a matching canonical
+       decomposition exists.
+
+       The original algorithm was, instead, iterating on canonical
+       decompositions, and, for each one, trying to match a sequence
+       of (starter, non-starter, ...).  This, however, does not produce
+       the same results as it is violating some implicit ordering
+       constraints in the Unicode tables.
+
+       E.g., when composing the following sequence of codepoints, the
+       original algorithm was picking:
+
+         03B7 0313 0300 0345
+         ^^^^      ^^^^
+         1F74 0313      0345
+         ^^^^           ^^^^
+         1FC2 0313
+
+       and would stop at 1FC2 0313 as there is no decomposition matching
+       it.  The new algorithm, which follows the guidance of the pretty
+       figure 7, ends up doing:
+
+         03B7 0313 0300 0345
+         ^^^^ ^^^^
+         1F20      0300 0345
+         ^^^^      ^^^^
+         1F22           0345
+         ^^^^           ^^^^
+         1F92
+
+       resulting in the correct 1F92.
+
+2010-04-19  Damien Diederen  <dd@crosstwine.com>
+
+       * Normalization.cs: Recursively apply the Unicode decomposition mapping.
+
+       According to http://www.unicode.org/reports/tr15/tr15-31.html,
+       section 1.3:
+
+       "To transform a Unicode string into a given Unicode Normalization
+       Form, the first step is to fully decompose the string. [...] Full
+       decomposition involves recursive application of the
+       Decomposition_Mapping values, because in some cases a complex
+       composite character may have a Decomposition_Mapping into a
+       sequence of characters, one of which may also have its own
+       non-trivial Decomposition_Mapping value."
+
+2010-02-18  Gabriel Burt  <gabriel.burt@gmail.com>
+
+       * Normalization.cs: Implement algorithmic Hangul decomposition; Calling
+       string.Normalize on Korean characters now works properly (bnc#480152).
+       This reduces the number of errors in 'make test' from 27k to 4.8k.
+
+       * StringNormalizationTestSource.cs:
+       * Makefile: Use the local, working copy of Normalization etc,so as to make
+       modifying Normalization.cs and then testing your changes with 'make test'
+       possible.  Also, fix building/running of tests, patch by Alexander
+       Kojevnikov.
+
+2009-09-18  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Normalization.cs : Handle blocked characters which are not
+         immediately next to the primary composite character. This fixes
+         some Arabic string sequence normalization.
+       * Makefile : fix test build.
+
+2009-09-17  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Normalization.cs : some renaming for disambiguation.
+       * NormalizationTableUtil.cs : fix some wrong ranges in
+         mapIdxToComposite. This fixes some Arabic normalization (and more).
+       * normalization-notes.txt : added some notes on the implementation.
+
+2008-06-19  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Normalization.cs :
+         - reverted the previous index calculation change. It was correctly
+           implemented and I rather broke it.
+         - fix index calculation on combining.
+         - NFKD was incorrectly directed to combining path. It should not.
+         - Simplify quick check.
+
+2008-06-15  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Normalization.cs : For NFC and NFKC, IsNormalized() was not working
+         enough to check composed characters. It's not possible without
+         the actual composition, so just call Normalize() and compare them.
+         In Normalize() mapping helper didn't pick correct map index since
+         the table for index stores index for "uncompressed" numbers.
+       * NormalizationTableUtil.cs : updated to the latest UCD.
+       * Makefile : to build test, source file must be downloaded too.
+
+2008-11-05  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * ucd.cs : Write type for *_count. Add notice to not edit
+         unicode-data.h directly.
+
+2008-11-04  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * ucd.cs : new code to generate unicode table for eglib.
+
+2008-07-04  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
+
+       * SortKey: Fix parameter names, add attribute, small formatting
+
+2008-06-27 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * CodePointIndexer.cs : Make TableRange a struct instead
+       of a class so we save 2 memory ops per ToIndex loop.
+
+2008-04-02  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * SortKey.cs : check null arguments. Fixed bug #376171.
+
+2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * create-mscompat-collation-table.cs : I wonder how long its build
+         has been broken ...
+
 2007-03-06  Atsushi Enomoto  <atsushi@ximian.com>
 
        * SimpleCollator.cs : disable QuickCheckPossible(), which is