diff --git a/goals/G-126-punkzip-accelerator.md b/goals/G-126-punkzip-accelerator.md index 5fa92ed9..f3e757e0 100644 --- a/goals/G-126-punkzip-accelerator.md +++ b/goals/G-126-punkzip-accelerator.md @@ -188,12 +188,24 @@ working tree; one now exists. `zip_prefixed_empty`) build archives in memory, prepend a fake executable prefix, and verify both offset conventions land on the right base_offset with members extracting intact. Suite now 125/125. -- Remaining for acceptance: extract-to-directory argument (upstream); machine-readable - listing mode + zig-side format pin test (upstream; must keep the stdout=product / - stderr=diagnostics split per Notes); `build` subcommand finish-or-remove decision; - vendor into `src/tools/punkzip/` with provenance (upstream commit id), re-vendor - procedure and licence records; make.tcl tool build step (zig OPTIONAL - absence - reported, not fatal; test gate keys on exit code, not clean stderr - the zip suite's - negative tests print EOCD warnings while passing); punk::zip accelerator detection + - fast path behind the G-124 floor; parity suite in `src/tests/modules/punk/zip/`; +- 2026-07-27 the two upstream-side prerequisites from Approach LANDED (commit 7f88096, + punkzip v2.2.0, suite 128/128): `extract [-d ]` (target dir created if absent, + human output gains an extract_to line, no-flag behaviour unchanged) and + `list [-porcelain]` - machine-readable format v1, PINNED by CLI tests: parsers skip + `# `-prefixed and blank lines; first significant line `punkzip_porcelain_v1`; header + fields file_size / base_offset / num_members / archive_comment_bytes (comment bytes + follow on their own line); member records + `m + ` with the length-prefixed name LAST (spaces safe; CR/LF + names refused). mtime is the deterministic UTC interpretation of the DOS-stored + local wall time (musl time.zig, no tz database) - machine-independent, so the + parity suite can compare it directly. Member comments deliberately deferred to a v2. + (The user separately committed upstream hwzip 2.4 C source under `reference/` for + sync comparison - cb2a731.) +- Remaining for acceptance: `build` subcommand finish-or-remove decision; vendor into + `src/tools/punkzip/` with provenance (upstream commit id), re-vendor procedure and + licence records; make.tcl tool build step (zig OPTIONAL - absence reported, not + fatal; test gate keys on exit code, not clean stderr - the zip suite's negative + tests print EOCD warnings while passing); punk::zip accelerator detection + fast + path behind the G-124 floor; parity suite in `src/tests/modules/punk/zip/`; recorded benchmark (speedup + entry count where it becomes material).