Starkits for Tcl 9 using zipfs

Starkits for Tcl 9 using zipfs
Login

Starkits for Tcl 9 using zipfs

This project provides tools for zipfs-based Tclkits:

How to use these tools

A typical zip-based basekit has these files in its zip archive:

File/Directory Description
//zipfs:/app/tcl_library/ Files for the statically linked Tcl library
//zipfs:/app/tk_library/ Files for the statically or dynamically linked Tk library
//zipfs:/app/libtcl9tk9.0.so The Tk library (if it is dynamically linked)
//zipfs:/app/starkit/ The starkit and readkit libraries to allow the use of starkits
//zipfs:/app/vfs/ (optional) For native reading of mk4 starkits
//zipfs:/app/vlerq/ (optional) For native reading of mk4 starkits

If tclvfs and vlerq are included in the basekit as dynamically loadable libraries, then the basekit has native support for mk4 starkits. This is useful because the readkit library still has bugs.

License

These files are derivative works of sdx.kit, readkit.tcl, and starkit.tcl by JCW which did not carry a licensing statement. Modifications by Keith Nash are licensed by the Tcl or Tcllib licenses, or by any terms intended by JCW for his original works.

The libraries zip::decode and fileutil::decode included in zkk.kit are from Tcllib and are subject to the Tcllib license.

On tclkits, basekits, starkits, and starpacks

Before Tcl 9

This system was developed more than 20 years ago by Jean-Claude Wippler (JCW) and others, and is described in detail in this paper by Steve Landers:
https://tca1.tcl-lang.org/tcl2002/09thTcl-2002-Vancouver/landers-tclkit/tclkit.pdf

The system uses compressed file archives constructed from a database system called MetaKit 4 ("mk4"), or a later compatible (but read-only) alternative called vlerq; combined with a vfs (virtual file system) Tcl package that allows the files held in the database to be mounted by the tclkit in the filesystem seen by its interpreter.

With Tcl 9

Tcl 9 has built-in facilities that replace the additional packages mk4/vlerq and vfs: the zipfs command manages zip-based archives appended to other files and can mount them in its interpreter's filesystem. The construction of basekits, starkits, and starpacks requires some small additional tools, which this project provides.

FAQs