diff --git a/GOALS.md b/GOALS.md index 6464b99e..3fbe3f5d 100644 --- a/GOALS.md +++ b/GOALS.md @@ -118,7 +118,7 @@ Detail: goals/G-016-projects-work-git-discovery.md Scope: AGENTS.md (root) or a child doc it indexes (guidance content only - no code) Detail: goals/G-017-agent-project-discovery.md -### G-018 [proposed] Zig-built plain tclsh kits: self-contained zip-based executables without punk infrastructure +### G-018 [superseded] Zig-built plain tclsh kits: self-contained zip-based executables without punk infrastructure Scope: build.zig / build.zig.zon (per G-005), src/runtime/, src/make.tcl integration Detail: goals/G-018-zig-plain-tclsh-kits.md @@ -367,7 +367,7 @@ Scope: src/buildsuites/suite_tcl90/ (driver split: zig-layer fetch/generate/comp Detail: goals/G-102-buildsuite-zig-bootstrap.md ### G-103 [proposed] runtime kit family from buildsuites: plain / punk / bi kits with attached batteries + artifact metadata -Scope: src/buildsuites/suite_tcl90/ (kit assembly steps in recipe/driver; pattern for later suites), src/vfs/_config + src/runtime/mapvfs.config (as consumers of the new runtime names), punkbin repo layout + metadata (c:/repo/jn/punkbin; compatible repos), src/scriptapps runtime scriptset ('runtime.cmd' list/use - punk-runtime rename pending G-097), goals/G-018 (subsumption review) +Scope: src/buildsuites/suite_tcl90/ (kit assembly steps in recipe/driver; pattern for later suites), src/vfs/_config + src/runtime/mapvfs.config (as consumers of the new runtime names), punkbin repo layout + metadata (c:/repo/jn/punkbin; compatible repos), src/scriptapps runtime scriptset ('runtime.cmd' list/use - punk-runtime rename pending G-097) Detail: goals/G-103-runtime-kit-family.md ### G-104 [proposed] make.tcl buildsuite surface: list / info / build diff --git a/goals/G-018-zig-plain-tclsh-kits.md b/goals/G-018-zig-plain-tclsh-kits.md index 1efdfb68..24d45252 100644 --- a/goals/G-018-zig-plain-tclsh-kits.md +++ b/goals/G-018-zig-plain-tclsh-kits.md @@ -1,6 +1,6 @@ # G-018 Zig-built plain tclsh kits: self-contained zip-based executables without punk infrastructure -Status: proposed +Status: superseded Scope: build.zig / build.zig.zon (per G-005), src/runtime/, src/make.tcl integration Goal: developers can use the G-005 zig build system to produce self-contained zip-based tclsh executables that carry no punk-specific infrastructure (no punk boot layer, punk modules, or punk apps) - plain tclsh kits usable independently of the punkshell product. Acceptance: a documented zig invocation on a clean checkout (zig toolchain available) produces a zip-based tclsh executable for at least one target platform that runs conventional tclsh invocations (` script.tcl args`, piped stdin) on a machine with no Tcl installation; a listing of the kit's mounted/zip contents shows stock Tcl (plus any declared stock runtime deps) and no punk namespaces, punk boot files, or punkshell apps; the punk-flavoured executables remain producible alongside. @@ -55,3 +55,15 @@ This defines one end of a deliberate spectrum of buildable executables: that want Tk ship it as a loadable package (as the punk Windows kit already does - `package require Tk` from the tclsh-style executable, console retained). Applies to plain kits here and punk kits alike. +- SUPERSEDED 2026-07-20 (user decision): the 'completely plain' tclsh niche is + already served by other build systems/distributions and is not a punkshell + product role. The substance this goal asked for nonetheless exists as + suite_tcl90's bootstrap intermediate (tclsh90szip.exe: static tclsh 9.0.5 + with the tcl library in its attached zip; stock script/piped invocations, + no punk namespaces) - it remains READILY ACCESSIBLE as a build product of + every suite run (_build//out/bin), deliberately NOT showcased or + published as a product. The showcased family lives in G-103, whose 'plain' + member is plain-for-punk-purposes (no piperepl patch, but batteries - + Thread/tclvfs/tcllib - attached), close enough to plain for our purposes. + make.tcl surfacing of suite builds is G-104. The executable-spectrum framing + this goal contributed remains referenced from G-019/G-023/G-031/G-033. diff --git a/goals/G-102-buildsuite-zig-bootstrap.md b/goals/G-102-buildsuite-zig-bootstrap.md index 01d819f1..57530944 100644 --- a/goals/G-102-buildsuite-zig-bootstrap.md +++ b/goals/G-102-buildsuite-zig-bootstrap.md @@ -43,8 +43,9 @@ checkouts without a preinstalled fossil are ever wanted. Relationships: G-005 (this formalizes its zig-build-infrastructure intent for the buildsuite path), G-006 (consent-gated artifact/toolchain download - the zig -acquisition gate), G-018 (plain tclsh kits - substantially delivered by -tclsh90szip.exe; reconciliation candidate), G-096 (origin discussion in its notes; +acquisition gate), G-018 (superseded 2026-07-20 - the bare bootstrap-intermediate +tclsh stays an accessible, unshowcased build product; the showcased 'plain' niche +is G-103's plain-for-punk member), G-096 (origin discussion in its notes; the suite.tcl scaffolding this splits), G-099 (sequencing interplay below). SEQUENCING: proposed 2026-07-20. Natural slot is before or alongside G-099 diff --git a/goals/G-103-runtime-kit-family.md b/goals/G-103-runtime-kit-family.md index a9e28c51..a0081e31 100644 --- a/goals/G-103-runtime-kit-family.md +++ b/goals/G-103-runtime-kit-family.md @@ -1,7 +1,7 @@ # G-103 runtime kit family from buildsuites: plain / punk / bi kits with attached batteries + artifact metadata Status: proposed -Scope: src/buildsuites/suite_tcl90/ (kit assembly steps in recipe/driver; pattern for later suites), src/vfs/_config + src/runtime/mapvfs.config (as consumers of the new runtime names), punkbin repo layout + metadata (c:/repo/jn/punkbin; compatible repos), src/scriptapps runtime scriptset ('runtime.cmd' list/use - punk-runtime rename pending G-097), goals/G-018 (subsumption review) +Scope: src/buildsuites/suite_tcl90/ (kit assembly steps in recipe/driver; pattern for later suites), src/vfs/_config + src/runtime/mapvfs.config (as consumers of the new runtime names), punkbin repo layout + metadata (c:/repo/jn/punkbin; compatible repos), src/scriptapps runtime scriptset ('runtime.cmd' list/use - punk-runtime rename pending G-097) Goal: buildsuites produce a defined FAMILY of runnable, self-contained runtime kits - executables whose info library and core batteries live in the initially attached zip, depending on no external filesystem tree: (1) a PLAIN tclsh kit carrying loadable Thread, tclvfs with as many vfs::* packages as we have, and tcllib+tcllibc; (2) a PUNK kit = the plain kit with the TCLSH_PIPEREPL patch applied and ENABLED BY DEFAULT (env opt-out, not opt-in - users wanting stock behaviour take the plain kit); (3) BI (batteries-included) punk kits additionally carrying libraries WE BUILD - Tk first; sqlite3/tdom/twapi as future build targets - all in the attached zip. These are the project's 'runtime' executables: punkbin candidates carrying metadata (variant, component versions, target platform, provenance) that runtime list/use subcommands can surface. Acceptance: suite_tcl90 produces named artifacts for at least plain, punk, and one bi (+Tk) kit; each verified self-contained from a path with no external Tcl visible (info library resolves into the attached zip; package require checks for Thread, vfs + representative vfs::* packages, tcllib module + tcllibc acceleration engaged; bi adds Tk create/destroy) with the checks recorded here; the punk kit demonstrates piperepl active by default and disabled via the documented env opt-out, the plain kit demonstrates stock behaviour (no patch); artifact metadata (variant, versions, target, source provenance) is emitted alongside the binaries in the punkbin layout and surfaced by the runtime scriptset's list/use; the naming scheme for family members is documented and mapvfs.config consumes the punk/bi runtimes; the 8.6 family variant is explicitly deferred to the G-101 container investigation (static vfs / metakit patching questions). @@ -37,8 +37,15 @@ BUILDSUITE BOOTSTRAP configs which must parse dependency-free, a distinct concer punkbin currently carries sha1sums.txt (+ minisign) - metadata extends, not replaces, that. Compatible repos (punkbin mirrors) carry the same records. -Relationships: G-018 (zig plain tclsh kits) is substantially subsumed by the plain -family member - reconciliation/retirement decision flagged for the user. G-102 +Plain-niche boundary (user 2026-07-20): 'completely plain' tclsh executables are +already available from other build systems/distributions - punkshell does not +compete for that niche, and G-018 is SUPERSEDED accordingly. This family's 'plain' +member is plain-for-punk-purposes: no piperepl patch, but batteries attached. The +truly bare tclsh built during bootstrap (the tclsh90szip-class intermediate) stays +READILY ACCESSIBLE as an ordinary suite build product (_build//out/bin) but +is not showcased or published as a family member. + +Relationships: G-018 (superseded 2026-07-20 - see its closing note). G-102 (zig-driver hybrid): the family members become named build-graph products. G-105 (cross-target): family x target is the punkbin artifact matrix - metadata carries the target dimension. G-101: the 8.6 family variant depends on the container