Released September 10, 2002
Tcl 8.4 development was about 2 years from first code to first stable release. It includes lots of new features and enhancements, as well as significant performance improvements in many areas (for about 25% overall speed increase from 8.3). See
Tcl Benchmarks for performance differences.
Tcl: New Commands- lset (TIP#33 [1] and TIP#45 [2] )
Tcl: New Subcommands- array statistics
- file link
- file normalize
- file separator
- file system
- info functions
- interp recursionlimit & interp recursionlimit (TIP#87 [3])
- memory active (TCL_MEM_DEBUG)
- memory init (TCL_MEM_DEBUG)
- memory onexit (TCL_MEM_DEBUG)
- memory tag (TCL_MEM_DEBUG)
- namespace exists
- trace add variable|command|execution (TIP#62 [4])
- trace remove variable|command|execution
- trace info variable|command|execution
Removed Tcl subcommands- memory display (TCL_MEM_DEBUG)
Tcl: Expanded Syntax / New Options array names <arrayName> ?mode? ?pattern? ;# mode option to specify pattern type is new
binary scan <string> wW ...
binary format wW ... ;# wide (64-bit) integer support in 'binary' command
expr wide(...) ;# wide (64-bit) integer support in 'expr'
expr {$a ne $b || $c eq $d} ;# new true string (in)equality operators in 'expr'
fconfigure <serial> ;# TIP#35 improved x-platform serial port control
-mode <baud,parity,data,stop>
-handshake <type>
-queue
-timeout <msec>
-ttycontrol <signalMap>
-ttystatus
-xchar <charPair>
-pollinterval <msec>
-sysbuffer <sizeList>
-lasterror
[5]
glob -tails <pattern> ... ;# new -tails option
info script ?filename? ;# can now specify a filename
lindex <list> ?index ...? ;# TIP#22 'lindex' can now take multiple index args
;# for accessing items in nested lists more easily
[6]
lsearch ;# TIP#80 additional options to lsearch for improved
-all ;# control and speed
-ascii
-decreasing
-dictionary
-increasing
-inline
-integer
-not
-real
-sorted
-start
[7]
regsub ?switches? exp string subSpec ?varName?
;# TIP#76 regsub can now return modified result string
[8]
unset ?-nocomplain? ?--? ?name ...? ;# new optional -nocomplain arg to unset
New Tcl global variablesTcl: Updated packages- dde 1.2
- http 2.4.2
- msgcat 1.3
- tcltest 2.2
Tcl: Changed behaviorfcopy now respects encodings of its channels.
format %ld and likewise treat argument as wide integer
glob now respects the platform-specific notion of hidden files.
scan %ld and likewise no longer ignore the field width specifier
source treats the byte 0x1a as an end-of-file character on all platforms, as does
tclsh for the initial script.
subst treats
break and
continue during command substitution differently
Global variables
tcl_traceExec and
tcl_traceCompile only have their tracing function in the TCL_COMPILE_DEBUG variant of Tcl.
Tk: New CommandsTk: New Subcommands- clipboard get
- image inuse
- photo transparency (TIP#15 [11], TIP#98 [12])
- text edit (TIP#26 [13])
- tk caret (TIP#96 [14])
- tk windowingsystem (TIP#108 [15])
- wm attributes (TIP#95 [16])
- wm stackorder (TIP#74 [17])
Tk: Removed Privates- All private commands matching tk[A-Z]* are now ::tk::[A-Z]*
- tkPriv array is now ::tk::Priv (TIP#44 [18])
Tk: Expanded syntax/new options bell ?-nice?
button pathName
-compound
checkbutton pathName
-compound
-overrelief
-offrelief
entry pathName
-state readonly
-disabledbackground
-disabledforeground
-readonlybackground
grid configure ... ;# TIP#21 asymmetric padding for pack/grid geometry managers
pack configure ...
-padx {left right}
-pady {top bottom}
[19]
grid rowconfigure|columnconfigure master index
-uniform ;# TIP#37 -uniform option for grid rows/cols
[20]
listbox pathName
-activestyle dotbox|underline|none ;# TIP#94 -activestyle option
-disabledforeground
-state
[21]
menu add type ?... -compound ...?
menubutton pathName ?... -compound ...?
photo copy sourceImage ?... -compositingrule ...?
radiobutton pathName
-compound
-offrelief
-overrelief
text pathName ?-autoseparators? ?-undo? ;# TIP#26 text widget undo/redo support
[22]
text edit ...
text delete index1 index2 index3 ... ;# TIP#93 extended get/delete commands
[23]
text get index1 index2 index3 ...
text -maxundo <int> [24]
tk_getOpenFile
-multiple
-message
tk_getSaveFile
-message
Tk: New Event Types (TIP#47 [25])- <CirculateRequest>
- <ConfigureRequest>
- <Create>
- <MapRequest>
- <ResizeRequest>
Tk: New virtual events on Text widgets (TIP#26 [26])- <<Selection>>
- <<Modified>>
Tk: New Bind Substitutions (TIP#47 [27])Tk: Changed behaviortk_getOpenFile and
tk_getSaveFile are different in whether the returned file name includes the extension.
wm transient .t .t now raises an error.
A transient toplevel now mirrors the state of its master.
photo copy now copies transparency info correctly, and animated GIFs work.
wish treats a 0x1a character (^Z - the Windows end-of-file marker) as an end of file character in the initial script on all platforms.
All Tk dialogs are now localized, including use of
ampersand magic.
Improved
Input Method Editor interfacing on Unix (XIM) (but only tested on SuSE Linux) and Windows IME which allows for over-the-spot editing.
[grid
slave -col] no longer works. It must be spelled out as [grid
slave -column] because
-col is an ambiguous option.
See also edit