Files
erofs-freebsd-out-tree/docs/pre8-baseline.md
T
2026-08-18 09:20:44 +02:00

87 lines
3.9 KiB
Markdown

# Pre8 Responsibility-Alignment Baseline
## Repository Identity
The following identities were read directly from Git objects at execution-start
commit `475b62437f89a8a98e0e3a1d1628481768525cb2`:
```text
execution-start commit: 475b62437f89a8a98e0e3a1d1628481768525cb2
execution-start tree: 3f0bc6be8324446440ce578f03d892c95f73591c
repo-pre-7 tree: b8f9af2cd55225c4348b79ff5910ae6fc83cd517
repo-pre-8 tree: b8f9af2cd55225c4348b79ff5910ae6fc83cd517
```
The equal `repo-pre-7` and `repo-pre-8` tree identities establish that
`repo-pre-8` is an exact tracked snapshot of `repo-pre-7` at the execution
start. This relationship is based on Git object identities, not a live
worktree comparison.
Relevant source identities at the same commit are:
```text
mode blob path
100644 e06822e363d9122a39256494bde7d12cfea1f7c9 repo-pre-8/src/decompressor.c
100644 ff595fe009679a4e950eb3743b2f152fac4aad31 repo-pre-8/src/decompressor_lzma.c
100644 f3e48cd2016608aaf84ed5e80151782a6c5513f7 repo-pre-8/src/decompressor_deflate.c
100644 23756af263ceb148ca50fbb8cd1ae80ba3fac4cd repo-pre-8/src/decompressor_zstd.c
100644 cac9ee15f81a1607a03fbab3466cf89c588872c8 repo-pre-8/src/internal.h
100644 2257a2299b3bcf3ab15978d723843f26d0b4b346 repo-pre-8/src/xattr.c
```
These values define the immutable comparison baseline for Pre8. Concurrent
or later worktree changes are not assessed by this document.
## Execution Scope
Pre8 is limited to the following private responsibility-alignment tasks:
1. Move `z_erofs_load_lzma_config()` from the core decompressor file to the
LZMA backend without changing its name, signature, validation order,
state updates, or error behavior.
2. Move `z_erofs_load_deflate_config()` to the DEFLATE backend with its
existing format checks, window-bit limits, state updates, and errors
preserved.
3. Move `z_erofs_load_zstd_config()` to the ZSTD backend while preserving the
availability check, configuration checks, window-log limit, diagnostics,
and `WITH_ZSTDIO` behavior.
4. Replace the duplicated inline and shared xattr traversal paths with shared
private iterator helpers while preserving lookup priority, list order,
namespace and errno timing, validation differences, output accounting, and
buffer ownership.
The source allowlist is restricted to the six files identified above. This
baseline file is the only documentation path used by the baseline step.
Pre8 does not include superblock extraction, a new `compress.h` contract,
descriptor tables, decode callback ABI changes, codec primitive renaming,
typed errno conversion, Linux page or folio abstractions, broad function
reordering, or any item already recorded under `planning/reject/`.
## Initial Validation Status
This document records the execution baseline only. No implementation,
correctness, build, or runtime conclusion is made here.
| Validation item | Initial status |
|---|---|
| Pre8 source implementation | NOT RUN |
| Source allowlist and protected-path audit | NOT RUN |
| `git diff --check` | NOT RUN |
| Loader definition, declaration, reference, and body-equivalence checks | NOT RUN |
| Xattr iterator invariant and behavior review | NOT RUN |
| Direct-parent restoration checks for source commits | NOT RUN |
| Final-HEAD inverse-patch compatibility checks | NOT RUN |
| `WITH_ZSTDIO=0` build | NOT RUN |
| `WITH_ZSTDIO=1` build | NOT RUN |
| Basic plain/LZ4 QEMU mount, read, readdir, and unmount smoke | NOT RUN |
| Pre7 deferred QEMU coverage | NOT RUN |
| Pre8 xattr QEMU coverage | NOT RUN |
| Pre8 codec QEMU coverage | NOT RUN |
| QEMU cleanup and zero-residual-state checks | NOT RUN |
| Completion and evidence-honesty review | NOT RUN |
Historical evidence from an earlier snapshot is not a Pre8 result. Every
status above remains `NOT RUN` until supported by fresh evidence from the
final Pre8 DUT. This file must not be interpreted as a completion report.