From c5c315a0fef1b049950f77bfceb193a25620ded9 Mon Sep 17 00:00:00 2001 From: Julian Noble Date: Mon, 20 Jul 2026 04:36:59 +1000 Subject: [PATCH] G-096 progress: increment-2 record (rename done, 0.15 migration reverted to 0.14-validated recipe); scriptapps AGENTS ref updated Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com --- goals/G-096-zig-buildsuite-piperepl.md | 30 +++++++++++++++++++++++--- src/scriptapps/AGENTS.md | 2 +- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/goals/G-096-zig-buildsuite-piperepl.md b/goals/G-096-zig-buildsuite-piperepl.md index 9b4b59dd..7d183d05 100644 --- a/goals/G-096-zig-buildsuite-piperepl.md +++ b/goals/G-096-zig-buildsuite-piperepl.md @@ -142,12 +142,36 @@ Acceptance: from a clean checkout plus a punk-getzig-fetched pinned zig, the sui fix); zip shell tzdata working; tcl9thread301.dll builds from CURRENT thread trunk (3.0.1) and loads. vfs/vlerq dlls also built. +### 2026-07-20 increment 2: punk-getzig rename + naming policy; 0.15 migration attempted then reverted + +- getzig -> punk-getzig: scriptset renamed (bash/ps1/_wrap.toml; getzig_original.polyglot + kept as historical reference), payload self-references updated, and the ziglang.org + release URL now derives its version from the single $releasearchive pin (it carried a + separately hardcoded 0.15.1 against the 0.15.2 archive). Re-wrapped via scriptwrap + multishell (checkfile ERROR-free; the two boundary-scan warnings are the + documented-normal polyglot ones). bin: getzig.cmd removed, punk-getzig.cmd tracked, + punk-getzig.ps1 twin (byte-copy) refreshed; bin/AGENTS.md gains the punk- naming + policy section (exceptions dtplite/sdx/kettle wrappers + getpunk; sweep = G-097); + src/scriptapps/AGENTS.md reference updated. +- zig 0.15.2 migration attempted (bin/tools/zig = the getzig-managed 0.15.2): a + scripted API transform (addExecutable/addObject root_module + createModule, + addShared/StaticLibrary -> addLibrary with .linkage, std.ArrayList -> + std.array_list.Managed, b.host -> b.graph.host) got the recipe to compile up to a + strict-format print issue, but the user flagged mid-work that the 0.14->0.16 churn is + significant and the 2024 zig target comes first - REVERTED to the committed + 0.14-validated recipe and re-verified PASS (9.0.5 shells, zig 0.14.0-dev.2074). + The transformer script and findings are preserved (scratchpad zig015_migrate.tcl; + known remaining 0.15 items: slice-of-strings debug.print format, plus whatever the + next compile reveals). Pin-path decision put to the user: official 0.14.1 release + as-is, punkbin-hosted 0.14.0-dev.2074, or completing the 0.15.2 migration. + Remaining for acceptance: -- punk-getzig rename (scriptset + both bin wrapper twins, old names removed, - references updated) and the naming-policy section in bin/AGENTS.md. - Pin an exact zig version retrievable via punk-getzig and have the suite consume it - (driver currently takes -zig / PUNK_ZIG / PATH; validated with 0.14.0-dev.2074). + (driver currently takes -zig / PUNK_ZIG / PATH; validated with 0.14.0-dev.2074; + pin path = user decision in flight). Note punk-getzig currently pins a single + $releasearchive - a per-version fetch argument (or suite-side fetch) is likely + wanted so the suite pin and the general-tools pin can differ. - Rebase the piperepl patch onto current core-9-0-branch sources; build a piperepl-enabled variant; behaviour matrix (TCLSH_PIPEREPL unset == stock on tty/piped/script-arg forms; =1 with a script setting ::tclsh(dorepl) 1 -> live diff --git a/src/scriptapps/AGENTS.md b/src/scriptapps/AGENTS.md index a4a8c0fa..249d9d69 100644 --- a/src/scriptapps/AGENTS.md +++ b/src/scriptapps/AGENTS.md @@ -13,7 +13,7 @@ Standalone Tcl scripts that serve as entry points for Punk applications and util - Scripts here are invoked directly by the user or by build tools, not loaded as packages. - Wrapper configs (`.toml` files) define how scripts are packaged as platform executables. -- `_wrap.toml` scriptsets are the SOURCE of the generated polyglot `.cmd` scripts in `/bin`, and bin-deployed scriptsets live in the `bin/` subfolder here (e.g `bin/runtime.ps1` + `bin/runtime.bash` + `bin/runtime_wrap.toml` -> `/bin/runtime.cmd` via `punk::mix::commandset::scriptwrap::multishell runtime -askme 0`, run from `src/scriptapps/bin`, alongside the `getzig.*` scriptset). Fixes to a `bin/*.cmd` polyglot are made in the scriptset sources and re-wrapped - never in the output file. Regenerate and commit the bin output together with payload changes: `src/tests/modules/punk/mix/testsuites/scriptwrap/multishell.test` pins the runtime scriptset round-trip byte-identical against `bin/runtime.cmd`, and `src/tests/shell/testsuites/binscripts/dtplite.test` pins the dtplite scriptset (`dtplite.tcl` + `dtplite_wrap.toml`, wrapped from this folder) against `bin/dtplite.cmd` the same way. Payload scripts embedded in polyglots must be LF-only - the wrap embeds payload bytes verbatim and the multishell output contract is LF-only. +- `_wrap.toml` scriptsets are the SOURCE of the generated polyglot `.cmd` scripts in `/bin`, and bin-deployed scriptsets live in the `bin/` subfolder here (e.g `bin/runtime.ps1` + `bin/runtime.bash` + `bin/runtime_wrap.toml` -> `/bin/runtime.cmd` via `punk::mix::commandset::scriptwrap::multishell runtime -askme 0`, run from `src/scriptapps/bin`, alongside the `punk-getzig.*` scriptset). Fixes to a `bin/*.cmd` polyglot are made in the scriptset sources and re-wrapped - never in the output file. Regenerate and commit the bin output together with payload changes: `src/tests/modules/punk/mix/testsuites/scriptwrap/multishell.test` pins the runtime scriptset round-trip byte-identical against `bin/runtime.cmd`, and `src/tests/shell/testsuites/binscripts/dtplite.test` pins the dtplite scriptset (`dtplite.tcl` + `dtplite_wrap.toml`, wrapped from this folder) against `bin/dtplite.cmd` the same way. Payload scripts embedded in polyglots must be LF-only - the wrap embeds payload bytes verbatim and the multishell output contract is LF-only. - The `spud/` directory holds the spud build tool's app scripts. - The `tools/` directory holds miscellaneous build and deployment utilities.