From: E.Allaert Date: 05 November 1999 VLT-SW-OCT99 - RELEASE NOTES FOR TCL/TK ======================================= The Tcl/Tk included with the VLT Common Software October 1999 release contains the following core plus extensions: - Tcl 8.0.5 - Tk 8.0.5 - [incr Tcl] 3.0.1 - [incr Tk] 3.0.1 - iwidgets 3.0.1 - tclX 8.0.4 - TkX 8.0.4 - BLT 2.4i - msqltcl 1.99 - img 1.2 - Tktable 2.5 - snack 1.6 - expect 5.28 - Sybtcl (HP-UX only) Several of these extensions have been patched to deal with known problems. The VLT OCT99 release also provides the following Tcl/Tk based utilities: - tclCheck 1.1.13 - tkman 2.1b2 (with rman 3.0.7) The tkinspect utility is no longer part of the VLT Common SW release, as it does not support Tcl 8.0. Changes (with respect to FEB99): - there are several compatibility-issues as an upgrade to a new major Tcl/Tk release is involved. Most of these issues are described in the following WWW-documents: http://www.scriptics.com/software/8.0.html http://www.tcltk.com/itcl/itcl3-port.html The most relevant incompatibilities have been collected into a "compat" configuration file, as part of the compat-module version 1.20 or higher (compat/config/compat.TclTk8.config). Look at this file and the compat(n) manpage for more info. The following are "subtle" incompatibilities which cannot be caught by the compat utility; they all have to do with a clear-cut separation between lists and strings (while this boundary was much more diffuse in previous Tcl versions): * list operations on badly formed lists will fail, even if the "bad" element(s) is/are not accessed. Example: lrange {a b "c d"extra_char_after_quote f} 0 1 * list operations on lists with multiple spaces between elements result in lists with single spaces. Example: lrange {a b c d} 1 2 * list elements containing starting/ending quotes will loose them (if no spaces are involved) or have them replaced by braces during list operations. Example: lrange {a b c "d"} 2 end lrange {a b c "d e"} 2 end - there is a problem with "variable shadowing" in [incr Tcl], i.e. when a method argument has the same name as an object variable. This problem only appears when the argument is de-referenced within a "switch" statement". The solution is simple: make sure your method arguments do not have the same name as object variables, ie. do not rely on "shadowing". This problem is demonstrated by the following code-snippet: class Test { private variable var {object variable} public method varTest {var} { puts "outside switch: var = $var" switch -- 1 1 {puts "inside switch: var = $var"} } } [Test #auto] varTest "argument variable" New Features (with respect to FEB99): - Tcl/Tk 8.0 contains a byte-code compiler. Although it is not yet optimized, you should still see a performance improvement, whose magnitude depends on the instruction set used and the programming style. Typically applications may execute up to twice as fast. - Further explanations about additional new few features of Tcl/Tk and the extensions used can be found in the respective manpages and WWW pages. ____oOo____