about summary refs log tree commit diff
path: root/src/libstd/sys/unix/stack_overflow.rs
diff options
context:
space:
mode:
authorMark Rousskov <mark.simulacrum@gmail.com>2020-03-25 21:00:01 -0400
committerMark Rousskov <mark.simulacrum@gmail.com>2020-03-27 19:02:23 -0400
commit9c1ceece20e14e2a746c382b639f9288746e493c (patch)
tree4bfb5619d52987854df09d98fdab205947cbcf37 /src/libstd/sys/unix/stack_overflow.rs
parent33b9e6f5cff73e0a5ef9c0405e06275f954c3b4b (diff)
downloadrust-9c1ceece20e14e2a746c382b639f9288746e493c.tar.gz
rust-9c1ceece20e14e2a746c382b639f9288746e493c.zip
Add skip list based implementation for smaller encoding
This arranges for the sparser sets (everything except lower and uppercase) to be
encoded in a significantly smaller context. However, it is also a performance
trade-off (roughly 3x slower than the bitset encoding). The 40% size reduction
is deemed to be sufficiently important to merit this performance loss,
particularly as it is unlikely that this code is hot anywhere (and if it is,
paying the memory cost for a bitset that directly represents the data seems
worthwhile).

Alphabetic     : 1599 bytes     (- 937 bytes)
Case_Ignorable : 949 bytes      (- 822 bytes)
Cased          : 359 bytes      (- 429 bytes)
Cc             : 9 bytes        (-  15 bytes)
Grapheme_Extend: 813 bytes      (- 675 bytes)
Lowercase      : 863 bytes
N              : 419 bytes      (- 619 bytes)
Uppercase      : 776 bytes
White_Space    : 37 bytes       (-  46 bytes)
Total table sizes: 5824 bytes   (-3543 bytes)
Diffstat (limited to 'src/libstd/sys/unix/stack_overflow.rs')
0 files changed, 0 insertions, 0 deletions