Tcl 8.4 Roadmap

Most of this page appears to be historical. It would be a worthwhile project to determine what of this roadmap has not happened as of Tcl 8.4.2 and to move that along to a new roadmap, if deemed useful.

Jeffrey Hobbs provided a preliminary timeline for the new 8.4 release in c.l.t. today (12. July 2002) Quote:

  • 8.4b1 was July 5th.
  • 8.4b2 should be August 5th.
  • 8.4.0 should be September 5th.

I don't know of any major problems or issues that would impair the above schedule at this time.


This page is intended to document the progress that the individual contributors have made to their parts of the Tcl 8.4 roadmap at . However, it is apparently not being updated. So it would be better, at this juncture, to watch the TIP list as well as the TCT mailing list.

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

LV: Can someone in the know update the following to indicate what has happened to date ? Also, it probably would be worthwhile to move those things that seem to have little chance of occuring with Tcl 8.4 into the Tcl wishlist type page.

DGP -- There is no one more in the know than anyone else. Actual proposed enhancements, and their progress (acceptance? completed implementation?) can be browsed in the TIP archive.

The TIP archive as well as the TCLCORE mailing list are public, open for all to read and participate.

As for what features will finally bring the TCT to decide to feature-freeze Tcl/Tk 8.4 and start the beta releases toward 8.4.0... you would need 15 mind reading devices to find out. Or, you can find out what the TCT thinks by testing us. Propose a release schedule you like. Either (enough of) the TCT will like it too, and it will happen, or (enough of) the TCT will oppose your proposal, and in their objections you'll find out what's really holding back an 8.4.0 release.

LV: Let me rephrase then - is there anyone making use of the wiki who has been reading enough of the past 6 months or more of the TCT mailing list to provide for wiki readers an updated view of which of the following items are currently in the Tcl 8.4 beta, which items have been proposed either as TIPs or at least have a name associated, and finally, which ones might possibly have been mentioned on the TCT mailing list as being required before Tcl/Tk 8.4.0 is released? I just don't have the time to read over 6+ months of messages to try to sort this out - but perhaps one or more people have enough interest in some of the following features that they would be willing to plug in URL references or even just observations.

However, if someone is wandering through this page and think that this ROADMAP is some sort of 'official statement of intent', please understand that as far as I can determine that does not appear to be the case.

tclguy Jeffrey Hobbs in early October, 2001, posts to news:comp.lang.tcl that he wants to see the following things happen before Tcl / Tk 8.4 is released:

There is an up-port of a lot of Mac stuff that is only in the 8.3 branch. There is the accepted but not yet commited panedwindow widget. There is the handling of adding itcl as a module in the main distribution (TIP #50). lset awaits being created as well. It should finally fix XIM on Windows to get the caret in the right place (requires new callbacks in the widgets). XIM on Unix would be good to. It needs an update of the encodings to handle the locales more correctly, and recognize the IANA encoding names. There are potential Windows Tk speedups. Henry Spencer has promised an update to the RE sometime. The VFS needs to be hammered on for stability. It needs to be purified again. There is the Tk text widget enhancements to be added (TIP #26).

In a later post, JH also writes:

> :Shall I go on? > > Yes, please do. I know that I (and quite a number that email me each > week) haven't figured out yet how to locate the latest versions of these > plans for Tcl and Tk's future.

It is a mix of features and known bugs listed at SourceForge, ideas that have been approved or are near that based on TIPs, and further issues that sit in my inbox (some old, some new).

It is harder to pin down a roadmap now than before, due to the spread out load on other maintainers with various schedules. I no longer do a majority of the work, and I can't expect to create a schedule for others providing help in their spare time. I too do this now as often in my spare time as not, as my job at ActiveState focuses on Tcl-based products more than any direct dedication to core development - aside from directed support contracts.

I could say 8.4a4 next month, 8.4b1 (that means no more feature creep) in January, 8.4b2/8.4.0 in Feb, but what if that misses a major feature people were looking forward to, like the incr Tcl module or new widgets?

[During the summer of 2001, Paul Duffin confirmed for Tcler's that the source for his original implementation of Feather was lost somewhere during his move from IBM. Thus, if Feather improvements are to be implemented in Tcl, someone else in the community will need to start coding...]

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. AK: AFAIK this stuff is in 8.4 since a2.


  • 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] .