When is an object not an object?
Department of Computer Science
University of Calgary
This paper describes an approach to designing and building Tcl
extensions that can be flexibly and dynamically changed using either
Tcl or C. In particular, extensions having an object-based interface
are considered. This extension approach seeks to avoid the "chasm"
found in migrating code from Tcl to C as it matures by freely mixing
Tcl and C to create an object's subcommands. The approach differs
from traditional Tcl object frameworks in that it retains familiar
mechanisms used to create new toplevel Tcl commands, and emphasizes
extensions holding much of their data at the C level. A secondary
goal is to illustrate how extension authors can encourage rich
customization, by exposing object internals to change. To illustrate
the technique, a simple data structure is extended to support sharing
between multiple Tcl processes.
Download the full text of this paper in
ASCII (34,182 bytes) and
POSTSCRIPT (102,283 bytes) form.
To Become a USENIX Member, please see our