tinymux/utf
Stephen Dennis 8f30f0c964 Backport Unicode performance: combined CCC+NFCQC DFA, collation fast paths
1. Combined CCC+NFCQC DFA: merge two separate DFA lookups into one,
   eliminating a full DFA traversal per non-ASCII codepoint in NFC
   quick-check and normalization. gen_ccc_nfcqc.pl generates the
   combined data; Makefile.in wired for automated regeneration.

2. Collation performance from libutf:
   - Latin CE cache for U+0000..U+017F (single lookup, no DFA)
   - ASCII byte-skip in FastLatinCmp
   - CJK inline implicit weights
   - CollectCEsBounded with overflow fallback to streaming
   - FastLatinCmpCI, FastLatinSortKey, FastASCIISortKeyCI
   - Buffered level comparisons for medium-length strings
   - memcmp equality check at top of cmp functions

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 22:24:00 -06:00
..
.gitignore Add .gitignore for utf/ build artifacts 2026-03-06 08:46:59 -07:00
allkeys.txt Add Layer 4 collation data pipeline (Phase 1) 2026-03-05 10:26:12 -07:00
autoconf.h Use nullptr instead of NULL. 2025-03-30 09:10:10 -06:00
autoconf.h.in Add autoconf 2.68 for utf and convert/omega. 2011-11-04 19:52:27 -07:00
autoconf_win.h Update Unicode support from 10.0 to 16.0 2026-03-05 08:15:46 -07:00
build_win.cmd Implement NFC normalization with DFA-based Unicode property lookups 2026-03-05 09:03:15 -07:00
buildFiles.cpp Fix combining marks and format chars in width tables 2026-03-06 08:46:37 -07:00
cl_8859_1.txt Add iso8859-1 restriction set for names. 2007-12-23 23:25:27 -08:00
cl_8859_2.txt Add cl_8859_2.txt. 2008-03-22 21:47:43 -07:00
cl_ascii.txt Update UTF-8 to ASCII and Latin-1 down conversions. 2008-04-12 09:39:13 -07:00
cl_AttrName.txt Add accented letters from ISO 8859-2 to cl_AttrName.txt, cl_AttrNameInitial.txt, cl_ObjectName.txt, and cl_PlayerName.txt classes. 2008-03-22 21:47:51 -07:00
cl_AttrNameInitial.txt Add accented letters from ISO 8859-2 to cl_AttrName.txt, cl_AttrNameInitial.txt, cl_ObjectName.txt, and cl_PlayerName.txt classes. 2008-03-22 21:47:51 -07:00
cl_ExtPict.txt Add grapheme cluster segmentation for Layer 3 (UAX #29) 2026-03-05 09:40:26 -07:00
cl_hangul.txt Add Hangul set of characters for allowance in object names. 2013-03-04 14:14:12 -07:00
cl_hiragana.txt Add Hiragama, Katakana, and Kanji set of characters for allowance in object names. 2013-09-10 20:54:01 -06:00
cl_kanji.txt Update to Unicode 6.0. 2014-09-15 17:52:29 -06:00
cl_katakana.txt Add Hiragama, Katakana, and Kanji set of characters for allowance in object names. 2013-09-10 20:54:01 -06:00
cl_ObjectName.txt Update to Unicode 6.0. 2014-09-15 17:52:29 -06:00
cl_PlayerName.txt Update to Unicode 6.0. 2014-09-15 17:52:29 -06:00
cl_Printable.txt Accept combining characters and normalize input to NFC 2026-03-05 09:17:48 -07:00
classify.cpp Backport Unicode fixes: pairs DFA, collation NFC tiebreaker, tool updates 2026-03-24 18:44:40 -06:00
CompositionExclusions.txt Add DFA-based NFC composition pair lookup (new mapping type) 2026-03-05 08:40:30 -07:00
configure Update version numbers everywhere to refer to 2.13 instead of 2.12. 2020-08-11 07:38:56 -06:00
configure.ac Update version numbers everywhere to refer to 2.13 instead of 2.12. 2020-08-11 07:38:56 -06:00
ConvertUTF.cpp -- Remove hardtabs and trailing spaces. 2007-05-07 21:17:38 -07:00
ConvertUTF.h - Remove hardtabs and trailing spaces. 2007-05-07 21:17:09 -07:00
DerivedNormalizationProps.txt Add NFC normalization data tables for Layer 2 2026-03-05 08:50:55 -07:00
EastAsianWidth.txt Update Unicode support from 10.0 to 16.0 2026-03-05 08:15:46 -07:00
emoji-data.txt Add grapheme cluster segmentation for Layer 3 (UAX #29) 2026-03-05 09:40:26 -07:00
gen_ccc.pl Add NFC normalization data tables for Layer 2 2026-03-05 08:50:55 -07:00
gen_ccc_nfcqc.pl Backport Unicode performance: combined CCC+NFCQC DFA, collation fast paths 2026-03-24 22:24:00 -06:00
gen_compose.pl Add DFA-based NFC composition pair lookup (new mapping type) 2026-03-05 08:40:30 -07:00
gen_ducet.pl Add UCA runtime comparison function (Phase 3). 2026-03-05 11:07:03 -07:00
gen_extpict.pl Add grapheme cluster segmentation for Layer 3 (UAX #29) 2026-03-05 09:40:26 -07:00
gen_gcb.pl Add grapheme cluster segmentation for Layer 3 (UAX #29) 2026-03-05 09:40:26 -07:00
gen_nfcqc.pl Add NFC normalization data tables for Layer 2 2026-03-05 08:50:55 -07:00
gen_nfd.pl Add NFC normalization data tables for Layer 2 2026-03-05 08:50:55 -07:00
GraphemeBreakProperty.txt Add grapheme cluster segmentation for Layer 3 (UAX #29) 2026-03-05 09:40:26 -07:00
integers.cpp Backport Unicode fixes: pairs DFA, collation NFC tiebreaker, tool updates 2026-03-24 18:44:40 -06:00
Makefile.in Backport Unicode performance: combined CCC+NFCQC DFA, collation fast paths 2026-03-24 22:24:00 -06:00
pairs.cpp Backport Unicode fixes: pairs DFA, collation NFC tiebreaker, tool updates 2026-03-24 18:44:40 -06:00
smutil.cpp Backport Unicode fixes: pairs DFA, collation NFC tiebreaker, tool updates 2026-03-24 18:44:40 -06:00
smutil.h Add DUCET DFA tables for Unicode collation (Phase 2) 2026-03-05 10:37:36 -07:00
strings.cpp Backport Unicode fixes: pairs DFA, collation NFC tiebreaker, tool updates 2026-03-24 18:44:40 -06:00
tr_ccc.txt Add NFC normalization data tables for Layer 2 2026-03-05 08:50:55 -07:00
tr_Color.txt Add 24-bit color support. 2010-08-11 15:50:24 -07:00
tr_compose.txt Add DFA-based NFC composition pair lookup (new mapping type) 2026-03-05 08:40:30 -07:00
tr_ducet.txt Add Layer 4 collation data pipeline (Phase 1) 2026-03-05 10:26:12 -07:00
tr_ducet_contract.txt Add DUCET DFA tables for Unicode collation (Phase 2) 2026-03-05 10:37:36 -07:00
tr_foldmatch.txt Rename tr_foldpunc.txt to tr_foldmatch.txt because folding will not just include punctuation. 2009-12-06 15:44:45 -08:00
tr_gcb.txt Add grapheme cluster segmentation for Layer 3 (UAX #29) 2026-03-05 09:40:26 -07:00
tr_nfcqc.txt Add NFC normalization data tables for Layer 2 2026-03-05 08:50:55 -07:00
tr_nfd.txt Add NFC normalization data tables for Layer 2 2026-03-05 08:50:55 -07:00
tr_utf8_ascii.txt Update to Unicode 6.0. 2014-09-15 17:52:29 -06:00
tr_utf8_cp437.txt Update to Unicode 6.0. 2014-09-15 17:52:29 -06:00
tr_utf8_latin1.txt Update to Unicode 6.0. 2014-09-15 17:52:29 -06:00
tr_utf8_latin2.txt Update to Unicode 6.0. 2014-09-15 17:52:29 -06:00
UnicodeData.txt Update Unicode support from 10.0 to 16.0 2026-03-05 08:15:46 -07:00
UnicodeHan.txt Update to Unicode 6.0. 2014-09-15 17:52:29 -06:00