8000 Make the tables `static`. · unicode-rs/unicode-xid@568741e · GitHub
[go: up one dir, main page]

Skip to content

Commit 568741e

Browse files
committed
Make the tables static.
Because it reduces the size of `.rlib` and `.rmeta` files by about 40KB. I tested this on Linux with a tiny program that uses `unicode-xid`, which looks like this: ``` use unicode_xid::UnicodeXID; fn main() { println!( "{} {}", UnicodeXID::is_xid_start('\u{aabb}'), UnicodeXID::is_xid_continue('\u{aabb}') ); } ``` Here are the artifact sizes. ``` // debug artifacts w/pub const 249374 libunicode_xid-75c27e72601d21ef.rlib 193130 libunicode_xid-75c27e72601d21ef.rmeta 542 unicode_xid-75c27e72601d21ef.d 3780856 xid_user-75e09ca22117d2ec 177 xid_user-75e09ca22117d2ec.d // debug artifacts w/static 204790 libunicode_xid-75c27e72601d21ef.rlib 147433 libunicode_xid-75c27e72601d21ef.rmeta 542 unicode_xid-75c27e72601d21ef.d 3781592 xid_user-75e09ca22117d2ec 177 xid_user-75e09ca22117d2ec.d // release artifacts w/pub const 209082 libunicode_xid-fc6c941385d516f3.rlib 193860 libunicode_xid-fc6c941385d516f3.rmeta 548 unicode_xid-fc6c941385d516f3.d 3750768 xid_user-8544a1e3e820f27e 181 xid_user-8544a1e3e820f27e.d // release artifacts w/static 163386 libunicode_xid-fc6c941385d516f3.rlib 148164 libunicode_xid-fc6c941385d516f3.rmeta 548 unicode_xid-fc6c941385d516f3.d 3750768 xid_user-8544a1e3e820f27e 181 xid_user-8544a1e3e820f27e.d ``` Effect on compile times is minimal, well within the noise: ``` // debug timings w/pub const Benchmark 1: cargo build Time (mean ± σ): 865.9 ms ± 42.2 ms [User: 773.5 ms, System: 283.9 ms] Range (min … max): 787.7 ms … 933.0 ms 10 runs // debug timings w/static Benchmark 1: cargo build Time (mean ± σ): 873.0 ms ± 34.7 ms [User: 794.4 ms, System: 266.7 ms] Range (min … max): 821.6 ms … 923.0 ms 10 runs // release timings w/pub const Benchmark 1: cargo build --release Time (mean ± σ): 882.2 ms ± 49.4 ms [User: 757.3 ms, System: 274.6 ms] Range (min … max): 793.2 ms … 946.5 ms 10 runs // release timings w/static Benchmark 1: cargo build --release Time (mean ± σ): 883.3 ms ± 63.1 ms [User: 767.9 ms, System: 267.4 ms] Range (min … max): 785.7 ms … 970.9 ms 10 runs ``` Overall, it seems worth doing due to the disk space savings, because `unicode-xid` is such a widely used crates (being used by `proc-macro2` and `syn`).
1 parent 23c1e7d commit 568741e

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/tables.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ fn bsearch_range_table(c: char, r: &[(char, char)]) -> bool {
3737
}
3838

3939
pub mod derived_property {
40-
pub const XID_Continue_table: &[(char, char)] = &[
40+
static XID_Continue_table: &[(char, char)] = &[
4141
('\u{30}', '\u{39}'),
4242
('\u{41}', '\u{5a}'),
4343
('\u{5f}', '\u{5f}'),
@@ -807,7 +807,7 @@ pub mod derived_property {
807807
super::bsearch_range_table(c, XID_Continue_table)
808808
}
809809

810-
pub const XID_Start_table: &[(char, char)] = &[
810+
static XID_Start_table: &[(char, char)] = &[
811811
('\u{41}', '\u{5a}'),
812812
('\u{61}', '\u{7a}'),
813813
('\u{aa}', '\u{aa}'),

0 commit comments

Comments
 (0)
0