CritLib is a set of mostly independent packages for use in Tcl.

It is self-contained and includes CriTcl, the "C Runtime In Tcl" extension which automatically wraps and compiles C code. Details about this concept can be found on the Tcl'ers Wiki, see the CriTcl page there. A list of what could or should be done is being tracked on the ideas page.

CritBind is a utility script to quickly create merged shared libraries, as well as custom executables. See the read me file for details. With CritBind you can deploy the C code which CriTcl compiled for you.

Requirements differ from one package to the next. Most packages listed below use C code and rely on CriTcl, which requires gcc and Tcl 8.1 or later for stubs support. Some of the packages below might use features from a more recent version of Tcl (development takes place under Tcl 8.4).

Installation consists of unpacking the distribution and moving the "critlib/" directory to a spot where Tcl's package loader will find it. The "pkgtest.tcl" script exercises each package a bit (see the test output). Most packages have only been used on Linux and Windows NT4 (MinGW) so far.

No license applies unless noted otherwise in the source files. CriTcl and the scripts below were written by Coen Siegerink. Hold the author harmless and any lawful use is permitted.


Contents of critlib.tar.gz (153 Kb):
ascenc0.12  Simple ASCII <-> binary encodings (base64 for now)  Mar 6, 2007
blowfish0.11  Wrapper for Eric Young's implementation of Blowfish encryption  Feb 26, 2003
cblas0.11  Interface to the 140+ CBLAS standard math routines  Nov 22, 2001
critcl0.33  C Runtime In Tcl - compile C code on the fly  Apr 10, 2003
dyncall0.11  Call routines in shared libraries (DLLs)  Nov 21, 2001
hexdump0.10  Quick hex dump in C, from Matt Newman's "pwb" for TclKit  Nov 20, 2001
ihash0.11  Hashed data access based on interleaved (even-odd) lists  Nov 20, 2001
lzrw10.10  Wrapper for Ross N. Williams' "lzrw1" compression algorithm  Nov 20, 2001
mathf0.11  An adaptation of Donal K. Fellows' math functions in Tcl  Dec 14, 2001
md5c0.11  Wrapper for RSA's Message Digest in C  Nov 20, 2001
mvec0.12  Memory based vectors, this is part of the VKIT vector engine  Nov 22, 2001
noop0.10  Trivial C extension, used to test CriTcl and as baseline for timing  Nov 18, 2001
rechan1.0  Reflecting channel interface  Oct 7, 2002
rhtml0.10  Wrapper for Richard Hipp's Tkhtml widget (called "html")  Dec 21, 2001
scratch0.10  Self-Contained Runtime pArser for Tcl as Critcl Hack  Dec 23, 2001
typcl0.12  Embedding Tcl in Python  Nov 20, 2001
vfs0.12  Wrapper for Vince Darley's Virtual File System core  Nov 20, 2001
xre0.10  Build Tcl's regex + regsub as loadable extension  Nov 21, 2001
zipper0.11  ZIP file constructor  Jun 6, 2002
zlib0.10  Interface to the "zlib" compression library  Nov 20, 2001

Last updated on 2007/03/06
Acknowledgements
Scott Beasley - dyncall on Windows
Vince Darley - Tcl 8.4's Virtual File System
Paul Duffin and Jan Nijtmans - stubs architecture
Donal K. Fellows - math functions, now in "mathf"
Jeff Hobbs and the TCT - continued work on Tcl
Steve Landers - critcl mods for use as separate tool
Don Libes - pure-Tcl implementation of MD5
Matt Newman - original VFS, Tcl wizard par excellence
John Ousterhout - founding father of Tcl