You are here

Tcl/Tk 8.5

I have just removed the compatibility code for Tcl/Tk 8.4 in cvs, and Coccinella therefore now requires Tcl/Tk 8.5. Since 8.5 was released already in December last year I thought that five months should be enough to allow for people running Coccinella from sources to get a Tcl/Tk 8.5 installation.

Well, there is not much to install if you run a single executable tclkit which can be found for most platforms. If you don't find your platform there it is not difficult to build Tcl/Tk yourself. Since the tile package is contained in the core Tk of 8.5, only the treectrl and tkpng packages require additional builds.

Speaking of 8.5, the direct reason the switch is made now is that I used the dict command for the new themeing engine. As typical with Tcl, commands (and manual pages) look deceptively simple. The hardcore programmer who is used to pointers and reference counts can't understand that Tcl has it all built in. Dictionaries can be seen as a hash table that maps from arbitrary strings to arbitrary strings. But here it can also contain other dicts in a recursive manner. This makes it very useful for representing a kind of arrays with multiple keys. Before 8.5, the standard way was to form a string like arrayName($key1,$key2) where "$key1,$key2" was used to lookup the value. This was clearly very ugly. With dicts you set values as:

dict set myDict $key1 $key2 ... $value

which implicitly creates a hierarchy of dictionaries.