Version 0 of Tcl 8.4 Roadmap

Updated 2000-08-01 11:47:20

This page is intended to document the progress that the individual contributors have made to their parts of the Tcl 8.4 roadmap at

Things that are definitely not going to appear on the roadmap should go on the Tcl 9.0 Wishlist instead.

Feather improvements

  1. Enable the Tcl_ObjType to be extended in a binary and source compatible way. Make sure that it has a version number so that future changes will be possible.
  2. Extend the Tcl_ObjType to support interfaces, need to resolve some threading issues.
  3. Add in support for opaque objects, this will probably be done at the same time as above as there is an opaque object interface and the interface mechanism needs to know how to deal with opaque objects. There will probably be some backwardly compatible changes to the parser.
  4. Implement the command interface and integrate it into the Tcl core.
  5. Implement opaque lambda and curried object types which provide command interfaces. This will be used to test the above so will probably be done at the same time. These objects will be seperate modules.
  6. Start investigating other interfaces, numeric, string, container and how best to integrate them into the core.
  7. Integrate containers with variables so that it is possible to have container variables (currently known as array variables) of all sorts of different types, such as hashes, vectors, ...
  8. Document it all as best as I can.

Additional items which Feather needs, or can make use of.

  1. Allow Tcl_Obj keys in the Tcl_HashTable. They hash and compare just like strings but are reference counted not copied like string keys are. They also take advantage of the extra information that a Tcl_Obj contains in order to speed up comparison.
  2. Fully Tcl_Obj'ify Tcl array variables so they use the above enhanced Tcl_HashTable.


  • I now have permission to release the Feather source code but am intending to work on integrating it into the core, rather than make it a TEA compatible package. Feather consists of 14 different modules which can be either built into either one library, or many libraries.
  • Patch for Tcl_Obj keys in the Tcl_HashTable is ready but has not yet been sent to Eric/Jeff.


  • Not all the items above will be done for 8.4 as some will require incompatible changes to the core.


  • How do variable traces work in the following situation ?
        set a(1) 2; trace variable a rwu vtrace; set b $a; set b(1) 3

Does the variable trace get triggered by the assignment of a to b ? Does it get triggered by the assignment of 3 to element 1 in b considering that b and a now reference the same internal structure.

Localisation of Tk widgets

  • Laurent Duperval will provide localisation strings for English and French
  • George Petasis will provide a Greek translation
  • Andreas Kupries will provide German translation
  • Juan Carlos Gil Montoro will provide Spanish translation

Localisation will only occur for widgets that use the library facilities in installdir/lib/tk8.4. On Windows, the widgets used are provided by the OS so the localisation is supposeds to be done at the OS (session?) level.

Laurent Duperval will build the message database and provide them to whoever wants to attempt a transalation. If you want to participate, drop me a line at mailto:[email protected] .