Tcl Community Association
Current Activities: US Conference: Sep 23-27 2012 -- Google Summer of Code

Birds of a feather flock together

Tcl/Tk Conference: 2009

The 2009 Tcl Conference was held in Portland, OR, Mentor Graphic's hometown.

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 Tcl Community Association Press storefront on Lulu.

Google Summer of Code

Report on Tcl/Tk Google Summer of Code 2009
Tomasz Kosiak
Overview report on the Tcl/Tk GSoC projects for 2009

Project: SCORM Compliant Content Packaging for Wiki-based Content Development
Michael Aram, Gustaf Neumann
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).

Jacl Modernization
Radoslaw Szulgo
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
Donal K. Fellows
Presentation Slides for paper

TOAD: Tips for Object Architecture for Development
Sean Woods
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
Donal Fellows
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
Gustaf Neumann, Stefan Sobernig
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.

Networked Applications

Tools for Developing, Distributing and Using Tcl/Tk Applications over the World Wide Web
K. J. Nash and A. J. Simons
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
Steve Huntley, Steve Landers, Mike Doyle, Cyndy Lilagan
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
Ruchir Agarwal, Prashant Thakre, Manu Goel, Maneesh Agarwal
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
Ron Wold
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
Venkat Iyer
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
Venkat Iyer
Presentation slides for CVXT paper


The use of Tcl/Tk in the AnatLab Virtual Anatomy Laboratory
Cyndy Lilagan, Mike Doyle, Steve Huntley, Steve Landers
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
Atsuhide Kobashi
Tcl/Tk-based whiteboard presentation tool with unique functionalities: Audience can participate in the presentation. Networked. Enables quick construction of complex objects r displaying during presentation.

Text: Networked Digital Whiteboard
Atsuhide Kobashi
Text to accompany slides above.

PowerPoint Slides: Networked Digital Whiteboard
Atsuhide Kobashi
Powerpoint version of presentation slides

Networked Digital Whiteboard with Handwritten-Symbol Interpreter and Dynamic-Display-Object Creator
Atsuhide Kobashi
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.

Tcl Channels

Reflecting and Transforming Channels
Andreas Kupries
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
Joe Mistachkin
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
Joe Mistachkin
Slides for paper above.

PowerPoint: Eagle: Tcl Integration with the CLR
Joe Mistachkin
Slides for paper above.


Fossil: New Ideas In Version Control
D. Richard Hipp
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
D. Richard Hipp
Introduces Sqlite and describes the integration of the database tool and Tcl.

Numerical Applications

A computational framework for flood risk assessment in the Netherlands
Arjen Markus
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
Arjen Markus
PDF Slides for Flood Risk talk

Slides: Flood risk assessment
Arjen Markus
PowerPoint Slides for Flood Risk talk

A Tcl/Tk Add-on Script for Large Meshing Software
Wenny Wang
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
Wenny Wang
Presentation slides for above paper


Inserts/appends to TkCon
Roy Terry
Suggestions (and code) for improvements to Tkcon