GSoC/GCI Archive
Google Summer of Code 2011

Tcl/Tk Community

Web Page:

Mailing List:


The Tcl/Tk community includes anybody who uses Tcl/Tk, is interested in Tcl/Tk, or just wants to be in the club! Tcl/Tk is used by a wide range of governmental, commercial and educational institutions around the globe. Many well-known and well-regarded systems have either been developed in Tcl/Tk or are using Tcl/Tk as an embedded language (e.g. Expect, AOLserver, DejaGnu, Metakit, Starkit and SQLite). We communicate through IRC (see below), an active development list (see below) and a wiki ( The 10th European Tcl/Tk Users Meeting is planned to be held June 3-4, 2011 in Strasbourg, France. The Eighteenth Annual Tcl/Tk Conference (2011) is planned to be held October 24-28, 2011 in Manassas, Virginia, USA. Our application was written by the organizing committee of the annual Tcl/Tk conference, although all members of the Tcl/Tk community were encouraged to participate. The group we have put together to submit this application include members of the Tcl/Tk core team, developers from well-established Tcl/Tk projects (such as AOLserver and OpenACS), and educators.


  • A W3C Widget Packaging Standard Compliant Content Packaging Infrastructure for OpenACS The main goal of the project would be to write an OpenACS package for generating W3C widget standard conformant content packages out of learning materials that reside within the dotLRN system. As a starting point, generic code for generating such content packages out of OpenACS content repository items should be implemented. Further steps could involve other widget formats or the packaging of Wiki-based content/applications into widgets.
  • Create a binding to the Hwloc library. The goal of this project is to produce the necessary language extensions to facilitate programming of high-performance computing (HPC) applications in Tcl, and to better take advantage of modern hardware. In particular this project delivers: * A Tcl binding to HWloc using the TEA build system. * Comprehensive testing and examples. * Documentation. * Proper hosting.
  • Debugging tools for NRE The implementation of non-recursive engine in the Tcl interpreter has significantly improved its performance, however also has caused difficulty in examining internal Tcl call stack, which Gdb is not aware of. This problem needs to be promptly addressed to ease the interpreter debugging. In this project I would like to extend Gdb functionality to ease the internal structures investigation.
  • Extending and Evolving CRIMP CRIMP, the C Raster Image Manipulation Package, is a new package for image manipulation and processing in Tcl .It has limited functionality available due to its very young age, and most of what is present is very basic. The project aims at adding further functionality to CRIMP which includes:- Implementing Different Image analyzing and enhancing techniques. Implementing Different Filters and Operators for Image processing.
  • Micro-benchmarking extension: access to CPU performance counters The goal of this project is to design and implement a Tcl Micro-benchmarking extension with commands to interact with the CPU's hardware counters. We first plan to code an extension in C that works under Linux. Linux's Perf tool that provides access to hardware counters will be used to interact with the OS to get the hardware information.
  • stasher: Tcl_Obj intRep as cache also at script level Several Tcl_Obj types, for example lambdas, use the internal representation to cache information that can be, but is expensive to, compute from the string representation. It is currently not possible to use such caching purely from the script level. This proposal is to create a script level mechanism for (i) defining data to cache, the computation of which would be done by an ordinary Tcl command, and (ii) accessing cached data. I expect to make use of TclOO.
  • Tcl Plugin for Netbeans The idea is to create Tcl language support for Netbeans. Including creation of Tcl projects and files, syntax highlighting, running scripts and full debug support.