Browse Source
Self-build guard (user-identified gap): when make.tcl is driven by a built punk executable, the kit whose deployed executable is the running interpreter is now skipped before any build work, with guidance to rerun under tclsh or a different kit. Previously the pre-deploy process sweep matched processes by executable name only and would taskkill the build's own process mid-run with -k (suicide: remaining kits unbuilt, no recap, dangling punkcheck event); without -k only the polite kill's refusal on console processes saved the run, and the deploy delete of the running image would fail with a cryptic message. The sweep additionally excludes the build's own pid unconditionally, covering a same-named copy driving the build from a non-deploy path. Informational and update subcommands were already safe (they exit before the kit machinery); building other kits from a punk exe remains supported. Verified live: 'punk91 src/make.tcl vfs -confirm 0' skips punk91.exe with the warning and processes the other kits normally; plain tclsh runs unaffected. libunknown quietening: 'punkexe src/make.tcl <cmd>' emitted "punk::libunknown::init already done - unnecessary call? info frame -1: ..." because punk_main.tcl had already initialised libunknown (renaming ::package) and make.tcl unconditionally re-sourced the bootsupport copy and called init again, tripping init's load-bearing rename guard. make.tcl now leaves an already-active libunknown in place (no re-source - also avoids silently swapping the running copy for the bootsupport copy when versions diverge); plain tclsh runs source+init exactly as before. Verified: no diagnostic from 'punk91 src/make.tcl projectversion'. src/AGENTS.md build guidance updated (punk-exe-driven builds and the self-kit skip); layout make.tcl copies re-synced via the punkcheck channel. Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.commaster
7 changed files with 170 additions and 14 deletions
@ -1,4 +1,4 @@
|
||||
[project] |
||||
name = "punkshell" |
||||
version = "0.12.25" |
||||
version = "0.12.26" |
||||
license = "BSD-2-Clause" |
||||
|
||||
Loading…
Reference in new issue