diff --git a/GOALS-archive.md b/GOALS-archive.md index 14ac9639..0697f8b0 100644 --- a/GOALS-archive.md +++ b/GOALS-archive.md @@ -112,3 +112,7 @@ Acceptance: hygiene stage - in a punkshell checkout `dev project.new` with defau ### G-093 [achieved 2026-07-20] runtests path-glob discovery: fix -include-paths multi-pattern/repeated-flag matching + expose -exclude-paths → detail: goals/archive/G-093-runtests-includepaths-discovery.md Scope: src/tests/runtests.tcl, src/modules/punk/path-999999.0a1.0.tm (treefilenames/globmatchpath as implicated), src/modules/punk/args-999999.0a1.0.tm (only if -multiple implicated), src/tests/ (runner-targeting regression suite), src/tests/AGENTS.md Acceptance: the G-092 four-subtree measurement set spelled X/*** discovers files from all four subtrees under the default *.test tail glob, and the X/** spelling of a base-direct suite matches zero files while emitting a stderr advisory (both pinned as characterization tests); two repeated -include-paths flags naming distinct subtrees in X/*** form discover both and equal the single-value form; the root cause of the original failures is identified and recorded in this file; punk::path 0.4.0 implements *** across pathglob_as_re/globmatchpath/treefilenames with the include and exclude lattice forms separable and pinned in the punk::path suite; -exclude-paths is exposed on runtests (argdoc + src/tests/AGENTS.md documented, accumulate semantics matching -include-paths, exclusion winning over inclusion for the same file) and a full run excluding a named subtree discovers exactly the default-discovery file list minus that subtree; -serial-paths classifies by the same directory-of-file reading; a regression suite under src/tests covers both options across single-value multi-pattern, repeated-flag, lattice-form and tail-glob-present/absent combinations plus include/exclude interaction; a full-suite default-discovery run before and after the changes compares PARITY ok via scriptlib/developer/runtests_parity.tcl (default '**' discovery with no exclusions must be unaffected); src/tests/AGENTS.md path-targeting wording is reconciled with the verified semantics. + +### G-076 [achieved 2026-07-20] Adopt upstream tcl9 dead-console fix: shared version gate for watchdog and help tcl warning → detail: goals/archive/G-076-tcl9-deadconsole-fix-adoption.md +Scope: src/modules/punk/lib-999999.0a1.0.tm (punk::lib::check), src/modules/punk/repl-999999.0a1.0.tm (repl::start watchdog arming), src/modules/punk/AGENTS.md, src/tests/modules/punk/lib/testsuites/lib/checkbugs.test +Acceptance: 'help tcl' on an affected runtime shows the warning with the f10d91c2d3 link and mitigation note; the applicability decision is a pure facts-in/verdict-out classifier proc with tests (libbug_udp_threadexit_applies precedent); repl::start arms the watchdog only when the same classifier reports the runtime affected, with live-console/piped/8.6 behaviour unchanged; the fixed-in constant is set only after the G-039 kill procedure, re-run with the watchdog disabled on a runtime containing the upstream fix (an official release is not required - a runtime built from upstream sources at or past the fix merge qualifies), shows the repl exiting cleanly via the script-visible eof path - until then every Tcl 9 windows runtime is treated as affected. diff --git a/GOALS.md b/GOALS.md index 8569ea91..bb660a9d 100644 --- a/GOALS.md +++ b/GOALS.md @@ -286,10 +286,6 @@ Detail: goals/G-073-punkargs-unavailable-choices.md Scope: src/modules/punk/args-999999.0a1.0.tm (id lookup/update_definitions prefix handling, usage/arg_error rendering of package-level ids), src/modules/punk/ns-999999.0a1.0.tm (cmdhelp/help-system surface), src/modules/punk/mix/#modpod-templates-999999.0a1.0/templates/modules/template_module-0.0.4.tm (template block as touched/verified), src/tests/modules/punk/args/testsuites/args/ + src/tests/modules/punk/ns/testsuites/ns/ (new coverage) Detail: goals/G-075-punkargs-package-ids.md -### G-076 [active] Adopt upstream tcl9 dead-console fix: shared version gate for watchdog and help tcl warning -Scope: src/modules/punk/lib-999999.0a1.0.tm (punk::lib::check), src/modules/punk/repl-999999.0a1.0.tm (repl::start watchdog arming), src/modules/punk/AGENTS.md, src/tests/modules/punk/lib/testsuites/lib/checkbugs.test -Detail: goals/G-076-tcl9-deadconsole-fix-adoption.md - ### G-077 [proposed] punk executable -e one-liner support: make the tclsh-agent instinct work Scope: src/vfs/_config/punk_main.tcl (top-level arg dispatch), src/lib/app-punkscript/punkscript.tcl (script subcommand arg forms), src/tests/shell/testsuites/punkexe/scriptexec.test Detail: goals/G-077-punkexe-dash-e-oneliner.md diff --git a/goals/G-096-zig-buildsuite-piperepl.md b/goals/G-096-zig-buildsuite-piperepl.md index fb81e397..fa12e528 100644 --- a/goals/G-096-zig-buildsuite-piperepl.md +++ b/goals/G-096-zig-buildsuite-piperepl.md @@ -31,7 +31,8 @@ Acceptance: from a clean checkout plus a punk-getzig-fetched pinned zig, the sui None of these files are VCS-tracked anywhere - recovery into the suite is the durability fix. - Recipe baseline: the validated build provenance in - goals/G-076-tcl9-deadconsole-fix-adoption.md (2026-07-20 entries) - build90.zig / + goals/archive/G-076-tcl9-deadconsole-fix-adoption.md (2026-07-20 entries; G-076 + achieved 2026-07-20) - build90.zig / build905.zig with zig 0.14.0-dev.2074, the fresh-checkout generated-file preconditions (tclUuid.h from manifest.uuid; tclsh.exe.manifest from its .in with @TCL_WIN_VERSION@/@MACHINE@), and the 9.0.5+ mingw_unicode_entry_point requirement @@ -44,7 +45,7 @@ Acceptance: from a clean checkout plus a punk-getzig-fetched pinned zig, the sui ziglang.org, community-mirrors.txt and the punkbin gitea mirror. bin/tools currently holds zig 0.15.1/0.15.2/0.16.0-dev toolchains; the known-good recipe used a manual C:/zig install (0.14.0-dev.2074). -- Toolchain policy (user 2026-07-20, recorded in G-076 and agent memory): zig is the only +- Toolchain policy (user 2026-07-20, recorded in G-076 - achieved, archived - and agent memory): zig is the only build mechanism approved to become part of the punkshell project; msys/mingw and MS toolchains are test/validation only (MS last resort). @@ -85,7 +86,8 @@ Acceptance: from a clean checkout plus a punk-getzig-fetched pinned zig, the sui - Related goals: G-005 (zig build infrastructure - this suite is its first concrete increment), G-018 (zig plain tclsh kits), G-006 (prebuilt artifact download consent; punkbin mirror overlap), G-004 (no committed binaries - untracked bin/tools and _build - align), G-076 (verification-runtime provenance this recipe formalizes), G-038 + align), G-076 (achieved 2026-07-20 - verification-runtime provenance this recipe + formalizes; goals/archive/G-076-tcl9-deadconsole-fix-adoption.md), G-038 (punkshell-level piped session continuity - the punk-repl analogue of piperepl), G-060 (qemu cross-platform matrix - see G-097 notes on the windows-sandbox experiments), G-089 (scriptlib in kits; the scriptapps/bin deployment surface). diff --git a/goals/G-076-tcl9-deadconsole-fix-adoption.md b/goals/archive/G-076-tcl9-deadconsole-fix-adoption.md similarity index 100% rename from goals/G-076-tcl9-deadconsole-fix-adoption.md rename to goals/archive/G-076-tcl9-deadconsole-fix-adoption.md diff --git a/src/modules/punk/lib-999999.0a1.0.tm b/src/modules/punk/lib-999999.0a1.0.tm index 247574bb..613f81ac 100644 --- a/src/modules/punk/lib-999999.0a1.0.tm +++ b/src/modules/punk/lib-999999.0a1.0.tm @@ -258,7 +258,7 @@ tcl::namespace::eval punk::lib::check { #G-039 kill procedure on a zig-built core-9-0-branch runtime with the watchdog disarmed - the #dead console arrived as a readable fileevent and the repl exited via the normal eof path #(requires the punk::repl 0.5.2 repl_handler guard; an official release is not required per the - #amended acceptance - see goals/G-076-tcl9-deadconsole-fix-adoption.md 2026-07-20 entries). + #amended acceptance - see goals/archive/G-076-tcl9-deadconsole-fix-adoption.md 2026-07-20 entries). variable tclbug_console_deadspin_fixed_in "9.0.5" #pure classifier, separated for testability - facts in, verdict out