Browse Source

Goals: G-153 achieved flip - archive move + index swap + reference sweep

Detail file moved goals/ -> goals/archive/ (pure rename; content edits
landed in the companion commit c840af84). Index entry moved to
GOALS-archive.md with the amended nine-patch Acceptance as achieved.
Live-tier sweep: G-101 Notes now carry the delivered-leadup summary +
actionable pointers (concrete pin records, mk4too/oomk facts,
static-embed recipe location, one-byte varint observation); G-130
references marked achieved + upgraded to the measured no-new-imports
fact; G-131 metakit-arm note marked achieved with pin. goals_lint
clean (84 active / 70 archived).

Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
master
Julian Noble 7 days ago
parent
commit
29d606fb21
  1. 4
      GOALS-archive.md
  2. 4
      GOALS.md
  3. 24
      goals/G-101-tcl86-kit-container-strategy.md
  4. 13
      goals/G-130-32bit-windows-buildsuites.md
  5. 13
      goals/G-131-boot-payload-autodetection.md
  6. 0
      goals/archive/G-153-metakit-punk-zig-port.md

4
GOALS-archive.md

@ -291,6 +291,10 @@ Acceptance: against a tool-shaped multiform definition (literal action leaders;
Scope: src/project_layouts/ (.fossil-settings payloads); src/make.tcl (thin-layout sync, if derivation chosen); src/modules/punk/mix/commandset/project-999999.0a1.0.tm (generation-time fossil commit path)
Acceptance: dev project.new from each binary-affected layout (project-0.1, plus one injection-only layout e.g basic) completes its trailing fossil initial commit cleanly (FOSSIL_HOME diverted, no binary prompt/abort); the generated project's versioned .fossil-settings carries binary-glob with the recorded value; the seeding path (hand-authored per layout vs derived via the make.tcl template refresh) is decided and documented in this file; the G-136 relationship (icon payload is binary - same abort class) is recorded. (Achieved with a companion crlf-glob payload extension: a second abort class - CRLF endings on injected bootsupport content - surfaced once the binary aborts were fixed; decisions and verification in the archived detail file.)
### G-153 [achieved 2026-08-02] metakit_punk zig port: fork-as-upstream Mk4tcl for the 8.6 kit container → detail: goals/archive/G-153-metakit-punk-zig-port.md
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)
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).
### G-154 [achieved 2026-08-02] tclparser_punk zig build: fork-as-upstream parser dll for kits and the G-070 oracle → detail: goals/archive/G-154-tclparser-punk-zig-build.md
Scope: external fork repo c:/repo/jn/tclparser_punk (gitea jn/tclparser - the build lane lands there); src/buildsuites/suite_tcl90/sources.config and src/buildsuites/suite_tcl90/build.zig.zon (ready-to-land tclparser records drafted in the detail file; landing them is suite-consumption era); src/buildsuites/suite_tcl86/sources.config and src/buildsuites/suite_tcl86/build.zig.zon (same - the 8.6 records); src/vendorlib_tcl8/win32-x86_64/tclparser1.8 and src/vfs/*/lib_tcl9/tclparser1.9 (vendored third-party parser packages - replacement targets at consumption, not touched by this goal); goals/G-070-pure-tcl-tclparser.md (consumer - parity oracle and corpus seed)
Acceptance: In c:/repo/jn/tclparser_punk under the pinned zig 0.16.0, 'zig build' (lazy zon tcl pins, no local source trees) and 'zig build dual' pass, producing tcl9tclparser19.dll and tclparser19t.dll for both windows arches; 'zig build test -Dtclsh9=<tclsh> -Dtclsh86=<tclsh>' passes the ported 114-case upstream suite for both generations under suite-built shells with the transcript recorded in this file; both upstream snapshots are landed byte-frozen with the provenance table and root LICENSE (license.terms verbatim); a punk kit-class shell for each generation loads the built dll and completes a parse-command round trip recorded in this file; and the fork commit is pinned with ready-to-land sources.config and build.zig.zon record text for both suites captured in this file.

4
GOALS.md

@ -414,7 +414,3 @@ Detail: goals/G-150-cmdhelp-form-narrowing.md
Scope: src/modules/punk/args-999999.0a1.0.tm (parse-result presentation); src/tests/modules/punk/args/testsuites/args/
Detail: goals/G-151-punkargs-annotated-success-render.md
### G-153 [active] metakit_punk zig port: fork-as-upstream Mk4tcl for the 8.6 kit container
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)
Detail: goals/G-153-metakit-punk-zig-port.md

24
goals/G-101-tcl86-kit-container-strategy.md

@ -171,12 +171,24 @@ unblocked; activation is the user's call.
fork-difference analysis - superseding TEMP_REFERENCE/metakit_jnorthrup as the
metakit reference of record (the TEMP_REFERENCE trees named in Scope remain
convenient machine-local clones; the fork repo is the versioned home). The
leadup port work is drafted as G-153 (proposed): standalone zig build (core +
Mk4tcl dll/static shapes, win32-x86_64 + win32-ix86 from day one per G-130),
the KitCreator patch-lineage audit this file flags as a required step, the
sdx-under-tclsh86t circularity probe enabler (option (a) in the sdx section),
and ready-to-land sources.config/zon record text for suite consumption. The
fork/suite boundary is held there: the fork owns the storage engine + mk::*
leadup port work G-153 is ACHIEVED 2026-08-02 (see
goals/archive/G-153-metakit-punk-zig-port.md) and delivered everything this
goal consumes: standalone zig build (core + Mk4tcl dll/static shapes,
win32-x86_64 + win32-ix86, interchange-verified), the KitCreator
patch-lineage audit this file flags as a required step (nine patches, ZERO
to port - disposition table in the fork's src/reference/AGENTS.md), the
sdx-under-tclsh86t circularity probe enabler (the suite-built tclsh86t
loads the dll - option (a) in the sdx section is now runnable), and
CONCRETE ready-to-land sources.config/zon records (fork pin 6a92b479;
record text in the archived detail's Notes). Also actionable here: mk4too
is bundled in the dll (link-required, plus the oomk consumer - decision in
the fork's src/AGENTS.md); the oomk starkit at metakit_punk
src/reference/oomk/ is a live mk4-starkit container specimen; the
static-embed shell recipe is preserved at TEMP_REFERENCE/metakit-mk4embed/
(kit-class shell + engine, import surface measured identical to stock
tclsh86ts); and a one-byte writer-arch varint difference (offset 169,
read-back identical both ways) is recorded for container work to be aware
of. The fork/suite boundary held: the fork owns the storage engine + mk::*
binding only; kit boot machinery (kitInit/boot.tcl/setupvfs analogs) stays
THIS goal's suite-side territory, and mk4vfs.tcl ships with tclvfs.
- G-154 (achieved 2026-08-02, archived) recorded pinned ready-to-land

13
goals/G-130-32bit-windows-buildsuites.md

@ -96,7 +96,7 @@ the other's generation.
(punkluck86 8.6.10 + punk91ix86 9.1b0, WoW64) - a first-party 32-bit package candidate
for this lane's payload growth; see goals/archive/G-154-tclparser-punk-zig-build.md.
- 2026-08-02 CRT MEASURED (dumpbin /dependents import tables, recorded from the G-153
planning session) - the floor statement this goal's artifacts inherit. All zig-built
planning session; G-153 achieved 2026-08-02 - goals/archive/G-153-metakit-punk-zig-port.md) - the floor statement this goal's artifacts inherit. All zig-built
suite binaries (tclsh9.0.5*.exe family, tclsh905.exe, suite_tcl86 tclsh86ts.exe /
tclsh86t.exe / tcl86t.dll) link the UCRT dynamically (api-ms-win-crt-*-l1-1-0
forwarders) plus classic OS dlls only (KERNEL32/USER32/ADVAPI32/NETAPI32/USERENV/
@ -151,6 +151,11 @@ the other's generation.
9-line kit payload open item (the 8.6 runtime is twapi-less already; this goal's
own acceptance uses the luck-shipped twapi 4.7.2 32-bit dll as the load target).
First-exe firewall consent applies per new artifact path as usual. G-153
(proposed) bakes the ix86 axis into the metakit_punk port from day one (dual-arch
tests + mk4-format x64-writer/ix86-reader interchange check) - the 8.6 kit-side
consumer of this goal's runtimes once G-101 decides the container.
(achieved 2026-08-02 - goals/archive/G-153-metakit-punk-zig-port.md) baked the
ix86 axis into the metakit_punk port from day one and DELIVERED it: dual-arch
tests green natively via WoW64, mk4-format x64<->ix86 interchange verified both
directions, the ix86 Mk4tcl dll smoke-passing under the luck 8.6.10 shell, and
the static-embed shell measured import-identical to stock tclsh86ts (this
goal's C++-embed/no-new-imports prediction upgraded to a direct measurement) -
the 8.6 kit-side consumer of this goal's runtimes once G-101 decides the
container.

13
goals/G-131-boot-payload-autodetection.md

@ -78,11 +78,14 @@ independently-written branches.
goal costed at ~23 `Tcl_Size` call sites plus one `Tcl_ChannelType` and five
`Tcl_ObjType` initialisers. This goal runs ALONGSIDE G-101's decision - it does not wait
on it to be designed - but it cannot complete before that port work.
- 2026-08-02: G-153 (proposed) is where that port work starts - the fork-as-upstream
metakit_punk repo builds the storage engine + Mk4tcl under the pinned zig for the
8.6 side (dll + static-embed shapes, win32-x86_64 + win32-ix86). The Tcl 9 mk4tcl
port stays future work at the G-101-surveyed cost; G-153 only keeps the binding's
version-sensitive spots localized so this goal's 9-side arm stays bounded.
- 2026-08-02: G-153 (achieved 2026-08-02 - see
goals/archive/G-153-metakit-punk-zig-port.md) delivered that port work - the
fork-as-upstream metakit_punk repo builds the storage engine + Mk4tcl under the
pinned zig for the 8.6 side (dll + static-embed shapes, win32-x86_64 +
win32-ix86, both smoke-verified; pin 6a92b479 with ready-to-land suite records
in the archived detail). The Tcl 9 mk4tcl port stays future work at the
G-101-surveyed cost; the port kept the binding's version-sensitive spots
localized so this goal's 9-side arm stays bounded.
- Related: G-031 - the thin-main/shared-boot-core restructure. Container detection belongs
in the boot core, not in a per-project main; whichever lands second adopts the other's
shape. `project_main.tcl` carries the same code as `punk_main.tcl` today, which is why

0
goals/G-153-metakit-punk-zig-port.md → goals/archive/G-153-metakit-punk-zig-port.md

Loading…
Cancel
Save