Powered by SourceForge
There are many extensions to the Tcl/Tk language available, and some of the popular ones like TclX or [incr Tcl] provide similar functionality like these here. Anyway, the packages below are compact and fast, and they work with Tcl 8.0 and higher. Where possible they have been stubs-enabled. The packages are used in several small- to middle-size software projects, some of them running in a production environment.
mkGeneric is a collection of new Tcl commands of general type.
There is nothing spectacular about it, but it is lean and fast. It provides useful new math functions,
a number of list commands, new loop types, an option parser,
commands for sophisticated exception handling , encryption routines and some other things.
mkClasses is a collection of new Tcl commands that provides a(nother) way of object
oriented programming with Tcl. With mkClasses, classes and methods can be defined, and
objects can be created with private and class-common variables. In addition, classes can
inherit the functionality of other classes.
mkTables is a small collection of Tcl commands that allow for operating on tables.
The term table simply means regular Tcl lists where each of the elements is itself
a proper sublist (identical to what the Tcl command "lsort -index" accepts).
The commands in this package provide column oriented manipulations and are in most cases
similar to the command names for regular lists: The equivalent to lindex is tindex and so on.
mkThreads adds thread support to Tcl scripts. Tcl has been made thread-safe with version 8.1,
however there was no equivalent of that great new feature in the Tcl language itself (yet).
This package was intented to fill this gap. When it was written, it had some additional features
over the "official" thread extension. By now, the latter has developed farther and may
be the thread extension of choice for you. For this one,
you need a Tcl/Tk version 8.1 or higher that was compiled with thread support. See below if
you don't have it. mkThreads 1.2 for Tcl version 8.3.1 uses the improved thread API and is
mkWidgets 1.3 is written in pure Tcl without other package dependencies. It provides a
method for defining metawidgets, i.e. widgets that consist of several regular widgets.
Metawidgets can be rather complex but behave (almost) like the built-in Tk widgets.
In addition, a nice collection of metawidgets is included.
Check out the screenshots for Windows and
mkHttpd is a compact HTTP server specially designed to be integrated into other applications.
While significantly smaller and not as complete as TclHttpd, it has one unique feature:
Dynamic page generation is done with what I call TSP, Tcl Server Pages. This is different
from TclHttpd's TML concept and much more like Microsoft's ASP, since Tcl and HTML code
can be interwoven with each other. This way the code becomes much easier to read.
mkZiplib is a wrapper for
Zlib 1.1.3 and
Zlib is a compression library that can be used to create gzip and zip files. It is free,
very portable and works for virtually any computer hardware and operating system.
With mkZiplib you can compress/decompress data and work with .gz and .zip files
from within Tcl.
mkTulip, the Totally Unoptimized Large Integer Processor, evaluates arithmetic and comparison
expressions with very long integers. There is virtually no limitation to the number of digits
an integer value can have, and there is no 32 or 64 bit boundary and such.
Supported operands are *, /, +, -, <, >, <=, >=, ==, and !=.
mkRinterp is a package written in pure Tcl. It provides the 'rinterp' command, which is short for
'remote interpreter'. A remote interpreter is created and used like a regular Tcl
interpreter (see the interp command), but resides in fact on any host that is running an rinterp
server. Through redirection of stdin, stdout and stderr, mkRinterp is a pretty neat and powerful remote
control tool. It comes with a set of ready-to-use example applications.
mkLibsdl is a wrapper to the SDL library for the joystick and CD-ROM modules.
One can query game controllers with joysticks, trackballs, hats and buttons,
and also query and play audio CDs with single tracks and frames on a CD-ROM drive.
A new event type for joystick events makes working with game controllers fairly easy.
If you are using Windows and want to use a thread extension, but your Tcl/Tk version
was compiled without thread support (the default, check the global variable
tcl_platform(threaded) on existence), then you can download it here:
Tcl/Tk 8.4.3 with thread support for Windows
Matt Newman wrote a Windows NT service that executes any Tcl script upon startup.
Since it is so useful, here is it again with a compiled Exe for Tcl 8.4. It now
contains Matt's very useful eventlog command, a better shutdown handling and a
Windows Service for Tcl 8.4 Scripts
Claudio Esparanca put a lot of work into his TkOgl package. For me this is the
best OpenGL extension to Tcl, since it is fairly easy to handle and as intuitive
as OpenGL (i.e., not at all, but that's not Claudio's fault ;-)
TkOgl 1.1 for Windows NT4/2000/XP
Editors like UltraEdit and TextPad support syntax highlighting. Here are the files
for the two mentioned editors, both including the new commands of the above packages.
Syntax Definitions for UltraEdit and TextPad
Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted. The author makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. By use of this software the user agrees to indemnify and hold harmless the author from any claims or liability for loss arising out of such use.