wiki:ru/UCDReorganization

Version 2 (modified by vadim.godunko, 7 years ago) ( diff )

--

Реорганизация UCD

Назрел очередной пересмотр структуры данных UCD, поскольку размер таблиц данных превысил способности компилятора на 32-битных платформах.

Первой рассматриваемой возможностью является вынос всех "неизменных" свойств в отдельные таблицы. Это имеет несколько преимуществ:

  • разделение всех таблиц на две независимые группы;
  • сохранение "статического" хранение и доступа к неизменным свойствам;
  • упрощение последующей реализации локалей, которые могут переопределять значения свойств, доспускающих такую возможность.

Первый этап работ - пересмотр всех свойств в UCD на предмет допустимости переопределения и выделение свойств не допускающих переопределения.

Свойства UCD

На основании UAX #44 имеем нижеприведённые таблицы.

Все нормативные свойства собраны в первую таблицу. Все остальные - во вторую. Для нормативных свойств указано где в стандарте определяется, что они не могут быть переопределены реализацией. Для остальных свойств указывается где определяется, что они могут быть переопределены.

ИмяСтатус Использована
Joining_Type N
Joining_Group N
Bidi_Paired_Bracket_Type N
Bidi_Paired_Bracket N
Block N
Composition_Exclusion N +
Simple_Case_Folding N
Case_Folding N
Hangul_Syllable_Type N
Line_Break N +
Name_Alias N
Default_Ignorable_Code_Point N +
Grapheme_Base N +
Grapheme_Extend N +
Grapheme_Link N +
Full_Composition_Exclusion N +
Expands_On_NFC N +
Expands_On_NFD N +
Expands_On_NFKC N +
Expands_On_NFKD N +
FC_NFKC_Closure N
NFD_Quick_Check N +
NFKD_Quick_Check N +
NFC_Quick_Check N +
NFKC_Quick_Check N +
ASCII_Hex_Digit N +
Bidi_Control N +
Deprecated N +
IDS_Binary_Operator N +
IDS_Trinary_Operator N +
Join_Control N +
Logical_Order_Exception N +
Noncharacter_Code_Point N +
Pattern_Syntax N +
Pattern_White_Space N +
Radical N +
Soft_Dotted N +
Unified_Ideograph N +
Variation_Selector N +
White_Space N +
Name N
General_Category N +
Canonical_Combining_Class N +
Bidi_Class N
Decomposition_Type N +
Decomposition_Mapping N
Numeric_Type N
Numeric_Value N
Bidi_Mirrored N
Simple_Uppercase_Mapping N +
Simple_Lowercase_Mapping N +
Simple_Titlecase_Mapping N +
Bidi_Mirroring_Glyph I
Age N/I
East_Asian_Width I +
Indic_Matra_Category P
Indic_Syllabic_Category P
Jamo_Short_Name C
Grapheme_Cluster_Break I +
Sentence_Break I +
Word_Break I +
Script I
Script_Extensions I
Uppercase_Mapping I
Lowercase_Mapping I
Titlecase_Mapping I
Numeric_Type I
Numeric_Value I
Unicode_Radical_Stroke I
Lowercase I +
Uppercase I +
Cased I +
Case_Ignorable I +
Changes_When_Lowercased I +
Changes_When_Uppercased I +
Changes_When_Titlecased I +
Changes_When_Casefolded I +
Changes_When_Casemapped I +
Alphabetic I +
Math I +
ID_Start I +
ID_Continue I +
XID_Start I +
XID_Continue I +
NFKC_Casefold I
Changes_When_NFKC_Casefolded I +
Dash I +
Diacritic I +
Extender I +
Hex_Digit I +
Hyphen I +
Ideographic I +
Other_Alphabetic C +
Other_Default_Ignorable_Code_Point C +
Other_Grapheme_Extend C +
Other_ID_Continue C +
Other_ID_Start C +
Other_Lowercase C +
Other_Math C +
Other_Uppercase C +
Quotation_Mark I +
STerm I +
Terminal_Punctuation I +
Unicode_1_Name I
ISO_Comment I
Note: See TracWiki for help on using the wiki.