Browse Source

G-153 progress: increment 2 - interchange acceptance clause met

metakit_punk 9b1befa: demo/dump/struct ported as the interchange
vehicles (user-approved fold-in); 'zig build interchange' green -
read-back identity both directions (dump + struct) + writer parity
under zig 0.16.0, transcript recorded in the detail file. One-byte
physical writer difference (offset 169 varint continuation bit) carried
as a patch-audit observation; mk4too-in-dll upstream fact recorded for
the binding milestone. Remaining acceptance list updated.

Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
master
Julian Noble 1 week ago
parent
commit
9f56dcb3e8
  1. 29
      goals/G-153-metakit-punk-zig-port.md

29
goals/G-153-metakit-punk-zig-port.md

@ -169,13 +169,40 @@ Port findings worth keeping (details in the fork's src/AGENTS.md + build.zig):
library installs as lib/mk4.lib (0.16 name) + include/{mk4*.h,*.inl} - the
linkLibrary(dep.artifact("mk4")) consumer shape the suite arm needs.
Increment 2 landed 2026-08-02 (metakit_punk commit 9b1befa): the interchange
acceptance clause is MET. Upstream demo/dump/struct ported byte-identical as
the check vehicles (user-approved fold-in; myio/bigdemo stay reference-only);
'zig build demos' (selected target) and 'zig build interchange' (fixed dual
windows targets + host driver tools/interchange_check.zig) added. Demos
compile WITHOUT -fno-exceptions (dump.cpp carries real try/catch on windows);
the core lib stays exception-free. VERIFIED under zig 0.16.0: full step
matrix (build / test x64 / test x86 / demos / interchange) PASS. Interchange
transcript (also saved as evidence files in the step scratch):
OK demo stdout x64 vs x86
OK READ-BACK dump: x64-written file, x64 vs x86 reader
OK READ-BACK dump: x86-written file, x86 vs x64 reader
OK WRITER-PARITY dump: x64-written vs x86-written
OK READ-BACK struct: x64-written file, x64 vs x86 reader
OK READ-BACK struct: x86-written file, x86 vs x64 reader
OK WRITER-PARITY struct: x64-written vs x86-written
INFO datafiles differ physically (sizes 437/437, first diff at offset
169) - logical identity is what the format guarantees
interchange_check: PASS - read-back identity and writer parity hold in
both directions (dump + struct)
Patch-audit observation carried forward: the two writers' files differ by ONE
byte (offset 169, 0x9C vs 0x0C - a continuation bit in the commit-walk varint
region) at equal sizes; read-back identity holds bidirectionally, so this is
bounded, but the 64-bit-filespace patch lineage review should explain it.
Binding-milestone fact recorded in the fork DOX: upstream CMake compiles
mk4too.cpp INTO the Mk4tcl shared lib (metakit_tcl_SOURCES) - include-or-not
is a decision to record when the dll lands.
Remaining for acceptance:
- KitCreator mk4tcl patch-set audit (eight patches vs 2.4.9.7) with per-patch
disposition recorded here as fork commits citing origin.
- Mk4tcl binding as stubs-linked dll against the suite tcl core-8-6-branch pin
(1d1d5cbd91; lazy zon dep + -Dtcl-src option per Approach) + tclsh86t load
and mk::file round-trip transcript recorded here.
- x86_64 <-> ix86 mk4 datafile interchange check (both directions).
- Static-embed shape (Tcl_StaticPackage) into a kit-class shell copy, or its
blocker recorded here.
- Fork commit pinned + ready-to-land sources.config and build.zig.zon record

Loading…
Cancel
Save