You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

6.8 KiB

G-158 punk86-kit parity: punkshell 8.6 kits bake on the suite-built mk4 head

Status: proposed Scope: src/make.tcl (sdx resolution ladder suite-shell rung - shared seam with G-157 approach step 4; kit wrap path; runtime_caps/kit_type_mismatch accommodation); src/buildsuites/suite_tcl86/ (build_kithead86 bi-class head variant, mk4kit_attach battery payloads); src/runtime/mapvfs.toml (suite-head runtime rows + kit entries); bin/runtime/win32-x86_64/ (uncommitted local materialization slot for the heads - publication is follow-on); src/tests/shell/testsuites/punkexe/ (bake-path characterization); bin/sdx.kit (consumed by the ladder - its committed status is G-157's contract, not this goal's) Goal: punkshell's punk86-class kits bake on the suite-built mk4 head through make.tcl's normal 'kit' path, so the 8.6 kit lane is self-hosted end-to-end - runtime, container engine and wrap tooling all punkshell-built - and the prebuilt third-party tclkits (tclkit86bi, tclkit-win64-dyn, tclkit-win64-dyn-8617) stop being load-bearing for it. Acceptance: make.tcl's sdx resolution ladder gains a rung running sdx under a suite-built mk4-capable 8.6 shell, preferred ahead of the prebuilt-tclkit last resort and exercised by a real bake (one implementation shared with G-157's materialization arm - whichever goal lands it first, the other consumes it); a bi-class head variant with batteries in the runtime vfs (G-103 family payload shape) builds beside the plain head; kit.punk86 and kit.punkbi (or trial-named siblings from the same .vfs payloads) bake via make.tcl with the suite heads as runtime, passing the existing gates unweakened (G-125 boot-library gate, arch scan, punkres stamping seam, smoke); the runtime_caps probe and kit_type_mismatch check classify the heads correctly with no warn/skip on a legitimate bake; each baked kit boots on a path with no Tcl installation and resolves internal tm/auto_path trees equivalently to its tclkit-baked sibling, with the comparison recorded; no new binary is committed - the heads reach the bake from the suite output tree or an uncommitted local runtime materialization, with punkbin runtime-tier publication recorded as follow-on rather than required; and the third-party-runtime disposition is recorded - which of the three tclkits remains load-bearing for anything after the parity bakes, retirement itself staying a user decision.

Context

The consumption arc of G-101 (achieved 2026-08-02 - see goals/archive/G-101-tcl86-kit-container-strategy.md): that goal decided mk4, demonstrated the whole chain end-to-end, and recorded a follow-on-to-parity list whose items 1-3 this goal takes up. What already exists, verified there:

  • The mk4 kit-head: suite_tcl86's opt-in kithead step builds tclsh8.6.18-mk4-r1.exe (static shell + engine + Mk4tcl/mk4too + static tclvfs, preinit boot from its own attached container; boot.tcl in the vfs per the tclkit convention; tools/mk4kit_attach.tcl plays the setupvfs role). Bare-path boot, self-wrap of a separate copy via sdx, and dll-load-from-vfs are all measured.
  • The sdx circularity is broken: sdx.kit runs under the suite-built tclsh86t (starkit 1.3.3 + vfs::mk4 ship with tclvfs trunk; Mk4tcl 2.4.9.8 is the suite battery) and under the head itself - no tclkit in the chain.
  • What is NOT yet wired is the bake: make.tcl's sdx resolution ladder still ends at bin/sdx.kit + a prebuilt tclkit, the runtime_caps/kit_type machinery has never seen a suite head, and no mapvfs entry names one.

The parity targets are the three 'kit'-type rows riding prebuilt tclkits in src/runtime/mapvfs.toml today: kit.punkbi (tclkit86bi - the bi shape), kit.punk86 (tclkit-win64-dyn-8617) and kit.punksys (tclkit-win64-dyn). kit.punksys is deliberately unnamed in Acceptance - same mechanism as punk86; the disposition clause covers its runtime.

Batteries for the bi shape: the head's boot puts /lib on auto_path, so a bi variant is the attach step writing the suite's battery package dirs (thread2.8.13, vfs1.4.2, tk + lib/tk8.6, tcllib/tcllibc) into the runtime vfs alongside lib/tcl8.6 - the G-103 family payload shape (G-103 achieved 2026-07-22 - see goals/archive/G-103-runtime-kit-family.md), already the attach tool's mechanism.

Gate references in Acceptance, for the record: the G-125 boot-library gate (achieved 2026-07-27 - goals/archive/G-125-unbootable-kit-deploy-gate.md; its vfs_boot_library_report location list is checked against the tclkit shape at the first parity bake, per G-101's follow-on item 3) and the punkres stamping seam (G-057 achieved 2026-07-29 - goals/archive/G-057-kit-icon-embedding.md; G-128 achieved 2026-07-29 - goals/archive/G-128-portable-pe-resource-stamping.md).

Notes

  • Related: G-157 - the strongest overlap (survey 2026-08-03): the same make.tcl sdx-ladder seam (its approach step 4 folds the suite-shell rung into its materialization arm) and it owns sdx.kit's committed status. Coordination: ONE rung implementation - whichever goal lands it first, the other consumes it; this goal treats bin/sdx.kit purely as an input the ladder resolves, wherever G-157 makes it come from.
  • Related: G-131 - consumption sibling: the heads are its mk4 arm (build_kithead86/kithead.c + boot.tcl are the metakit half of its detection), and the parity kits become the starkit-family specimens its no-regression clause compares against.
  • Related: G-130 - the win32-ix86 head (G-101 follow-on parity item 4) arrives through this goal's family mechanism applied on that lane's runtimes; nothing here assumes x64-only shapes.
  • Related: G-110 - kit battery loads ride the mk4 copy-to-temp shape this goal makes routine punkshell practice; its cache investigation gains the suite head as a first-party reproduction vehicle.
  • Related: G-116 - the bi-family battery contract is generation-shaped; a suite-built tcltls would join the bi head payload when it lands.
  • Related: G-137 - RT_VERSION stamping sits at the same kit-wrap seam (G-057/G-128 icon/stamp path); the mk4 container is measured move-safe for post-hoc stamping (G-128 record).
  • Overlap survey 2026-08-03 (goals_xref paths over src/make.tcl, src/buildsuites/suite_tcl86, src/runtime/mapvfs.toml, bin/runtime/win32-x86_64, bin/sdx.kit, src/tests/shell/testsuites/punkexe): G-105/G-023/G-005/G-006 sibling adjacency only (buildsuite target dimension, binary naming, build/download channels - the latter two arrive via G-157); G-141/G-142/G-147 bin/ path-siblings only, judged not related in substance; G-077 (achieved 2026-08-04 - goals/archive/G-077-punkexe-dash-e-oneliner.md)/G-061 punkexe-test-dir neighbours only.
  • 2026-08-03: drafted (user-approved this session) from G-101's follow-on items 1-3. Drafting decisions recorded at approval: the bi variant is IN scope (kit.punkbi parity needs it); punkbin publication is OUT (follow-on, keeping the goal bake-focused); kit.punksys unnamed in Acceptance per Context.