Browse Source

G-126 progress: upstream CLI features landed (extract -d, list -porcelain)

Upstream punkzip 7f88096 (v2.2.0, suite 128/128) delivers both
upstream-side prerequisites from the goal's Approach: the
extract-to-directory argument and the machine-readable listing mode
with its format pinned by CLI tests. Progress records the v1 porcelain
format contract for the parity-suite work; remaining-for-acceptance
list trimmed accordingly. Also noted: user-committed reference/
hwzip 2.4 C source upstream (cb2a731).

Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
master
Julian Noble 3 days ago
parent
commit
01fce6b735
  1. 28
      goals/G-126-punkzip-accelerator.md

28
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 <dir>]` (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 <isdir> <method> <uncomp> <comp> <crc32-8hex> <mtime-unixsecs> <encrypted>
<madeby> <namelen> <name>` 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).

Loading…
Cancel
Save