From 9f56dcb3e8c4d1c3bac6c707a4a73ecf108f326c Mon Sep 17 00:00:00 2001 From: Julian Noble Date: Sun, 2 Aug 2026 03:41:03 +1000 Subject: [PATCH] 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 --- goals/G-153-metakit-punk-zig-port.md | 29 +++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/goals/G-153-metakit-punk-zig-port.md b/goals/G-153-metakit-punk-zig-port.md index 0dba35ef..323dc2d1 100644 --- a/goals/G-153-metakit-punk-zig-port.md +++ b/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