Sergey "Shnatsel" Davidoff

Results 353 issues of Sergey "Shnatsel" Davidoff

This PR fills in release notes and bumps version.

Use the new `zrip` crate instead of `ruzstd` proposed in #349. It is over 2x faster and supports multi-frame streams. The `paranoid` feature is used to disable all `unsafe` code,...

Pros: 100% safe Rust. No memory safety bugs, no C toolchain required Cons: ~3x slower than libzstd ### Future compatibility notes The safe Rust impl has no encoding support. That's...

The animation encoder accepted `AnimFrame`s whose dimensions were smaller than the animation canvas, but `anim_encode()` passed the canvas dimensions to `new_picture()` for every frame. This made libwebp import a smaller...

A similar change in zlib-rs ( https://github.com/trifectatechfoundation/zlib-rs/pull/488 ) nearly doubled performance on large sizes on Zen5. This PR has no impact on Zen4, likely due to its double-pumped AVX-512 implementation....

Since this adds a new file with minimal changes compared to avx512.rs, this is best reviewed with `diff src/imp/avx512.rs src/imp/avx512_vnni.rs` Addresses #22 On desktop Zen4 the improvements are marginal: there's...

AVX-512 has been stable since Rust 1.89 Preserves the nightly feature behavior to avoid disabling AVX-512 for existing nightly users, e.g. Chromium

zlib-rs has recently added an avx512-vnni variant that is 2x faster than baseline avx512 on their benchmarks: https://github.com/trifectatechfoundation/zlib-rs/pull/448 It would be great to have that available in simd-adler32 as well,...

Per-frame `EncodingConfig` handling passed a pointer to a temporary `ConfigContainer` into `WebPAnimEncoderAdd`. Because the temporary was created while building the FFI argument list, it could be dropped before libwebp read...

The first commit adds proof-of-concept tests that trigger out-of-bounds accesses under miri. The second one applies a fix by panicking on arithmetic overflow instead of allowing buffer overflow. This is...