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.6make.tclcannot mount its OWNpunk::mix::templatesmodpod - "Unable to load vfs::zip package to mount module templates-0.2.0 (and zipfs not available either)", non-fatal but the package reportsbroken- which is this goal's failure in the build tooling rather than the code interp.