ladybird/Userland/Libraries/LibUnicode
Timothy Flynn 456211932f LibUnicode: Perform code point case conversion lookups in constant time
Similar to commit 0652cc4, we now generate 2-stage lookup tables for
case conversion information. Only about 1500 code points are actually
cased. This means that case information is rather highly compressible,
as the blocks we break the code points into will generally all have no
casing information at all.

In total, this change:

    * Does not change the size of libunicode.so (which is nice because,
      generally, the 2-stage lookup tables are expected to trade a bit
      of size for performance).

    * Reduces the runtime of the new benchmark test case added here from
      1.383s to 1.127s (about an 18.5% improvement).
2023-07-28 05:28:50 +02:00
..
CharacterTypes.cpp LibUnicode: Stop generating Block property data 2023-07-26 08:36:20 +02:00
CharacterTypes.h LibUnicode: Move the CodePointRangeComparator struct to a public header 2023-07-26 08:36:20 +02:00
CMakeLists.txt LibUnicode+LibJS: Move text segmentation algorithms to their own files 2023-02-15 12:36:47 +01:00
CurrencyCode.cpp LibUnicode+LibJS: Move Unicode::get_available_currencies() to Locale.h 2022-09-05 14:37:16 -04:00
CurrencyCode.h LibUnicode+LibJS: Move Unicode::get_available_currencies() to Locale.h 2022-09-05 14:37:16 -04:00
Emoji.cpp LibUnicode: Detect ZWJ sequences when filtering by emoji presentation 2023-03-05 20:21:57 +01:00
Emoji.h LibUnicode: Allow ignoring text presentation emoji in sequence detection 2023-02-28 13:22:58 +00:00
Forward.h LibUnicode: Add decomposition mappings and Unicode normalization 2022-10-06 08:24:39 -04:00
Normalize.cpp LibUnicode: Return a String from Unicode normalization 2023-01-15 01:00:20 +00:00
Normalize.h LibUnicode: Return a String from Unicode normalization 2023-01-15 01:00:20 +00:00
Segmentation.cpp LibUnicode: Skip over emoji sequences in grapheme boundary segmentation 2023-02-25 22:23:39 +01:00
Segmentation.h LibUnicode: Remove non-iterative text segmentation algorithms 2023-02-16 11:18:53 +01:00
String.cpp AK+LibUnicode: Implement String::equals_ignoring_case without allocating 2023-03-08 18:57:53 +00:00
UnicodeUtils.cpp LibUnicode: Perform code point case conversion lookups in constant time 2023-07-28 05:28:50 +02:00
UnicodeUtils.h AK+LibUnicode: Implement String::equals_ignoring_case without allocating 2023-03-08 18:57:53 +00:00