docs(rust): refresh migration boundary
The migration map still described the optimal parser and benchmark orchestration as C-owned, and its remaining-work paragraph did not distinguish the newly ported high-level leaves from the still-private frame and MT orchestration. That made the README under-report Rust ownership and overstate some remaining C work. Update the component map to identify `zstd_opt` price/parse ownership and Rust benchmark orchestration, and describe the current C boundary as the remaining frame setup/flush scheduling and format-specific codec leaves. Keep the hybrid-build warning explicit until those larger orchestration layers move. Test Plan: - `git diff --cached --check` -- passed. - Rust library and CLI Clippy default, benches, and tests -- passed before staging. - Native library, program, fuzz, CLI, and upstream test matrices -- passed before staging.
This commit is contained in:
+14
-14
@@ -62,7 +62,8 @@ zstd ABI:
|
|||||||
- `zstd_lazy` implements greedy, lazy, lazy2, and binary-tree matching,
|
- `zstd_lazy` implements greedy, lazy, lazy2, and binary-tree matching,
|
||||||
including row-based and dictionary search variants.
|
including row-based and dictionary search variants.
|
||||||
- `zstd_opt_tree` maintains the binary-tree index used by optimal matching;
|
- `zstd_opt_tree` maintains the binary-tree index used by optimal matching;
|
||||||
the dynamic-programming optimal parser itself remains in C for now.
|
`zstd_opt` owns the dynamic-programming price model, optimal parse, and
|
||||||
|
sequence emission.
|
||||||
- `zstd_ldm` implements long-distance-match parameter selection, table
|
- `zstd_ldm` implements long-distance-match parameter selection, table
|
||||||
maintenance, sequence generation, and sequence consumption.
|
maintenance, sequence generation, and sequence consumption.
|
||||||
- Dictionary building
|
- Dictionary building
|
||||||
@@ -103,20 +104,19 @@ zstd ABI:
|
|||||||
preference policy, filename decisions, source/destination opening,
|
preference policy, filename decisions, source/destination opening,
|
||||||
dictionary buffers, asynchronous I/O pools, and pass-through copy leaf.
|
dictionary buffers, asynchronous I/O pools, and pass-through copy leaf.
|
||||||
- `timefn` provides the monotonic nanosecond clock behind `UTIL_time_t`,
|
- `timefn` provides the monotonic nanosecond clock behind `UTIL_time_t`,
|
||||||
and `benchfn` owns the benchmark run/timing loop (`BMK_benchFunction`,
|
while `benchfn` owns the benchmark run/timing loop (`BMK_benchFunction`,
|
||||||
`BMK_benchTimedFn`) used by the CLI benchmark mode and by C test tools.
|
`BMK_benchTimedFn`) and `benchzstd` owns benchmark orchestration and
|
||||||
Both live in the `cli/` package, but C test binaries (fullbench, fuzzer,
|
reporting. Both live in Rust; the C translation units are ABI shims.
|
||||||
zstreamtest, paramgrill, ...) link a helpers-only build of that archive,
|
C test binaries (fullbench, fuzzer, zstreamtest, paramgrill, ...) link a
|
||||||
produced without the package's `cli` feature, because the parser layer
|
helpers-only build of the archive, produced without the package's `cli`
|
||||||
requires the C `fileio` backend that tests do not compile. Benchmark
|
feature, because the parser layer requires the C `fileio` backend that
|
||||||
orchestration and reporting (`benchzstd.c`) remain C, reached from the
|
tests do not compile.
|
||||||
Rust parser through the `ZSTD_NOBENCH`-gated bridge in `zstdcli.c`.
|
|
||||||
|
|
||||||
The optimal block matcher, most high-level frame-compression orchestration,
|
High-level frame-compression orchestration, multithreaded job scheduling and
|
||||||
benchmark orchestration and reporting (`benchzstd`), and several
|
flush orchestration, and several format-specific CLI codec paths are still C.
|
||||||
format-specific CLI I/O paths are still C. They must move before the rewrite
|
They must move before the rewrite is complete. Keeping that boundary explicit
|
||||||
is complete. Keeping that boundary explicit prevents a passing hybrid build
|
prevents a passing hybrid build from being mistaken for the final all-Rust
|
||||||
from being mistaken for the final all-Rust result.
|
result.
|
||||||
|
|
||||||
## Legacy decoding
|
## Legacy decoding
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user