File 5422-Adds-codepoint-category-to-lookup-1.patch of Package erlang
From 1fd83f1180c30944935f540ebef3b6201966f362 Mon Sep 17 00:00:00 2001
From: Dan Gudmundsson <dgud@erlang.org>
Date: Tue, 17 May 2022 16:06:15 +0200
Subject: [PATCH 2/3] Adds codepoint category to lookup/1
Category can be useful to user programs, such as in the terminal
handling.
Loaded code increases with these two commits with 21%
Beam size increases from 23%
---
lib/stdlib/test/unicode_util_SUITE.erl | 25 ++
.../unicode_util_SUITE_data/unicode_table.bin | Bin 0 -> 132842 bytes
lib/stdlib/uc_spec/gen_unicode_mod.escript | 266 +++++++++++++++---
3 files changed, 252 insertions(+), 39 deletions(-)
create mode 100644 lib/stdlib/test/unicode_util_SUITE_data/unicode_table.bin
diff --git a/lib/stdlib/test/unicode_util_SUITE.erl b/lib/stdlib/test/unicode_util_SUITE.erl
index e4f3e5f379..ff9a1134d7 100644
--- a/lib/stdlib/test/unicode_util_SUITE.erl
+++ b/lib/stdlib/test/unicode_util_SUITE.erl
@@ -27,6 +27,7 @@
nfd/1, nfc/1, nfkd/1, nfkc/1,
whitespace/1,
get/1,
+ lookup/1,
count/1]).
-export([debug/0, id/1, bin_split/1, uc_loaded_size/0,
@@ -45,6 +46,7 @@ all() ->
nfd, nfc, nfkd, nfkc,
whitespace,
get,
+ lookup,
count
].
@@ -324,6 +326,29 @@ verify_nfkc(Data0, LineNo, _Acc) ->
get(_) ->
add_get_tests.
+lookup(Config) ->
+ DataDir = proplists:get_value(data_dir, Config),
+ {ok, Bin} = file:read_file(filename:join(DataDir, "unicode_table.bin")),
+ 0 = check_category(0, binary_to_term(Bin), 0),
+ ok.
+
+check_category(Id, [{Id, {_, _, _, What}}|Rest], Es) ->
+ case maps:get(category, unicode_util:lookup(Id)) of
+ What -> check_category(Id+1, Rest, Es);
+ _Err ->
+ io:format("~w Exp: ~w Got ~w~n",[Id, What, _Err]), exit(_Err),
+ check_category(Id+1, Rest, Es+1)
+ end;
+check_category(Id, [{Next,_}|_] = Rest, Es) ->
+ case maps:get(category, unicode_util:lookup(Id)) of
+ {other, not_assigned} -> check_category(max(Id+1,Next-1), Rest, Es);
+ Err -> io:format("~w Exp: {other, not_assigned} Got ~w~n",[Id,Err]),
+ check_category(max(Id+1,Next-1), Rest, Es+1)
+ end;
+check_category(_Id, [], Es) ->
+ Es.
+
+
count(Config) ->
Parent = self(),
Exec = fun() ->
diff --git a/lib/stdlib/test/unicode_util_SUITE_data/unicode_table.bin b/lib/stdlib/test/unicode_util_SUITE_data/unicode_table.bin
new file mode 100644
index 0000000000000000000000000000000000000000..65b88fd273ae50fa23b894d90b7a7ed88cbd3817
GIT binary patch
literal 132842
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
literal 0
HcmV?d00001
diff --git a/lib/stdlib/uc_spec/gen_unicode_mod.escript b/lib/stdlib/uc_spec/gen_unicode_mod.escript
index ace4daf788..a677bae2e9 100644
--- a/lib/stdlib/uc_spec/gen_unicode_mod.escript
+++ b/lib/stdlib/uc_spec/gen_unicode_mod.escript
@@ -23,7 +23,7 @@
-mode(compile).
--record(cp, {name, class, dec, comp, cs}).
+-record(cp, {name, class, dec, comp, cs, cat}).
-define(MOD, "unicode_util").
main(_) ->
@@ -80,7 +80,7 @@ file_open(File) ->
parse_unicode_data(Line0, Acc) ->
Line = string:chomp(Line0),
- [CodePoint,Name,_Cat,Class,_BiDi,Decomp,
+ [CodePoint,Name,Cat,Class,_BiDi,Decomp,
_N1,_N2,_N3,_BDMirror,_Uni1,_Iso|Case] = tokens(Line, ";"),
{Dec,Comp} = case to_decomp(Decomp) of
{_, _} = Compabil -> {[], Compabil};
@@ -88,7 +88,7 @@ parse_unicode_data(Line0, Acc) ->
end,
[{hex_to_int(CodePoint),
#cp{name=list_to_binary(Name),class=to_class(Class),
- dec=Dec, comp=Comp, cs=to_case(Case)}}
+ dec=Dec, comp=Comp, cs=to_case(Case), cat=Cat}}
|Acc].
to_class(String) ->
@@ -247,10 +247,10 @@ gen_header(Fd) ->
gen_static(Fd) ->
io:put_chars(Fd, "-spec lookup(char()) -> #{'canon':=[{byte(),char()}], 'ccc':=byte(), "
- "'compat':=[] | {atom(),[{byte(),char()}]}}.\n"),
- io:put_chars(Fd, "lookup(Codepoint) ->\n"
- " {CCC,Can,Comp} = unicode_table(Codepoint),\n"
- " #{ccc=>CCC, canon=>Can, compat=>Comp}.\n\n"),
+ "'compat':=[] | {atom(),[{byte(),char()}]}, 'category':={atom(),atom()}}.\n"),
+ io:put_chars(Fd, "lookup(Codepoint) when is_integer(Codepoint) ->\n"
+ " {CCC,Can,Comp,Cat} = unicode_table(Codepoint),\n"
+ " #{ccc=>CCC, canon=>Can, compat=>Comp, category=>category(Codepoint,Cat)}.\n\n"),
io:put_chars(Fd, "-spec get_case(char()) -> #{'fold':=gc(), 'lower':=gc(), 'title':=gc(), 'upper':=gc()}.\n"),
io:put_chars(Fd, "get_case(Codepoint) ->\n"
@@ -260,7 +260,8 @@ gen_static(Fd) ->
" end.\n\n"),
io:put_chars(Fd, "spec_version() -> {14,0}.\n\n\n"),
- io:put_chars(Fd, "class(Codepoint) -> {CCC,_,_} = unicode_table(Codepoint),\n CCC.\n\n"),
+ io:put_chars(Fd, "class(Codepoint) -> \n"
+ " {CCC,_,_,_} = unicode_table(Codepoint),\n CCC.\n\n"),
io:put_chars(Fd, "-spec uppercase(unicode:chardata()) -> "
"maybe_improper_list(gc(),unicode:chardata()).\n"),
@@ -322,6 +323,10 @@ gen_static(Fd) ->
io:put_chars(Fd, "is_wide([C|Cs]) ->\n"),
io:put_chars(Fd, " is_wide_cp(C) orelse is_wide(Cs);\n"),
io:put_chars(Fd, "is_wide([]) ->\n false.\n\n"),
+
+ io:put_chars(Fd, "category(CP, lookup_category) ->\n"
+ " cat_translate(lookup_category(CP));\n"
+ "category(_, Def) -> cat_translate(Def).\n\n"),
ok.
gen_norm(Fd) ->
@@ -368,8 +373,8 @@ gen_norm(Fd) ->
io:put_chars(Fd,
"decompose(CP) when is_integer(CP), CP < 16#AC00, 16#D7A3 > CP ->\n"
" case unicode_table(CP) of\n"
- " {_,[],_} -> CP;\n"
- " {_,CPs,_} -> canonical_order(CPs)\n"
+ " {_,[],_,_} -> CP;\n"
+ " {_,CPs,_,_} -> canonical_order(CPs)\n"
" end;\n"
"decompose(CP) ->\n"
" canonical_order(decompose_1(CP)).\n"
@@ -386,8 +391,8 @@ gen_norm(Fd) ->
" end;\n"
"decompose_1(CP) when is_integer(CP) ->\n"
" case unicode_table(CP) of\n"
- " {CCC, [],_} -> [{CCC,CP}];\n"
- " {_, CPs, _} -> CPs\n"
+ " {CCC, [],_,_} -> [{CCC,CP}];\n"
+ " {_,CPs,_,_} -> CPs\n"
" end;\n"
"decompose_1([CP|CPs]) ->\n"
" decompose_1(CP) ++ decompose_1(CPs);\n"
@@ -411,9 +416,9 @@ gen_norm(Fd) ->
io:put_chars(Fd,
"decompose_compat(CP) when is_integer(CP), CP < 16#AC00, 16#D7A3 > CP ->\n"
" case unicode_table(CP) of\n"
- " {_, [], []} -> CP;\n"
- " {_, _, {_,CPs}} -> canonical_order(CPs);\n"
- " {_, CPs, _} -> canonical_order(CPs)\n"
+ " {_, [], [], _} -> CP;\n"
+ " {_, _, {_,CPs}, _} -> canonical_order(CPs);\n"
+ " {_, CPs, _, _} -> canonical_order(CPs)\n"
" end;\n"
"decompose_compat(CP) ->\n"
" canonical_order(decompose_compat_1(CP)).\n"
@@ -430,9 +435,9 @@ gen_norm(Fd) ->
" end;\n"
"decompose_compat_1(CP) when is_integer(CP) ->\n"
" case unicode_table(CP) of\n"
- " {CCC, [], []} -> [{CCC,CP}];\n"
- " {_, _, {_,CPs}} -> CPs;\n"
- " {_, CPs, _} -> CPs\n"
+ " {CCC, [], [], _} -> [{CCC,CP}];\n"
+ " {_, _, {_,CPs}, _} -> CPs;\n"
+ " {_, CPs, _, _} -> CPs\n"
" end;\n"
"decompose_compat_1([CP|CPs]) ->\n"
" decompose_compat_1(CP) ++ decompose_compat_1(CPs);\n"
@@ -890,46 +895,229 @@ gen_compose_pairs(Fd, ExclData, Data) ->
ok.
gen_case_table(Fd, Data) ->
- Case = array:foldr(fun(CP, #cp{cs={U0,L0,T0,F0}}, Acc) ->
- U = def_cp(U0,CP),
- L = def_cp(L0,CP),
- T = def_cp(T0,CP),
- F = def_cp(F0,CP),
- case T =:= U andalso F =:= L of
- true ->
- [{CP,{U,L}}|Acc];
- false ->
- [{CP,{U,L,T,F}}|Acc]
- end;
- (_CP, _, Acc) -> Acc
- end, [], Data),
+ HC = fun(CP, #cp{cs=Cs}, Acc) ->
+ case case_data(CP, Cs) of
+ default -> Acc;
+ CaseData -> [{CP,CaseData}|Acc]
+ end
+ end,
+ Case = array:sparse_foldr(HC, [], Data),
[io:format(Fd, "case_table(~w) -> ~w;\n", [CP, Map])|| {CP,Map} <- Case],
io:format(Fd, "case_table(CP) -> {CP, CP}.\n\n",[]),
ok.
+case_data(CP, {U0,L0,T0,F0}) ->
+ U = def_cp(U0,CP),
+ L = def_cp(L0,CP),
+ T = def_cp(T0,CP),
+ F = def_cp(F0,CP),
+ case T =:= U andalso F =:= L of
+ true -> {U,L};
+ false -> {U,L,T,F}
+ end;
+case_data(_, _) ->
+ default.
+
def_cp([], CP) -> CP;
def_cp(CP, _) -> CP.
gen_unicode_table(Fd, Data) ->
- FixCanon = fun(_, #cp{class=CCC, dec=Dec, comp=Comp}) ->
+ FixCanon = fun(_, #cp{class=CCC, dec=Dec, comp=Comp, cat=Cat}) ->
Canon = decompose(Dec,Data),
- #{ccc=>CCC, canonical=>Canon, compat=>Comp}
+ #{ccc=>CCC, canonical=>Canon, compat=>Comp, cat=>Cat}
end,
AofMaps0 = array:sparse_map(FixCanon, Data),
- FixCompat = fun(_, #{ccc:=CCC, canonical:=Canon, compat:=Comp}) ->
+ FixCompat = fun(_, #{ccc:=CCC, canonical:=Canon, compat:=Comp, cat:=Cat}) ->
Compat = decompose_compat(Canon, Comp, AofMaps0),
- {CCC, Canon, Compat}
+ {CCC, Canon, Compat, category(Cat)}
end,
AofMaps1 = array:sparse_map(FixCompat, AofMaps0),
Dict0 = array:sparse_to_orddict(AofMaps1),
- Def = {0, [], []},
- Dict = lists:filter(fun({_, Map}) -> Map =/= Def end, Dict0),
-
- [io:format(Fd, "unicode_table(~w) -> ~w;~n", [CP, Map]) || {CP,Map} <- Dict],
+ Def = {0, [], [], lookup_category},
+ {NonDef, CatTable} = lists:partition(fun({_, {0,[],[],_Cat}}) -> false;
+ (_) -> true
+ end, Dict0),
+
+ %% Export testfile
+ %% Dict1 = lists:map(fun({Id,{CCC, Canon, Compat, Cat}}) ->
+ %% {_, ECat} = lists:keyfind(Cat, 1, category_translate()),
+ %% {Id, {CCC, Canon, Compat, ECat}}
+ %% end, Dict0),
+ %% file:write_file("../test/unicode_util_SUITE_data/unicode_table.bin", term_to_binary(Dict1, [compressed])),
+
+ [io:format(Fd, "unicode_table(~w) -> ~w;~n", [CP, Map]) || {CP,Map} <- NonDef],
io:format(Fd, "unicode_table(_) -> ~w.~n~n",[Def]),
+
+ [io:format(Fd, "cat_translate(~w) -> ~w;~n", [Cat, EC]) || {Cat,EC} <- category_translate()],
+ io:format(Fd, "cat_translate(Cat) -> error({internal_error, Cat}).~n~n",[]),
+ gen_category(Fd, CatTable, Data),
+ ok.
+
+category([C,Sub]) ->
+ list_to_atom([C-$A+$a, Sub]).
+
+category_translate() ->
+ [{lu, {letter, uppercase}}, % Letter, Uppercase
+ {ll, {letter, lowercase}}, % Letter, Lowercase
+ {lt, {letter, titlecase}}, % Letter, Titlecase
+ {mn, {mark, non_spacing}}, % Mark, Non-Spacing
+ {mc, {mark, spacing_combining}}, % Mark, Spacing Combining
+ {me, {mark, enclosing}}, % Mark, Enclosing
+ {nd, {number, decimal}}, % Number, Decimal Digit
+ {nl, {number, letter}}, % Number, Letter
+ {no, {number, other}}, % Number, Other
+ {zs, {separator, space}}, % Separator, Space
+ {zl, {separator, line}}, % Separator, Line
+ {zp, {separator, paragraph}}, % Separator, Paragraph
+ {cc, {other, control}}, % Other, Control
+ {cf, {other, format}}, % Other, Format
+ {cs, {other, surrogate}}, % Other, Surrogate
+ {co, {other, private}}, % Other, Private Use
+ {cn, {other, not_assigned}}, % Other, Not Assigned (no characters in the file have this property)
+ {lm, {letter, modifier}}, % Letter, Modifier
+ {lo, {letter, other}}, % Letter, Other
+ {pc, {punctuation, connector}}, % Punctuation, Connector
+ {pd, {punctuation, dash}}, % Punctuation, Dash
+ {ps, {punctuation, open}}, % Punctuation, Open
+ {pe, {punctuation, close}}, % Punctuation, Close
+ {pi, {punctuation, initial}}, % Punctuation, Initial quote (may behave like Ps or Pe depending on usage)
+ {pf, {punctuation, final}}, % Punctuation, Final quote (may behave like Ps or Pe depending on usage)
+ {po, {punctuation, other}}, % Punctuation, Other
+ {sm, {symbol, math}}, % Symbol, Math
+ {sc, {symbol, currency}}, % Symbol, Currency
+ {sk, {symbol, modifier}}, % Symbol, Modifier
+ {so, {symbol, other}}]. % Symbol, Other
+
+gen_category(Fd, [{CP, {_, _, _, Cat}}|Rest], All) ->
+ gen_category(Fd, Rest, Cat, CP, CP, All, []).
+
+gen_category(Fd, [{CP, {_, _, _, NextCat}}|Rest], Cat, Start, End, All, Acc)
+ when End+1 =:= CP ->
+ IsLetterCat = letter_cat(NextCat, Cat),
+ if NextCat =:= Cat ->
+ gen_category(Fd, Rest, Cat, Start, CP, All, Acc);
+ IsLetterCat ->
+ gen_category(Fd, Rest, letter, Start, CP, All, Acc);
+ Start =:= End ->
+ io:format(Fd, "lookup_category(~w) -> ~w;~n", [Start, Cat]),
+ gen_category(Fd, Rest, NextCat, CP, CP, All, Acc);
+ true ->
+ case Cat of
+ letter ->
+ io:format(Fd, "lookup_category(CP) when ~w =< CP, CP =< ~w-> subcat_letter(CP);~n",
+ [Start, End]),
+ gen_category(Fd, Rest, NextCat, CP, CP, All,
+ lists:reverse(lists:seq(Start, End)) ++ Acc);
+ _ ->
+ io:format(Fd, "lookup_category(CP) when ~w =< CP, CP =< ~w-> ~w;~n", [Start, End, Cat]),
+ gen_category(Fd, Rest, NextCat, CP, CP, All, Acc)
+ end
+ end;
+gen_category(Fd, [{CP, {_, _, _, NewCat}}|Rest]=Cont, Cat, Start, End, All, Acc) ->
+ case array:get(End+1, All) of
+ undefined ->
+ if Start =:= End ->
+ io:format(Fd, "lookup_category(~w) -> ~w;~n", [Start, Cat]),
+ gen_category(Fd, Rest, NewCat, CP, CP, All, Acc);
+ true ->
+ case Cat of
+ letter ->
+ io:format(Fd, "lookup_category(CP) when ~w =< CP, CP =< ~w-> subcat_letter(CP);~n",
+ [Start, End]),
+ gen_category(Fd, Rest, NewCat, CP, CP, All,
+ lists:reverse(lists:seq(Start, End)) ++ Acc);
+ _ ->
+ io:format(Fd, "lookup_category(CP) when ~w =< CP, CP =< ~w -> ~w;~n",
+ [Start, End, Cat]),
+ gen_category(Fd, Rest, NewCat, CP, CP, All, Acc)
+ end
+ end;
+ _ -> %% We can make ranges larger by setting already assigned category
+ gen_category(Fd, Cont, Cat, Start, End+1, All, Acc)
+ end;
+gen_category(Fd, [], Cat, Start, End, All, Acc) ->
+ case Start =:= End of
+ true ->
+ io:format(Fd, "lookup_category(~w) -> ~w;~n", [Start, Cat]);
+ false ->
+ io:format(Fd, "lookup_category(CP) when ~w =< CP, CP =< ~w -> ~w;~n", [Start, End, Cat])
+ end,
+ io:put_chars(Fd, "lookup_category(Cp) -> cn.\n\n"),
+ gen_letter(Fd, lists:reverse(Acc), All),
ok.
+letter_cat(lm, _) ->
+ false;
+letter_cat(_, lm) ->
+ false;
+letter_cat(L1, L2) ->
+ is_letter(L1) andalso (L2 =:= letter orelse is_letter(L2)).
+
+is_letter(LC) ->
+ lists:member(LC, [lu,ll,lt,lo,lm]).
+
+gen_letter(Fd, Letters, All) ->
+ gen_letter(Fd, Letters, All, []).
+gen_letter(Fd, [CP|Rest], All, Acc) ->
+ case array:get(CP, All) of
+ undefined ->
+ gen_letter(Fd, Rest, All, Acc);
+ #cp{cat=Cat0, cs=Cs} ->
+ case {category(Cat0), case_table(CP,case_data(CP, Cs))} of
+ {Sub,Sub} ->
+ gen_letter(Fd, Rest, All, Acc);
+ {lm,_} ->
+ gen_letter(Fd, Rest, All, Acc);
+ {Cat, _Dbg} ->
+ case is_letter(Cat) of
+ true ->
+ gen_letter(Fd, Rest, All, [{CP, Cat}|Acc]);
+ false ->
+ gen_letter(Fd, Rest, All, Acc)
+ end
+ end
+ end;
+gen_letter(Fd, [], _, Acc) ->
+ [{Start, Cat}|SCletters] = lists:reverse(Acc),
+ subcat_letter(Fd, SCletters, Start, Start, Cat),
+ io:put_chars(Fd,
+ "subcat_letter(CP) ->\n"
+ " case case_table(CP) of\n"
+ " {CP, CP} -> lo; %{letter,other};\n"
+ " {CP, _} -> lu; %{letter,uppercase};\n"
+ " {_, CP} -> ll; %{letter,lowercase};\n"
+ " {_, _, CP, _} -> lt; %{letter,titlecase};\n"
+ " {CP, _, _, _} -> lu; %{letter,uppercase};\n"
+ " {_,CP,_,_} -> ll %{letter,lowercase}\n"
+ " end.\n\n").
+
+subcat_letter(Fd, [{CP, Cat}|R], Start, End, Cat) when End+1 =:= CP ->
+ subcat_letter(Fd, R, Start, CP, Cat);
+subcat_letter(Fd, Rest, Start, Start, Cat) ->
+ io:format(Fd, "subcat_letter(~w) -> ~w;\n",[Start,Cat]),
+ case Rest of
+ [] -> ok;
+ [{CP, NewCat}|R] -> subcat_letter(Fd, R, CP, CP, NewCat)
+ end;
+subcat_letter(Fd, Rest, Start, End, Cat) ->
+ io:format(Fd, "subcat_letter(CP) when ~w =< CP, CP =< ~w -> ~w;\n",[Start,End,Cat]),
+ case Rest of
+ [] -> ok;
+ [{CP, NewCat}|R] -> subcat_letter(Fd, R, CP, CP, NewCat)
+ end.
+
+case_table(CP, CaseData) ->
+ case CaseData of
+ {CP, CP} -> lo;
+ {CP, _} -> lu;
+ {_, CP} -> ll;
+ {_, _, CP, _} -> lt;
+ {CP, _, _, _} -> lu;
+ {_,CP,_,_} -> ll;
+ default -> lo
+ end.
+
decompose([], _Data) -> [];
decompose([CP|CPs], Data) when is_integer(CP) ->
case array:get(CP,Data) of
--
2.35.3