mirror of
https://github.com/rust-lang/rust
synced 2024-09-05 16:57:03 +00:00
![Simon Sapin](/assets/img/avatar_default.png)
`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.
103 lines
991 B
Plaintext
103 lines
991 B
Plaintext
*.a
|
|
*.aux
|
|
*.bc
|
|
*.boot
|
|
*.bz2
|
|
*.cmi
|
|
*.cmo
|
|
*.cmx
|
|
*.cp
|
|
*.cps
|
|
*.d
|
|
*.dSYM
|
|
*.def
|
|
*.diff
|
|
*.dll
|
|
*.dylib
|
|
*.elc
|
|
*.epub
|
|
*.exe
|
|
*.fn
|
|
*.html
|
|
*.kdev4
|
|
*.ky
|
|
*.ll
|
|
*.llvm
|
|
*.log
|
|
*.o
|
|
*.orig
|
|
*.out
|
|
*.patch
|
|
*.pdb
|
|
*.pdf
|
|
*.pg
|
|
*.pot
|
|
*.pyc
|
|
*.rej
|
|
*.rlib
|
|
*.rustc
|
|
*.so
|
|
*.swo
|
|
*.swp
|
|
*.tmp
|
|
*.toc
|
|
*.tp
|
|
*.vr
|
|
*.x86
|
|
*~
|
|
.#*
|
|
.DS_Store
|
|
.cproject
|
|
.hg/
|
|
.hgignore
|
|
.idea
|
|
__pycache__/
|
|
*.py[cod]
|
|
*$py.class
|
|
.project
|
|
.settings/
|
|
.valgrindrc
|
|
.vscode/
|
|
/*-*-*-*/
|
|
/*-*-*/
|
|
/Makefile
|
|
/build
|
|
/config.toml
|
|
/dist/
|
|
/dl/
|
|
/doc
|
|
/inst/
|
|
/llvm/
|
|
/mingw-build/
|
|
/nd/
|
|
/obj/
|
|
/rt/
|
|
/rustllvm/
|
|
/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/
|
|
/tmp/
|
|
TAGS
|
|
TAGS.emacs
|
|
TAGS.vi
|
|
\#*
|
|
\#*\#
|
|
config.mk
|
|
config.stamp
|
|
keywords.md
|
|
lexer.ml
|
|
src/etc/dl
|
|
src/librustc_llvm/llvmdeps.rs
|
|
tmp.*.rs
|
|
version.md
|
|
version.ml
|
|
version.texi
|
|
.cargo
|