Trf: Introduction
Author: Andreas Kupries,,,

# Background of trf, introduction to the documentation

[ Home | Sitemap ] [ Technical background ]

This is the reference manual of trf 2.1p2, as distributed at August 20, 2001. For instructions on how to compile and install it see the installation manual.

After torturing the world with 2 extensions related to binary support in tcl (blob and blobX) I could not resist and wrote another one .

This one is based on the idea to add hooks into the IO subsystem of `tcl` allowing us to intercept any read/write call made by the user and to act upon the data before it is given to him (read) or the channel driver (write). This unfortunately requires us to patch the core to get it going. See the technical explanation of the concept for more information about this.

This requirement for `tcl` 7.6 is no such one for `tcl` 8.x. The possibility to store binary data in normal variables allowed me to rewrite the extension in such a way that its commands operate on standard arguments and simply return their results. Of course, people wanting to use the channel filter mode still need to patch the core.

Hopefully `tcl` 8.1 will contain the necessary hooks as part of the core, obviating the need for patches. The probability is very low however, due to the shift of the development from Sun to Scriptics.

Update: Tcl 8.2 made the patch official, i.e. it was added to the core interpreter, obviating the need to patch it. So, in conjunction with Tcl 8.2 this extension is a simple, non-patching one.

Please read the installation manual to gain insight into the complete requirements of this extension.

At the C API level a set of commands is provided for management, implementation and usage of ``transformer''-procedures. These are called by the (patched) generic channel system to pre- or postprocess data just before writing, resp. immediately after reading. This allows transparent implementation of things like:

- Gathering statistics about the data flowing through a channel.
- Converting in and out of printable representations of binary data.
- Decryption, encryption of information read or written.
- Data de(compression), error correcting coding.

to name only a few.

As proof of concept several such algorithms were implemented and are provided as user-commands at the `tcl`-level.

Last update at Mon Aug 20 22:52:27 PDT 2001