Age | Commit message (Collapse) | Author |
|
Bump Unicode to version 15.1.0, regenerate tables
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fix build status badge and update Readme
|
|
|
|
Update to Unicode 15 and Bump version to 0.2.4
|
|
|
|
Preserve static gains
|
|
|
|
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`).
|
|
Fixes #28
|
|
Update to Unicode 14.0.0
|
|
|
|
Declare minimum Rust version in Cargo metadata
|
|
|
|
Convert CI from Travis to GitHub Actions
|
|
|
|
|
|
Publish 0.2.2
|
|
|
|
Add basic benchmark
|
|
This is based on a one-off benchmark from #13
|
|
Add ASCII fast path from rust-lang
|
|
See rust-lang/rust's `src/librustc_lexer/src/lib.rs`
Idea came from #13
|
|
|
|
Update to 13.0.0
|
|
|
|
|
|
|
|
Speed up `bsearch_range_table`.
|
|
The comparison function used for the binary search is sub-optimal,
because it looks for an `Equal` result first, even though that is the
least common result (happening 0 or 1 times per search).
This commit changes the comparison function to look for `Equals` last.
As a result, the number of tests executed within the comparison function
is reduced:
- On a `Greater` result: 2 tests --> 1 test
- On a `Less` result: 3 tests --> 2 tests
- On an `Equals` result (next most common): 2 tests --> 2 tests
|
|
Upgrades the unsafe_code lint from deny to forbid
|
|
|
|
This simply avoids the possibility of overriding the lint rule later in
the process. It also helps for tool usage, such as cargo geiger, where
it will now show the library at a higher safety level.
|
|
Prove the API does not panic for all chars
|
|
|
|
V0.2.0
|
|
|
|
|
|
|
|
|
|
- use new syntax for license
- use default exclude rules
|
|
update to unicode 12.1.0
|
|
|
|
Fix CI build by updating feature associated with 'bench' feature
|