The 2009 Tcl Conference was held in Portland, OR, Mentor Graphic's
Our invited guest was Arjen
Markus, a long-time Tcl user from Delft Hydraulics in The
Netherlands. Among other accomplishments, Arjen wrote Tcl-FORTRAN
package that allows Tcl and FORTRAN to be merged. This tool is useful
for porting older scientific programs into the modern use.
Our keynote speaker was
Frank Hayes. Frank has been an industry watcher
and writer since the S-100 days. He spoke about the future of small languages
and noted that Tcl is a "newly discovered tool" by some segment of the IT
field about every 4-6 years.
After the last papers, the folks who spent Friday night in Portland
finished the week with a visit to the Spruce Goose, a final dinner,
and more talking, planning and (a little) sleeping.
A copy of the proceedings can be purchased as hardcopy at the
Association Press storefront
Google Summer of Code
Report on Tcl/Tk Google Summer of Code 2009
Overview report on the Tcl/Tk GSoC projects for 2009
Project: SCORM Compliant Content Packaging for Wiki-based Content Development
In this paper we present an early prototype of a wiki-based SCORM
authoring platform, which was developed in the context of the
Google Summer of Code 2009. We based our implementation upon
OpenACS's existing wiki application XoWiki and tried to realize the
concepts of SCORM (e.g. organizations) using existing implementations
(e.g. the categories package).
Report on Google Summer of Code project to Get Jacl to the Tcl 8.4
compilance level and make Jacl more popular again.
TclOO: Past Present and Future
Presentation Slides for paper
TOAD: Tips for Object Architecture for Development
This paper is Sean's attempt to put
together the "Tcl W" of writing code
for TclOO. Like everything else Tcl, it's
not about tab spacing and pascalNotation
vs. underbars_uberalles. It's about how
not to hang yourself with some of the rope
that the notation provides.
TclOO: Past, Present and Future
This paper looks at the state of Tcl's new
object system, TclOO, looking at the forces that
lead to its development and the development
process itself. The paper then focuses on the
current status of TclOO, especially its interest-
ing features that make it well-suited to being a
foundational Tcl object system, followed by a
look at its actual performance and some of the
uses to which it has already been put. Finally,
the paper looks ahead to some of the areas
where work may well be focused in the future.
Towards XOTcl 2.x: A Ten-Year Retrospective and Outlook
Recent work on the Extended Object Tcl (XOTcl) was geared towards the orthogonality,
the ease of use, the productiveness, and the tailorability of the language. The result is an
innovative object-oriented language framework which serves for developing a family of object-
oriented Tcl dialects. In this work-in-progress report, we map the background and history of
advanced language constructs (i.e., mixin classes, filters, method delegation) and their continued
refinement (i.e., transitive mixins, mixin and filter guards). We present the infrastructure for
creating derivative Tcl OO dialects (i.e., creating object systems and their structural relations,
assembling base object behavior). A canonical model and infrastructure of parametrization of
commands, methods, and objects is presented. Important steps of internal re-designing and
refactoring (callstack and object life-time management) are discussed. Execution time and call
throughput measurements for basic object life-time and method dispatch scenarios are reported,
exhibiting substantial improvements over the XOTcl 1.6.x branch and TclOO 0.6.
Tools for Developing, Distributing and Using Tcl/Tk Applications over the World Wide Web
Tcl/Tk safe interpreters provide a secure environment for running arbitrary untrusted code. We
have developed Web clients in Tcl/Tk that are optimized for running Tcl/Tk applications. We
have also developed server-side tools that permit collaborative development of Tcl/Tk code in a
Wiki-like environment, but optimized for code rather than text. We combine the advantages of
the browser plugin and the Wiki, with added features such as an enhanced security policy, local
caching, and remote storage of personal files. The clients can be compared with Adobe Air or
Microsoft Silverlight, but are better oriented to sharing code because by default the client
receives the full Tcl/Tk source code.
An overview of two key Stargus technologies - secure authentication and shared storage
Stargus is an ongoing project to develop a compact, portable and scaleable virtual
computing environment, based on the Tcl/Tk platform. This paper introduces two key
Stargus technologies aimed at supporting Cloud Computing: secure authentication
via BetterID and shared storage via Mockingbird. These technologies are aimed at
achieving scaleability and security by leveraging Cloud Computing while retaining
the flexibility and productivity of the Tcl language and associated technologies.
Using [incr Tcl] to improve stability of a GUI - A Case Study
This paper discusses how a GUI required
handling multiple datasets at the same time
and providing the user with design and
debug information for all the datasets
currently open, was having problems in
switching between different datasets and
different views of a same dataset, due to it
being written primarily in Tcl. The paper
further describes how the GUI is modified
using [incr Tcl] to solve these problems by
benefiting from the object oriented concepts
built in [incr Tcl]. This paper describes how
[incr Tcl] is used by ways of code examples.
The paper finally concludes mentioning the
benefits achieved by this exercise and also
provides recommendations on how to avoid
the pitfalls in using Tcl and how they can be
easily avoided by using [incr Tcl].
Too Many Windows
Over the past 10 years the Modelsim GUI, written in Tcl/Tk, has
grown from a simple user interface with three panes to an elaborate
interface comprised of over 50 distinct windows. The Modelsim GUI
architecture, while sufficient at the time of creation, began to
crumble under the weight of so many windows. This paper will explore
the issues that occurred as the window count grew and describe the
approach taken to resolve these issues.
Comit's CVXT Tool
CVXT is a Verification Engine from Comit that dates back to the early 90s. It is primarily
an control and event based interface between a hardware language software simulator
and tcl. This paper is about the Tcl and software side of the tool, the challenges it faced
and how coroutines helped.
Presentation: Comit's CVXT Tool
Presentation slides for CVXT paper
The use of Tcl/Tk in the AnatLab Virtual Anatomy Laboratory
The AnatLab system provides and interactive Web environment for exploring human
anatomy, including the locations, identies, relationships and extents of anatomical
structures, as well as associated textual information. An early version of AnatLab
was demonstrated at Tcl2008. This paper goes beyond that to describe a
number of the Tcl-based technologies used to create AnatLab
Slides: Networked Digital Whiteboard
Tcl/Tk-based whiteboard presentation tool with
unique functionalities: Audience can participate in the presentation.
Enables quick construction of complex objects r displaying during presentation.
Text: Networked Digital Whiteboard
Text to accompany slides above.
PowerPoint Slides: Networked Digital Whiteboard
Powerpoint version of presentation slides
Networked Digital Whiteboard with Handwritten-Symbol Interpreter and
We present a unique Tcl/Tk-based whiteboard system
that facilitates discussions among multiple participants located at remote sites as well as in classroom or conferenceroom setups. One of its uniquenesses is its capability to convert handwritten complex-structured math/scientific symbols to clean custom-font-based presentations. Another
uniqueness is that it enables the user to easily create dynamic discussion tools incorporating various widgets instantly during a discussion, and send them to the whiteboard server for display and manipulation. The above features can be easily augmented to various domains of discussion by adding more Tcl scripts and/or C modules. All
of these unique capabilities are made possible by Tcl's easy
mergeability with C and its superb scripting characteristics.
Reflecting and Transforming Channels
This paper describes the history of the reflected and transformed channels exposed at the script level in Tcl 8.5 and
higher, provides insight into their implementation, and demonstrates various applications of this feature.
Eagle: Tcl Integration with the CLR
Eagle (Extensible Adaptable Generalized Logic Engine) is an implementation of the Tcl
scripting language for the Common Language Runtime (CLR). It is designed to be a
universal scripting solution for any CLR-based language.
PDF: Eagle: Tcl Integration with the CLR
Slides for paper above.
PowerPoint: Eagle: Tcl Integration with the CLR
Slides for paper above.
Fossil: New Ideas In Version Control
Introduction to Fossil, a Distributed version control system
with builtin bug tracking, wiki and web interface
based on Sqlite and Tcl
Sqlite: The World's most Popular Tcl Extension
Introduces Sqlite and describes the integration of the
database tool and Tcl.
A computational framework for flood risk assessment in the Netherlands
The safety of dikes in the Netherlands, located in the delta of the rivers Rhine, Meuse and
Scheldt, has been the subject of debate for more than ten years. The safety (or flood risk) of a
particular area may depend on the safety of other areas. This is referred to as effects of river
system behaviour on flood risk (quantified as the estimated number of casualties and
economic damage). In the Netherlands, such effects are found to be important for the
understanding and evaluation of flood risks.
Slides: Flood risk assessment
PDF Slides for Flood Risk talk
Slides: Flood risk assessment
PowerPoint Slides for Flood Risk talk
A Tcl/Tk Add-on Script for Large Meshing Software
Gridgen is meshing software used by engineers and scientists worldwide since 1984 to reliably
generate high quality grids for engineering analysis. Gridgen Glyph, which is Gridgen's Tcl-
based scripting language, provides full access to the functionalities available interactively in
Gridgen. It allows users to extend Gridgen's functions as well as develop specialized meshing
applications. This paper shows how a new Gridgen capability, automated block topology change,
is developed through a script using Glyph, Tcl and Tk. This feature changes grid topologies in a
matter of seconds while interactively changing grid topologies can require hours of a user's time.
Slides: A Tcl/Tk Add-on Script for Large Meshing Software
Presentation slides for above paper
Inserts/appends to TkCon
Suggestions (and code) for improvements to Tkcon