Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Use
rle_decode_fast
crate created by @WanzenBug and me instead of a bespoke unsafe block relying on non-local invariants.This change improves performance by about 10% as measured with
hyperfine -m 25 --warmup=3 'target/release/examples/flate -i enwiki-latest-all-titles-in-ns0.gz -o /dev/null gzip-decode'
Before:
After:
We're created the crate to solve recurring safety problems in RLE decoding. It contains a single unsafe block, which is a copy of
append_from_within()
function from this Rust RFC. We're reasonably confident it is sound because it's mostly a copy of a pre-exisitng stdlib function, and I cannot find anything wrong with its logic.