feat(compress): move match-state reset policy into Rust
Move the reset decision tree for match-state tables from C into a Rust-owned callback projection. Rust now decides chain/hash3/row/optimal allocations, reset versus continue behavior, clean versus leave-dirty policy, scalar publication, and allocation-error propagation. C retains the cwksp phases, window invalidation, private pointer assignments, zeroing, and hash-salt implementation behind callbacks, so the private match-state and workspace layouts remain C-owned. Update the migration boundary documentation and add callback-order probes for CCtx optimal storage, CCtx row salting, CDict row zeroing, and table allocation failure. Test Plan: - cargo fmt --manifest-path rust/Cargo.toml -- --check - ulimit -v 41943040; CARGO_BUILD_JOBS=1 cargo test --manifest-path rust/Cargo.toml --lib (677 passed) - ulimit -v 41943040; CARGO_BUILD_JOBS=1 cargo clippy --manifest-path rust/Cargo.toml --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
-4
@@ -166,10 +166,10 @@ 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,
|
||||
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
|
||||
allocation/create/init cleanup ordering, the CCtx workspace-size formula, and
|
||||
the match-state reset policy/order; C retains private layout-size inputs,
|
||||
workspace layout, and allocator callbacks. Private CCtx reset/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
|
||||
selection, and CDict-begin parameter selection, initialization ordering, and
|
||||
|
||||
Reference in New Issue
Block a user