From 57b73d9f986a697b9234d045af71b06a791c59c5 Mon Sep 17 00:00:00 2001 From: Julian Noble Date: Mon, 27 Jul 2026 02:38:16 +1000 Subject: [PATCH] build outputs: punkboot::utils 0.4.0 + gate wording into bootsupport, _vfscommon and the thin layouts Regenerated by 'make.tcl modules' + 'bootsupport' + 'vfscommonupdate'. make.tcl reaches the predicate through a guarded require against the bootsupport snapshot, so the third tcl-library convention only takes effect for a bake once this lands; 'make.tcl check' confirms the gate ACTIVE and now names all three locations. The thin-layout make.tcl copies and the templates modpod carry the reworded K10 key note, so generated projects describe the gate the same way. The bootsupport templates modpod again failed to copy in place with 'invalid argument' and again succeeded on retry seconds later - the transient lock noted in the previous two build-output commits, not a make.tcl mount this time. Copied by hand, then 'make.tcl bootsupport' and 'vfscommonupdate' re-run to reconcile; all three copies share one sha1. Assisted-by: harness=claude; primary-model=claude-opus-5[1m]; api-location=anthropic.com --- .../modules/punk/mix/templates-0.2.0.tm | Bin 297485 -> 297549 bytes .../{utils-0.3.0.tm => utils-0.4.0.tm} | 27 ++++++++++++------ .../vendor/punk/project-0.1/src/make.tcl | 17 ++++++----- .../vendor/punk/basic/src/make.tcl | 17 ++++++----- .../vendor/punk/project-0.1/src/make.tcl | 17 ++++++----- .../modules/punk/mix/templates-0.2.0.tm | Bin 297485 -> 297549 bytes .../{utils-0.3.0.tm => utils-0.4.0.tm} | 27 ++++++++++++------ 7 files changed, 68 insertions(+), 37 deletions(-) rename src/bootsupport/modules/punkboot/{utils-0.3.0.tm => utils-0.4.0.tm} (92%) rename src/vfs/_vfscommon.vfs/modules/punkboot/{utils-0.3.0.tm => utils-0.4.0.tm} (92%) diff --git a/src/bootsupport/modules/punk/mix/templates-0.2.0.tm b/src/bootsupport/modules/punk/mix/templates-0.2.0.tm index cce8edf2d884b22f6a7922f7781eaf31e53c9b4b..cdac3694f5dfbd3f6d8492aa37438f6a3fc36bde 100644 GIT binary patch delta 31045 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 delta 31026 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 lzU{Y/tcl_library/init.tcl) lib/tcl./ starkit/tclkit-style kits (lib/tcl8.6, lib/tcl9.0) + tcl./ runtimes whose archive mounts at the + executable's own path rather than at + //zipfs:/app, so [info library] is + /tcl8.6 - the androwish/undroidwish + zipfs backport for Tcl 8.6 does this A candidate directory qualifies only when it holds init.tcl AND at least one companion file a real Tcl library carries beside it @@ -275,18 +280,24 @@ namespace eval punkboot::utils { } proc vfs_boot_library_report {vfsfolder} { variable boot_library_companions - set checked [list tcl_library lib/tcl.] + set checked [list tcl_library lib/tcl. tcl.] set report [dict create ok 0 locations {} rejected {} checked $checked reason ""] if {![file isdirectory $vfsfolder]} { dict set report reason "no such directory: $vfsfolder" return $report } - #candidates are the two conventions only - a full tree walk would find every - #package's init.tcl and cost more than the check is worth + #candidates are the three conventions only - a full tree walk would find every + #package's init.tcl and cost more than the check is worth. + #The tcl[0-9]* globs deliberately also match module trees named tcl8/ or tcl9/ + #(both exist in this project's kits); they carry no init.tcl, so the qualification + #test below rejects them without needing a narrower pattern. set candidates [list [file join $vfsfolder tcl_library]] foreach dir [lsort [glob -nocomplain -type d -directory [file join $vfsfolder lib] -- {tcl[0-9]*}]] { lappend candidates $dir } + foreach dir [lsort [glob -nocomplain -type d -directory $vfsfolder -- {tcl[0-9]*}]] { + lappend candidates $dir + } set locations [list] set rejected [list] foreach dir $candidates { @@ -320,7 +331,7 @@ namespace eval punkboot::utils { if {[llength $rejected]} { dict set report reason "no tcl library in [file tail $vfsfolder]: [join $rejected {, }] hold init.tcl but none of the companion files a tcl library carries beside it ([join $boot_library_companions {, }]) nor an encoding/ directory" } else { - dict set report reason "no tcl library in [file tail $vfsfolder]: neither tcl_library/init.tcl nor lib/tcl./init.tcl is present" + dict set report reason "no tcl library in [file tail $vfsfolder]: none of tcl_library/init.tcl, lib/tcl./init.tcl or tcl./init.tcl is present" } return $report } @@ -334,8 +345,8 @@ namespace eval ::punk::args::register { ## Ready package provide punkboot::utils [tcl::namespace::eval punkboot::utils { variable version - #- this version number, exactly 0.3.0, is a literal used in src module folders + #- this version number, exactly 0.4.0, is a literal used in src module folders #- we refer to this sometimes as the magic version number - set version 0.3.0 + set version 0.4.0 }] return diff --git a/src/modules/punk/mix/#modpod-templates-999999.0a1.0/templates/project_layouts/vendor/punk/project-0.1/src/make.tcl b/src/modules/punk/mix/#modpod-templates-999999.0a1.0/templates/project_layouts/vendor/punk/project-0.1/src/make.tcl index 4c119425..df240826 100644 --- a/src/modules/punk/mix/#modpod-templates-999999.0a1.0/templates/project_layouts/vendor/punk/project-0.1/src/make.tcl +++ b/src/modules/punk/mix/#modpod-templates-999999.0a1.0/templates/project_layouts/vendor/punk/project-0.1/src/make.tcl @@ -2283,7 +2283,7 @@ DIAGRAM 2 - KIT ASSEMBLY DETAIL (the 'make.tcl bake' stage; incl. vfslibs phase) src/_build/.exe.vfs | | boot-precondition gate: merged vfs must supply a tcl - | library (tcl_library/ or lib/tcl./) [K10] + | library (tcl_library/, lib/tcl./, tcl./) [K10] v (gate) --> refused: kit listed under FAILED KITS, nothing | built, nothing deployed, bin/ untouched @@ -2367,9 +2367,11 @@ KEY / NOTES left exactly as it was. This is deliberately not a warning: the deploy step deletes the old kit before copying the new one, so warning-and-proceeding replaced a working shell with one that could not start. The check is - structural (tcl_library/init.tcl or lib/tcl./init.tcl, plus a - companion file so a package's own init.tcl cannot answer for a tcl library) - and runs on the MERGED tree, not on whether extraction ran - a .vfs that + structural - init.tcl in tcl_library/, lib/tcl./ or + tcl./ (that last one for runtimes whose archive mounts at the + executable's own path rather than //zipfs:/app), plus a companion file so a + package's own init.tcl cannot answer for a tcl library - and runs on the + MERGED tree, not on whether extraction ran - a .vfs that supplies its own tcl library builds and deploys as normal. Nothing is executed, so cross-target kits are covered too. Usual cause: the runtime's own payload could not be extracted - see the BUILD-WARNING naming what was @@ -3548,9 +3550,10 @@ if {$::punkboot::command eq "check"} { lassign [::punkboot::get_vfs_boot_library_report [file join $projectroot __punkboot_bootgate_probe__]] _boot_available _boot_report if {$_boot_available} { puts stdout "boot-precondition gate (G-125): ACTIVE" - puts stdout " bake checks each kit's merged vfs for a tcl library (tcl_library/ or lib/tcl./) before" - puts stdout " building it. A kit with none is reported under FAILED KITS and is neither built nor deployed, so a" - puts stdout " previously deployed kit is never replaced by an artifact that cannot initialise." + puts stdout " bake checks each kit's merged vfs for a tcl library (tcl_library/, lib/tcl./ or" + puts stdout " tcl./) before building it. A kit with none is reported under FAILED KITS and is" + puts stdout " neither built nor deployed, so a previously deployed kit is never replaced by an artifact that" + puts stdout " cannot initialise." } else { puts stdout "boot-precondition gate (G-125): UNAVAILABLE (punkboot::utils vfs_boot_library_report not loadable from bootsupport)" puts stdout " bake will proceed with a NOTE and cannot refuse an unbootable kit - run 'make.tcl modules' then 'make.tcl bootsupport'." diff --git a/src/project_layouts/vendor/punk/basic/src/make.tcl b/src/project_layouts/vendor/punk/basic/src/make.tcl index 4c119425..df240826 100644 --- a/src/project_layouts/vendor/punk/basic/src/make.tcl +++ b/src/project_layouts/vendor/punk/basic/src/make.tcl @@ -2283,7 +2283,7 @@ DIAGRAM 2 - KIT ASSEMBLY DETAIL (the 'make.tcl bake' stage; incl. vfslibs phase) src/_build/.exe.vfs | | boot-precondition gate: merged vfs must supply a tcl - | library (tcl_library/ or lib/tcl./) [K10] + | library (tcl_library/, lib/tcl./, tcl./) [K10] v (gate) --> refused: kit listed under FAILED KITS, nothing | built, nothing deployed, bin/ untouched @@ -2367,9 +2367,11 @@ KEY / NOTES left exactly as it was. This is deliberately not a warning: the deploy step deletes the old kit before copying the new one, so warning-and-proceeding replaced a working shell with one that could not start. The check is - structural (tcl_library/init.tcl or lib/tcl./init.tcl, plus a - companion file so a package's own init.tcl cannot answer for a tcl library) - and runs on the MERGED tree, not on whether extraction ran - a .vfs that + structural - init.tcl in tcl_library/, lib/tcl./ or + tcl./ (that last one for runtimes whose archive mounts at the + executable's own path rather than //zipfs:/app), plus a companion file so a + package's own init.tcl cannot answer for a tcl library - and runs on the + MERGED tree, not on whether extraction ran - a .vfs that supplies its own tcl library builds and deploys as normal. Nothing is executed, so cross-target kits are covered too. Usual cause: the runtime's own payload could not be extracted - see the BUILD-WARNING naming what was @@ -3548,9 +3550,10 @@ if {$::punkboot::command eq "check"} { lassign [::punkboot::get_vfs_boot_library_report [file join $projectroot __punkboot_bootgate_probe__]] _boot_available _boot_report if {$_boot_available} { puts stdout "boot-precondition gate (G-125): ACTIVE" - puts stdout " bake checks each kit's merged vfs for a tcl library (tcl_library/ or lib/tcl./) before" - puts stdout " building it. A kit with none is reported under FAILED KITS and is neither built nor deployed, so a" - puts stdout " previously deployed kit is never replaced by an artifact that cannot initialise." + puts stdout " bake checks each kit's merged vfs for a tcl library (tcl_library/, lib/tcl./ or" + puts stdout " tcl./) before building it. A kit with none is reported under FAILED KITS and is" + puts stdout " neither built nor deployed, so a previously deployed kit is never replaced by an artifact that" + puts stdout " cannot initialise." } else { puts stdout "boot-precondition gate (G-125): UNAVAILABLE (punkboot::utils vfs_boot_library_report not loadable from bootsupport)" puts stdout " bake will proceed with a NOTE and cannot refuse an unbootable kit - run 'make.tcl modules' then 'make.tcl bootsupport'." diff --git a/src/project_layouts/vendor/punk/project-0.1/src/make.tcl b/src/project_layouts/vendor/punk/project-0.1/src/make.tcl index 4c119425..df240826 100644 --- a/src/project_layouts/vendor/punk/project-0.1/src/make.tcl +++ b/src/project_layouts/vendor/punk/project-0.1/src/make.tcl @@ -2283,7 +2283,7 @@ DIAGRAM 2 - KIT ASSEMBLY DETAIL (the 'make.tcl bake' stage; incl. vfslibs phase) src/_build/.exe.vfs | | boot-precondition gate: merged vfs must supply a tcl - | library (tcl_library/ or lib/tcl./) [K10] + | library (tcl_library/, lib/tcl./, tcl./) [K10] v (gate) --> refused: kit listed under FAILED KITS, nothing | built, nothing deployed, bin/ untouched @@ -2367,9 +2367,11 @@ KEY / NOTES left exactly as it was. This is deliberately not a warning: the deploy step deletes the old kit before copying the new one, so warning-and-proceeding replaced a working shell with one that could not start. The check is - structural (tcl_library/init.tcl or lib/tcl./init.tcl, plus a - companion file so a package's own init.tcl cannot answer for a tcl library) - and runs on the MERGED tree, not on whether extraction ran - a .vfs that + structural - init.tcl in tcl_library/, lib/tcl./ or + tcl./ (that last one for runtimes whose archive mounts at the + executable's own path rather than //zipfs:/app), plus a companion file so a + package's own init.tcl cannot answer for a tcl library - and runs on the + MERGED tree, not on whether extraction ran - a .vfs that supplies its own tcl library builds and deploys as normal. Nothing is executed, so cross-target kits are covered too. Usual cause: the runtime's own payload could not be extracted - see the BUILD-WARNING naming what was @@ -3548,9 +3550,10 @@ if {$::punkboot::command eq "check"} { lassign [::punkboot::get_vfs_boot_library_report [file join $projectroot __punkboot_bootgate_probe__]] _boot_available _boot_report if {$_boot_available} { puts stdout "boot-precondition gate (G-125): ACTIVE" - puts stdout " bake checks each kit's merged vfs for a tcl library (tcl_library/ or lib/tcl./) before" - puts stdout " building it. A kit with none is reported under FAILED KITS and is neither built nor deployed, so a" - puts stdout " previously deployed kit is never replaced by an artifact that cannot initialise." + puts stdout " bake checks each kit's merged vfs for a tcl library (tcl_library/, lib/tcl./ or" + puts stdout " tcl./) before building it. A kit with none is reported under FAILED KITS and is" + puts stdout " neither built nor deployed, so a previously deployed kit is never replaced by an artifact that" + puts stdout " cannot initialise." } else { puts stdout "boot-precondition gate (G-125): UNAVAILABLE (punkboot::utils vfs_boot_library_report not loadable from bootsupport)" puts stdout " bake will proceed with a NOTE and cannot refuse an unbootable kit - run 'make.tcl modules' then 'make.tcl bootsupport'." diff --git a/src/vfs/_vfscommon.vfs/modules/punk/mix/templates-0.2.0.tm b/src/vfs/_vfscommon.vfs/modules/punk/mix/templates-0.2.0.tm index cce8edf2d884b22f6a7922f7781eaf31e53c9b4b..cdac3694f5dfbd3f6d8492aa37438f6a3fc36bde 100644 GIT binary patch delta 31045 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 delta 31026 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 lzU{Y/tcl_library/init.tcl) lib/tcl./ starkit/tclkit-style kits (lib/tcl8.6, lib/tcl9.0) + tcl./ runtimes whose archive mounts at the + executable's own path rather than at + //zipfs:/app, so [info library] is + /tcl8.6 - the androwish/undroidwish + zipfs backport for Tcl 8.6 does this A candidate directory qualifies only when it holds init.tcl AND at least one companion file a real Tcl library carries beside it @@ -275,18 +280,24 @@ namespace eval punkboot::utils { } proc vfs_boot_library_report {vfsfolder} { variable boot_library_companions - set checked [list tcl_library lib/tcl.] + set checked [list tcl_library lib/tcl. tcl.] set report [dict create ok 0 locations {} rejected {} checked $checked reason ""] if {![file isdirectory $vfsfolder]} { dict set report reason "no such directory: $vfsfolder" return $report } - #candidates are the two conventions only - a full tree walk would find every - #package's init.tcl and cost more than the check is worth + #candidates are the three conventions only - a full tree walk would find every + #package's init.tcl and cost more than the check is worth. + #The tcl[0-9]* globs deliberately also match module trees named tcl8/ or tcl9/ + #(both exist in this project's kits); they carry no init.tcl, so the qualification + #test below rejects them without needing a narrower pattern. set candidates [list [file join $vfsfolder tcl_library]] foreach dir [lsort [glob -nocomplain -type d -directory [file join $vfsfolder lib] -- {tcl[0-9]*}]] { lappend candidates $dir } + foreach dir [lsort [glob -nocomplain -type d -directory $vfsfolder -- {tcl[0-9]*}]] { + lappend candidates $dir + } set locations [list] set rejected [list] foreach dir $candidates { @@ -320,7 +331,7 @@ namespace eval punkboot::utils { if {[llength $rejected]} { dict set report reason "no tcl library in [file tail $vfsfolder]: [join $rejected {, }] hold init.tcl but none of the companion files a tcl library carries beside it ([join $boot_library_companions {, }]) nor an encoding/ directory" } else { - dict set report reason "no tcl library in [file tail $vfsfolder]: neither tcl_library/init.tcl nor lib/tcl./init.tcl is present" + dict set report reason "no tcl library in [file tail $vfsfolder]: none of tcl_library/init.tcl, lib/tcl./init.tcl or tcl./init.tcl is present" } return $report } @@ -334,8 +345,8 @@ namespace eval ::punk::args::register { ## Ready package provide punkboot::utils [tcl::namespace::eval punkboot::utils { variable version - #- this version number, exactly 0.3.0, is a literal used in src module folders + #- this version number, exactly 0.4.0, is a literal used in src module folders #- we refer to this sometimes as the magic version number - set version 0.3.0 + set version 0.4.0 }] return