You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2.1 KiB

G-034 Zip-based #modpod modules mount in the shell code-interp on Tcl 8.6

Status: proposed Scope: src/modules/punk/mix/ (modpod mount path); vfs::zip availability in the repl code interp; src/modules/punk/cap/ (templates capability handler) Goal: zip-based #modpod modules (e.g. punk::mix::templates) mount and their punk::cap handlers register in the shell subcommand's code interp on Tcl 8.6, matching the script/main-interp context - so dev module.templates and other punk.templates-capability consumers work in an interactive 8.6 shell instead of failing with invalid command name vfs::RegisterMount. Acceptance: dev module.templates in an interactive 8.6 punk shell (shell subcommand) lists the template providers with no failed to load ZIP archive-based module / invalid command name vfs::RegisterMount / Unable to register any template providers / invalid command name ::punk::cap::handlers::templates::api_punk.templates errors, matching the script-subcommand output on the same binary (verified 2026-07-07: script works, shell fails); root cause fixed (the code interp lacks the vfs::zip library that provides vfs::RegisterMount for pre-zipfs Tcl, present in the main interp - restore it to the code interp or use an alternative modpod mount path there); Tcl 9 (built-in zipfs) behaviour is unchanged.

Notes

  • Related: G-124 (achieved 2026-07-26 - see goals/archive/G-124-punkzip-reader.md) - the dependency-free zip READER in punk::zip (no zipfs, no vfs::zip, no tcllib) now exists as punk::zip::members / punk::zip::unzip, and is a concrete candidate for the "or use an alternative modpod mount path there" branch of this goal's Acceptance: extract the modpod rather than mount it. It does not narrow this goal's options. Measured while achieving it: on msys2's tclsh8.6 make.tcl cannot mount its OWN punk::mix::templates modpod - "Unable to load vfs::zip package to mount module templates-0.2.0 (and zipfs not available either)", non-fatal but the package reports broken - which is this goal's failure in the build tooling rather than the code interp.