Reduce the size of static data in std_unicode::tables.
`BoolTrie` works well for sets of code points spread out through most of Unicode’s range, but is uses a lot of space for sets with few, mostly low, code points. This switches a few of its instances to a similar but simpler trie data structure. ## Before `size_of::<BoolTrie>()` is 1552, which is added to `table.r3.len() * 8 + t.r5.len() + t.r6.len() * 8`: * `Cc_table`: 1632 * `White_Space_table`: 1656 * `Pattern_White_Space_table`: 1640 * Total: 4928 bytes ## After `size_of::<SmallBoolTrie>()` is 32, which is added to `t.r1.len() + t.r2.len() * 8`: * `Cc_table`: 51 * `White_Space_table`: 273 * `Pattern_White_Space_table`: 193 * Total: 517 bytes ## Difference Every Rust program with `std` statically linked should be about 4 KB smaller.
This commit is contained in:
parent
90c7c05ecb
commit
3b208d2dac
3 changed files with 109 additions and 219 deletions
13
.gitignore
vendored
13
.gitignore
vendored
|
@ -73,12 +73,13 @@ __pycache__/
|
|||
/obj/
|
||||
/rt/
|
||||
/rustllvm/
|
||||
/src/libunicode/DerivedCoreProperties.txt
|
||||
/src/libunicode/EastAsianWidth.txt
|
||||
/src/libunicode/HangulSyllableType.txt
|
||||
/src/libunicode/PropList.txt
|
||||
/src/libunicode/Scripts.txt
|
||||
/src/libunicode/UnicodeData.txt
|
||||
/src/libstd_unicode/DerivedCoreProperties.txt
|
||||
/src/libstd_unicode/DerivedNormalizationProps.txt
|
||||
/src/libstd_unicode/PropList.txt
|
||||
/src/libstd_unicode/ReadMe.txt
|
||||
/src/libstd_unicode/Scripts.txt
|
||||
/src/libstd_unicode/SpecialCasing.txt
|
||||
/src/libstd_unicode/UnicodeData.txt
|
||||
/stage[0-9]+/
|
||||
/target
|
||||
/test/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue