feat(compress): move CCtx workspace estimator into Rust
The CCtx workspace estimator still assembled its private sizing formula in C, even though the match-state and component-sum leaves already lived in Rust. That left buffering, LDM, static-context, and external-sequence sizing policy outside the rewrite boundary. Move the complete size_t formula into a Rust entry point. C now supplies only private object sizes, sanitizer redzone policy, and LDM scalar fields through a small ABI record. Rust retains the C wrapping/alignment behavior and focused branch coverage while the C adapter preserves the existing public estimator surface. Test Plan: - cargo fmt --manifest-path rust/Cargo.toml -- --check - ulimit -v 41943040; CARGO_BUILD_JOBS=1 cargo test --manifest-path rust/Cargo.toml --release estimate_cctx_workspace_size - ulimit -v 41943040; CARGO_BUILD_JOBS=1 cargo test --manifest-path rust/Cargo.toml --release (667 passed) - ulimit -v 41943040; CARGO_BUILD_JOBS=1 cargo clippy --manifest-path rust/Cargo.toml --release --all-targets -- -D warnings - ulimit -v 41943040; make -B -C programs -j1 zstd - ulimit -v 41943040; make -C tests -j1 test-zstream ZSTREAM_TESTTIME=-T1s (84 tests and both short fuzzer rounds)
This commit is contained in:
+4
-3
@@ -165,9 +165,10 @@ parameter validation and init-then-begin ordering now run in Rust.
|
||||
CDict advanced private workspace construction, private static-CCtx and
|
||||
static-CDict workspace construction and dictionary-content allocation/loading,
|
||||
and advanced-CDict dictionary-content loading remain in C. Rust now owns
|
||||
advanced-CDict custom-memory validation, workspace-size query/allocation, and
|
||||
allocation/create/init cleanup ordering; C retains the private workspace
|
||||
size formula, layout, and allocator callbacks. Reset policy,
|
||||
advanced-CDict custom-memory validation, workspace-size query/allocation,
|
||||
allocation/create/init cleanup ordering, and the CCtx workspace-size formula;
|
||||
C retains private layout-size inputs, workspace layout, and allocator
|
||||
callbacks. Reset policy,
|
||||
private CCtx/matchfinder/workspace operations, and codec/adaptive-policy
|
||||
callbacks remain in C. CDict initialization ordering and scalar publication,
|
||||
shared compression-begin dictionary selection, CDict reset attach-versus-copy
|
||||
|
||||
Reference in New Issue
Block a user