1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-18 19:05:06 +00:00
serenity/Meta/Lagom/Tools/CodeGenerators/LibUnicode
Timothy Flynn 76af9fae63 LibUnicode: Support storing lists in UniqueStorage for code generators
The evolution of UniqueStorage has been as follows:

1. It was created as UniqueStringStorage to ensure only one copy of each
   unique string is generated. Interested parties stored an index into
   a unique string list, rather than the string itself.
   Commits: f9e605397c and 04e6b43f05

2. It became apparent that non-string structures could also be de-
   duplicated to reduce the size of libunicode.so. UniqueStringStorage
   was generalized to UniqueStorage for this purpose.
   Commit: d8e6beb14f

It's now also apparent that there's heavy duplication of lists of
structures. For example, the NumberFormat generator stores 4 lists of
NumberFormat objects. In total, we currently generate nearly 2,000 lists
of these objects, of which 275 are unique.

This change updates UniqueStorage to support storing lists. The only
change is how the storage is generated - we generate each stored list
individually, then an array storing spans of those lists.
2021-12-11 14:17:47 +00:00
..
CMakeLists.txt LibUnicode: Create a nearly empty generator for date-time formatting 2021-11-29 22:48:46 +00:00
GenerateUnicodeData.cpp LibUnicode: Support code point names that apply to ranges of code points 2021-11-30 11:24:02 +01:00
GenerateUnicodeDateTimeFormat.cpp LibUnicode: Parse and generate per-locale day period ranges 2021-12-10 21:27:24 +00:00
GenerateUnicodeLocale.cpp LibUnicode: Do not generate data for "generic" calendars 2021-12-01 16:36:26 +00:00
GenerateUnicodeNumberFormat.cpp LibUnicode: Generate unique number format structures 2021-12-06 15:46:34 +01:00
GeneratorUtil.h LibUnicode: Support storing lists in UniqueStorage for code generators 2021-12-11 14:17:47 +00:00