Browse Source

G-031 Progress: increment 2 recorded (split landed punkshell-side); Approach split-point decision noted

Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
master
Julian Noble 1 week ago
parent
commit
f3d86b8fb3
  1. 42
      goals/G-031-componentized-kit-boot.md

42
goals/G-031-componentized-kit-boot.md

@ -45,6 +45,13 @@ permanently own - a thousand lines of boot code.
exist yet) - it is sourced by vfs-relative path from the thin main. The
default dispatch portion runs post-boot and may be package-based if that
proves cleaner; record the split point here when decided.
DECIDED 2026-08-02 (increment 2): the default dispatch stays IN the core
file - one sourced file, no package hop; the dispatch handlers are already
one-line package requires, so a package-based dispatch would add a moving
part for no reduction. The core is a naked script body (no apply wrapper of
its own) sourced from inside the thin main's one-level 'apply {args {...}}'
frame - the dispatch's 'uplevel 1' semantics (evaluate at global level) are
preserved by construction and the contract is stated in the core header.
- Registration model: the thin main declares subcommands (name -> handler
package/command, plus optional punk::args definition id for G-032) before
invoking the default dispatch; built-ins (tclsh/shellspy/punk/shell/script,
@ -181,10 +188,31 @@ permanently own - a thousand lines of boot code.
Minted + promoted (bootsupport, vfscommon); layout make.tcl copies (basic,
project-0.1, templates modpod) synced by the modules step. Gate probed live
against a bootsupport-only tm path (0.7.0 served, collision fixture ok=0).
- Remaining for acceptance: the split itself (boot core extraction + thin
main handover), project_main.tcl rebirth as the commented sample + README
boot-entry sections, the punk::args::moduledoc boot-core package, derived
project proof (tomlish), G-025 vintage tie-in, behaviour parity exercise
across dispatch cases and vfs types. Collision gate is unit+probe covered
but not yet exercised by a real bake; consider a 'make.tcl check' surface
line for it when the moduledoc lands.
- 2026-08-02 increment 2 LANDED - the split itself, punkshell side (0.45.0):
boot core extracted verbatim-plus-contract to src/vfs/_config/punkboot_core.tcl
(::punkboot::core_version 0.1.0), delivered as <vfsroot>/punkboot/core.tcl
by a new vfscommonupdate step; punk_main.tcl reborn as the thin main
(publishes launch_args/main_script, ==CUSTOMIZE== declaration points,
three-candidate core lookup: vfs root, parent dir for nested app/main.tcl,
sibling master for source-tree execution). Registration model live:
project_subcommands merge in (built-ins unshadowable, reported+ignored on
collision), launch_defaults noargs/unknownfirst declared not hardcoded.
Parity evidence: full punkexe suite 110/0 against freshly baked punk902z;
kitmountpoint 4/4 (8.6-backport exe-path mount, 32-bit modern //zipfs:/app,
64-bit kit, unattributed-mount stderr pin) - the sibling-master candidate
exists BECAUSE those tests run punk_main.tcl as a plain script under raw
runtimes (a supported shape to preserve); registration model exercised via
a scratch fake.vfs under plain tclsh (declared subcommand + tool-style
defaults + shadow refusal); 11-kit default bake, only known-baseline
warnings; punk86 metakit/starkit 8.6.17 smoke green. cookfs branch carried
verbatim - NO cookfs kit is currently mapped in mapvfs.toml to exercise it
(stale bin/punk9cook.exe predates the split and shows an old monolith
vintage - not a regression).
- Remaining for acceptance: layout _config copies (OUTSIDE the sync channels
- the 0.43.0 lesson - hand-swept deliberately next increment) and
project_main.tcl rebirth as the commented thin sample + README boot-entry
sections; the punk::args::moduledoc boot-core package (runtime-queryable
API doc); derived-project proof (tomlish); G-025 vintage tie-in (core
carries core_version; kit-level reporting pending). Collision gate now
exercised by real bakes (11-kit run clean); 'make.tcl check' surface line
still a candidate when the moduledoc lands.

Loading…
Cancel
Save