Browse Source

G-153 increment 6 + achieved flip content: static-embed clause met, all clauses resolved

Static-embed experiment (untracked build86_mk4embed.zig variant in the
suite _build staging, preserved at TEMP_REFERENCE/metakit-mk4embed/):
tclsh86ts-mk4.exe = kit-class static shell + engine + Mk4tcl + mk4too
via Tcl_StaticLibrary registration; increment-4 smoke transcript passes
identically; import table measured IDENTICAL to stock (zero new dll
deps from C++ embed - G-130 prediction now measured). Acceptance
resolution recorded at fork pin 6a92b479; remaining list EMPTY; Status
flipped achieved 2026-08-02. Archive move + index swap + reference
sweep follow in the companion commit (pure-rename discipline).

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

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

@ -1,6 +1,6 @@
# G-153 metakit_punk zig port: fork-as-upstream Mk4tcl for the 8.6 kit container # G-153 metakit_punk zig port: fork-as-upstream Mk4tcl for the 8.6 kit container
Status: active Status: achieved 2026-08-02
Scope: external fork repo c:/repo/jn/metakit_punk (gitea jn/metakit - the port itself lands there); src/buildsuites/suite_tcl86/sources.config and src/buildsuites/suite_tcl86/build.zig.zon (ready-to-land metakit records drafted in the detail file; landing them is G-101-era consumption); TEMP_REFERENCE/{metakit_jnorthrup,metakit_pooryorick,KitCreator} (read-only patch/boot-chain reference - machine-local); goals/G-101-tcl86-kit-container-strategy.md (consumer decision record) Scope: external fork repo c:/repo/jn/metakit_punk (gitea jn/metakit - the port itself lands there); src/buildsuites/suite_tcl86/sources.config and src/buildsuites/suite_tcl86/build.zig.zon (ready-to-land metakit records drafted in the detail file; landing them is G-101-era consumption); TEMP_REFERENCE/{metakit_jnorthrup,metakit_pooryorick,KitCreator} (read-only patch/boot-chain reference - machine-local); goals/G-101-tcl86-kit-container-strategy.md (consumer decision record)
Goal: the punkshell-maintained metakit fork (c:/repo/jn/metakit_punk - gitea jn/metakit - pooryorick 2.4.9.8 porting baseline with the dead upstreams preserved as in-repo reference snapshots) builds standalone under the pinned zig toolchain as a Tcl-agnostic C++ core library plus the Mk4tcl binding in both loadable-dll and static-embed shapes, for win32-x86_64 and win32-ix86 alike, and a suite-built 8.6 shell loads and exercises the dll - so the G-101 mk4 container candidate rests on a first-party, commit-pinned, provenance-carrying source referenced by the buildsuites the punkzip way (gitea commit pin in sources.config plus zon tarball record) rather than on dead third-party upstreams or a wholesale vendor copy. Goal: the punkshell-maintained metakit fork (c:/repo/jn/metakit_punk - gitea jn/metakit - pooryorick 2.4.9.8 porting baseline with the dead upstreams preserved as in-repo reference snapshots) builds standalone under the pinned zig toolchain as a Tcl-agnostic C++ core library plus the Mk4tcl binding in both loadable-dll and static-embed shapes, for win32-x86_64 and win32-ix86 alike, and a suite-built 8.6 shell loads and exercises the dll - so the G-101 mk4 container candidate rests on a first-party, commit-pinned, provenance-carrying source referenced by the buildsuites the punkzip way (gitea commit pin in sources.config plus zon tarball record) rather than on dead third-party upstreams or a wholesale vendor copy.
Acceptance: in c:/repo/jn/metakit_punk under the pinned zig 0.16.0, 'zig build' and 'zig build test' pass for both x86_64-windows and x86-windows with the 32-bit tests executed natively on the x64 host (WoW64); the KitCreator mk4tcl patch set (nine patches vs 2.4.9.7) is audited against the 2.4.9.8 baseline with a per-patch disposition recorded (ported as fork commits citing origin / already present in baseline / rejected with reason); the Mk4tcl binding builds as a stubs-linked dll against the same tcl core-8-6-branch pin suite_tcl86 carries and suite-built tclsh86t loads it - package require Mk4tcl plus an mk::file open/set/select/close round trip - with the transcript recorded in this file; an mk4 datafile written by the x86_64 build reads back identically under the ix86 build and vice versa; a static-embed shape (archive registerable via Tcl_StaticPackage) links into a copy of the kit-class shell target or its blocker is recorded here; the fork commit is pinned with ready-to-land sources.config and build.zig.zon record text captured in this file; and metakit_punk's root LICENSE lands with the first ported sources (MIT/X11 retained). Acceptance: in c:/repo/jn/metakit_punk under the pinned zig 0.16.0, 'zig build' and 'zig build test' pass for both x86_64-windows and x86-windows with the 32-bit tests executed natively on the x64 host (WoW64); the KitCreator mk4tcl patch set (nine patches vs 2.4.9.7) is audited against the 2.4.9.8 baseline with a per-patch disposition recorded (ported as fork commits citing origin / already present in baseline / rejected with reason); the Mk4tcl binding builds as a stubs-linked dll against the same tcl core-8-6-branch pin suite_tcl86 carries and suite-built tclsh86t loads it - package require Mk4tcl plus an mk::file open/set/select/close round trip - with the transcript recorded in this file; an mk4 datafile written by the x86_64 build reads back identically under the ix86 build and vice versa; a static-embed shape (archive registerable via Tcl_StaticPackage) links into a copy of the kit-class shell target or its blocker is recorded here; the fork commit is pinned with ready-to-land sources.config and build.zig.zon record text captured in this file; and metakit_punk's root LICENSE lands with the first ported sources (MIT/X11 retained).
@ -279,7 +279,40 @@ in the Notes above (the two READY-TO-LAND bullets). Every 'zig build' /
increments 1-4 was run at exactly this tree state, so the pinned commit is increments 1-4 was run at exactly this tree state, so the pinned commit is
the verified commit. the verified commit.
Remaining for acceptance: Increment 6 landed 2026-08-02: the STATIC-EMBED acceptance clause is MET -
- Static-embed shape (Tcl_StaticPackage) into a kit-class shell copy, or its the final open item. Vehicle (per the "copy of the kit-class shell target"
blocker recorded here. (Suite-side experiment: a tclsh86ts variant per the wording): an untracked variant of the suite recipe in the suite's _build
suite recipe - next work unit.) staging area (build86_mk4embed.zig, 53 diff lines vs build86.zig; variant +
diff preserved machine-local at TEMP_REFERENCE/metakit-mk4embed/), reusing
the staged tcl86 checkout and warm object cache - no tracked suite file
touched (suite integration stays G-101 work). Variant deltas: exe renamed
tclsh86ts-mk4; tclAppInit.c compiled from a replaceAll overlay injecting
Mk4tcl_Init registration via Tcl_StaticLibrary (8.6.18's name -
Tcl_StaticPackage, the name the acceptance uses, is its compat alias)
beside Registry/Dde; the 15 engine .cpp (exception-free flags) + mk4tcl.cpp
+ mk4too.cpp (USE_TCL_STUBS + STATIC_BUILD, exceptions on) compiled from
the metakit_punk checkout; link_libcpp on the shell module. Built
ReleaseFast with the suite invocation shape (--build-file variant,
--cache-dir .zig-cache-0.16.0, --prefix out-mk4embed, step mk4embed).
RESULT: tclsh86ts-mk4.exe (2,319,872 bytes vs stock tclsh86ts.exe
1,946,624 - +373KB for engine + binding) runs the increment-4
smoke_mk4tcl.tcl transcript IDENTICALLY (Mk4tcl 2.4.9.8 provided at
startup from the static registration; full mk::file round trip + mk4too
surface + persistence read-back; PASS; TCL_LIBRARY pointed at the suite's
out/lib/tcl8.6 since the experiment prefix installs no script library).
Import-surface measurement (objdump): the variant's dll imports are
IDENTICAL to the stock suite set (classic OS dlls + api-ms-win-crt-* UCRT)
- embedding the C++ engine adds ZERO new dll dependencies, upgrading the
G-130 Notes prediction to a direct measurement.
ACCEPTANCE RESOLUTION (all clauses verified at fork commit 6a92b479 = the
pushed pin): dual-arch 'zig build' + 'zig build test' incl. native WoW64
32-bit runs (inc 1); nine-patch KitCreator audit with per-patch
dispositions recorded (inc 3; count amended per user approval); stubs dll
vs the suite tcl core-8-6-branch pin + tclsh86t load and round-trip
transcript (inc 4; plus the ix86-dll/luck-shell bonus); x64<->ix86 mk4
datafile interchange both directions (inc 2); static-embed shape linked
into a kit-class shell copy (inc 6); fork commit pinned with ready-to-land
sources.config and build.zig.zon record text captured (inc 5); root
LICENSE landed with the first ported sources (inc 1). The Progress
remaining-work list is EMPTY; goal achieved.

Loading…
Cancel
Save