Version 12 of The Mystical Tcl 9.0

Updated 2008-09-17 13:09:02 by LV

Retrospective

Back when Tcl 8.4 was released (2002), a paradigm was established according to which the Tcl 8.x series was almost at an end; there would be another minor version upgrade (Tcl 8.5) to take care of some minor itches, but after that all development effort would be focused on the brand new Tcl 9.0!

As it turned out, things didn't go according to this plan (but its mere existence may well have been instrumental to the way things happened). Concretely, Tcl 8.5 didn't get released until 2007 — over five years after 8.4 — and when it came it had so many new features that they would probably have been enough for two or three minor version increments, including

and much more (see Changes in Tcl/Tk 8.5 for the full list). Why is this? Well, since it "was going to be the last", lots of people wanted to put in "just one more feature", and as it turned out, there were plenty of improvements that could be had within the Tcl 8 series. Still, when 8.5 was finally released, it was clear that there would have to be an 8.6 as well (for the sake of TclOO), and as 8.6 is approaching feature-freeze, there are still several outstanding issues which shouldn't have to wait for 9.0, including:

  • Scriptable VFS in the core (TIP#228 [L1 ])
  • Zlib compression (TIP#234 [L2 ])
  • Unicode beyond \uFFFF

Suggestions and discussion

George Peter Staplin: July 13, 2004 - Tcl 9.0 feels like something just beyond the grasp of reality. There are many ideas for what needs to be done, but most ideas from what I've seen aren't being actively worked on. I can't blame anybody for that though. We work on what we want to -- Tcl is free after all.

I've talked with Joe Mistachkin about JIT for Tcl 9.0. I've come to realize it's quite a bit more complex than my JIT for Forth, because of Tcl being so dynamic. I'm actively working on a prototype design.

Salvatore Sanfilippo and I talked about BigNum support. He even has some C code that implements such a thing. There is also: Proper integers for Tcl 8.5 or 9.0 and Proper integers implementation. There are several existing packages that already implement BigNums, but one has a license restriction (GPL/LGPL) and the other uses strings and I've been told/read is much slower than native CPU integer operations. I've written little prototypes that use the x86 opcodes add/adc to deal with larger integer types, but more design will obviously be needed. As it turned out, bignum support came already with Tcl 8.5.


LV Is the purpose of this page to summarize whom is working on features that are waiting for Tcl/Tk 9.0? It might be worth taking a pass through the TIP list to see which ones are tagged as being for 9.0 ...

George Peter Staplin: The purpose behind this page is to bring Tcl 9.0 closer to reality. I want to know what others are doing to reach this goal.

LV Fair enough - take a look at the TIP list. Basically anything that people plan on making it into Tcl / Tk 9 should have a TIP submitted...


FB: I've created a project on SourceForge dedicated to everything Tcl9-related:

http://sourceforge.net/projects/tcl9/

Currently it only holds the mailing list for Cloverfield but I'd be very happy to host other projects as well.