# G-100 suite_tcl86 dependency set: Tk 8.6 + tklib, tcllib with critcl accelerators, punkshell runtests on the 8.6 runtime Status: proposed Scope: src/buildsuites/suite_tcl86/ (recipe extensions, driver steps); src/buildsuites/_build/ (tk/tklib/tcllib/critcl sources and outputs); bin/tools/ (pinned zig as consumed); src/tests/ (punkshell suites exercised against the suite-built 8.6 runtime) Goal: suite_tcl86 builds/installs the remaining runtime pieces punkshell's Tcl 8 testing depends on - Tk from fossil core-8-6-branch loadable by the suite's 8.6 windows runtime together with a matching tklib (installer.tcl where it does more than a straight copy), and tcllib installed via its documented installer machinery WITH its critcl-built C accelerators (tcllibc; critcl driving zig cc, bootstrapped by the suite-built tclsh86 - no MS toolchain) - and punkshell's own runtests runs against the suite-built 8.6 runtime with Tk-dependent suites unskipped. Acceptance: from the pinned zig and fetched sources the suite produces a Tk 8.6 the suite tclsh loads (package require Tk with a create/destroy-window verification recorded here) and a matching tklib whose packages resolve (a representative require recorded); a tcllib install via its installer whose accelerators load (package require tcllibc) with the accelerated-vs-pure comparison recorded; punkshell runtests runs against the suite 8.6 runtime and its census is recorded here against a same-day native/kit 8.6 baseline run (same include set), with every difference dispositioned - Tk-dependent suites run unskipped, and any 8.6-runtime-only failures are root-caused or baselined with reasons. ## Context Mirror of G-098 (suite_tcl90 dependency set, achieved 2026-07-20) for the 8.6 arc. Depends on G-099 (suite_tcl86 core buildsuite) - ACHIEVED 2026-07-26 (see goals/archive/G-099-suite-tcl86-buildsuite.md); the 8.6 runtime (tclsh86ts/ tclsh86t + tcl86t.dll + installed lib tree), thread 2.8.13, tclvfs 1.4.2 and the core/thread/tclvfs test-gate this goal extends now exist, so the dependency is met and G-100 is unblocked. 8.6-specific expectations (verify at activation): - Tk core-8-6-branch pairs with the 8.6 runtime; the 9.0 build_tk zig module was derived from tk9 makefile.vc object lists - the 8.6 lists/xlib arrangement differ, so expect a re-derivation rather than reuse. - tcllib trunk supports 8.5+; the same vendored critcl mechanism applies, with critcl driven by the suite tclsh86. tcllibc built per-generation (the punk9wintk903 vfs precedent carries tcl8/tcl9 tcllibc side by side under lib_tcl8/lib_tcl9). - runtests under 8.6: no tcl::process, so -jobs child spawning falls back to blocking execs which CONVOY on windows (documented) - run -singleproc 1 or accept serialized child walls for the census run; record which mode produced the census. - Census baseline: compare against the punk86-class kit runtime results on the same day/include-set (forward-slash path conventions on 8.6 kits noted in project memory) rather than against the 9.x census. - The kit-child 'src' package_mode launch added to runtests for punk kits (G-098 increment 7) applies to 8.6 punk kits too - a plain suite tclsh86 host takes the native path. SEQUENCING: as for G-099 - proposed now, activation recommended after suite_tcl90's G-096 (achieved 2026-07-20) remainder closed and punk905_beta trial concludes. ## Notes - G-116 relationship (recorded 2026-07-24 after overlap review): G-116's zig-built crypto-backend + static tcltls pattern (suite_tcl90) is the reference if the 8.6 dependency set later grows a tls battery - the bi-family payload contract it extends is generation-shaped, not 9-only. - G-005 relationship: same zig toolchain-policy lineage as G-099's note - G-005 owns the make.tcl-integrated vendored-extension build direction; the suites are its arm's-length proving ground. - G-099 (achieved, see goals/archive/G-099-suite-tcl86-buildsuite.md) delivered the patterns this goal extends: the build86.zig recipe + build_tclthread86/ build_tclvfs86 helpers (TEA-shape companion builds against the 8.6 stub lib), the whole-tree library install + tm-module derivation, and the suite_tcl90 G-107 (achieved - goals/archive/G-107-buildsuite-library-tests.md) policy-tier test-gate (test_gate.tcl) - a Tk/tklib/tcllib gate follows the same shape. Two 8.6-specific traps recorded there carry forward: the load-bearing MP_FIXED_CUTOFFS define and TCL_BROKEN_MAINARGS+console-subsystem entry handling (build86.zig comments + README DERIVATION). Also inherited from G-099 Notes: the G-106 powershell console-mode disableraw-via-server path is only tcl9-verified - now that a twapi-less 8.6 runtime exists, run the G-106 recipe against it (goals/archive/G-106-powershell-consolemode-fallback.md).