Differences between tclkit and tcl

Purpose: consolidate discussions about differences between a site where Tcl/Tk/Tclvfs/metakit/incr tcl/zlib are installed and a site where only tclkit is available. Note that in some of these cases (such as the missing libraries and includes) the reason is that tclkit is not intended for the same audience as the source or even a traditional binary distribution.

The reason it is important to track the differences, though, is that sometimes users attempt to use tclkit as the base for software development - knowing these differences will hopefully save them some questions.

What things can someone expect to find different when using Tclkit rather than a full install from authority source distributions?

  1. Documentation - tclkit comes with none of the man pages/etc. There is a Tclkit DOK commands starkit containing the Tcl and Tk docs, but I don't think that currently there is one containing docs for everything that comes in the tclkit. Creating a wikit or a DOK command (or even a PDF) containing the documentation for everything within a tclkit could, however, meet the need.
  2. Demos - tclkit is intended to be small. However, the demos for Tk are available as a starkit from the sdarchive. Do demos for the other parts of tclkit exist, and if so, are they available in a starkit?
  3. Encodings - only a minimal number of encodings are available. (One can register new encodings at runtime.)
  4. Libraries - tclkit is a static build, so no dynamically loadable tclXX.dll or .so's (or other libraries) for linking are in the tclkit starkit.
  5. Includes - tclkit does not include tcl.h or any other header files someone might need to compile a new extension.
  6. Files within a Tclkit or starkit are accessed only via VFS. There are limitations and differences in file and directory behavior through VFS that are not present when using native file handling. See tclvfs page for some of the differences.
  7. The boundary between the real (external filesystem) and the internal filesystem is not always seamless (e.g. glob */* across the boundary won't do what it should). This difference has been fixed in Tcl 8.4.5 and Tcl 8.5.

See also The (Few) Differences between Tcl and Tclkit.

And no, I don't know why we have two pages...

Ro 2011 September: I'm using Pat Thoyts's tclkit builds for windows and linux. Are tclkits still static builds, which would mean that a linux tclkit would run fine on an old linux installation, say RedHat 7.3 ? I'm interested in binary portability across years. Thanks