Changes in Tcl/Tk 8.5

Changes in Tcl/Tk 8.5

Please note this page is for reference, not discussions (see Changes in Tcl/Tk)

New Command Line Options

tclsh -encoding encoding
See TIP 137 and 151
wish -encoding encoding

Tcl Changes

New Language Syntax

Changes to Tcl Commands

New Commands

apply
TIP 194
chan
TIPs 208%|%208 , [L1 ], and 287
dict
TIPs 111 , 163 , and 212
lassign
TIP 57
lrepeat
TIP 136
lreverse
TIP 272
tcl::mathfunc::abs
TIP 232
tcl::mathfunc::acos
tcl::mathfunc::asin
tcl::mathfunc::atan
tcl::mathfunc::ceil
tcl::mathfunc::cos
tcl::mathfunc::cosh
tcl::mathfunc::double
tcl::mathfunc::exp
tcl::mathfunc::floor
tcl::mathfunc::fmod
tcl::mathfunc::hypot
tcl::mathfunc::int
tcl::mathfunc::log
tcl::mathfunc::log10
tcl::mathfunc::pow
tcl::mathfunc::rand
tcl::mathfunc::round
tcl::mathfunc::sin
tcl::mathfunc::sqrt
tcl::mathfunc::srand
tcl::mathfunc::tan
tcl::mathfunc::tanh
tcl::mathfunc::wide
tcl::mathfunc::bool
TIP 182
tcl::mathfunc::entier
TIP 237
tcl::mathfunc::isqrt
TIP 299
tcl::mathfunc::min
TIP 255
tcl::mathfunc::max
TIP 255
tcl::mathop::!
TIP 174
tcl::mathop::!=
tcl::mathop::%
tcl::mathop::&
tcl::mathop::*
tcl::mathop::+
tcl::mathop::-
tcl::mathop::/
tcl::mathop::<
tcl::mathop::<<
tcl::mathop::<=
tcl::mathop::==
tcl::mathop::>
tcl::mathop::>=
tcl::mathop::>>
tcl::mathop::^
tcl::mathop::eq
tcl::mathop::ne
tcl::mathop::|
tcl::mathop::~
tcl::mathop::**
TIPs 123 and 274
tcl::mathop::in
TIP 201
tcl::mathop::ni
tcl::pkgconfig
TIP 59
tcl::tm::path
TIP 189
tcl::tm::roots
unload
TIP 100

Removed Commands

pkg_compareExtension

New Subcommands

clock add
TIP 173
clock microseconds
TIP 209
clock milliseconds
TIP 209
encoding dirs
TIP 258
info frame
TIP 280
interp bgerror
TIP 221
interp limit
TIP 143
namespace ensemble
TIP 112
namespace path
TIP 229
namespace unknown
TIP 181
namespace upvar
TIP 250
package prefer
TIP 268
string is list
TIP 269
string is wideinteger
TIP 188
string reverse
TIP 272

Expanded Syntax / New Options

binary format tnmrRqQ arg ...
TIP 129
binary scan value tnmrRqQu
TIPs 129 and 275
catch script ?resultVar? ?optionsArray?
TIP90
clock scan string ?-format format? ?-locale name? ?-timezone timeZone?
TIP173
clock format integer ?-locale name? ?-timezone timeZone? ?-format format?
TIP173
New format sequences for format: %Ec %EC %EE %Ex %EX %Ey %EY %J %N %Od %Oe %OH %OI %Ok %Ol %Om %OM %OS %Ou %Ow %Oy %P %Q %z %+
exec ?-ignorestderr? executable ?2>@1?
TIPs 202 and 267
New expr operators **, in, ni
TIPs 123 , 274 , and 201
New expr functions bool(), entier(), isqrt(), min(), max()
TIPs 182 , 237 , 299 , 255 , and 255
file attributes -readonly -creator -type -hidden -rsrclength
TIP 118
format %lld%lli%llo%llx%llX
TIP 237
interp invokehidden interp -namespace namespace
TIP207
lsearch -index -nocase -subindices
TIPs 127 and [L2 ]
lsort -indices -nocase
TIPs 217 and [L3 ]
open filename BINARY
TIP 183
open filename [rwa]b
open {| executable 2>@1}
TIP202
package present package ?requirement ...?
TIP268
package require package ?requirement ...?
TIP268
package vsatisfies requirement ...?
TIP268
return -level level -errorline line
TIP90
scan %lld%lli%llo%llx%llX
TIP237
source -encoding encoding
TIPs 137 and 151
switch -nocase -matchvar varName -indexvar varName
TIPs 75 and 241

New unsupported commands

tcl::unsupported::disassemble

Changes to Tcl variables

New global variables

tcl_platform(pointerSize)
TIP291

Removed global variables

auto_oldpath
tcl_libPath
TIP258

Changed Tcl behavior

clock clicks
returns microseconds since the epoch. TIP 124
expr
script level definition of functions TIP232
expr, incr, string is double
Unlimited range of integer values supported; integer calculations no longer overflow. TIP237
incr
auto-initializes unset variable [L4 ]
global varName ( elemName ) raises error
TIP184
lindex,linsert,lrange,lreplace,lset,string index: indices support integer[+-]integer and end[+-]integer syntax
TIP176
list properly quotes the # character
TIP148
namespace import returns imported commands
TIP261
package unknown callback takes {packageName args} arguments where args is list of requirements
TIP268
upvar level varName ( elemName ) varName ( elemName ) raises error
TIP184
Default value of tcl_precision is 0, meaning as many digits as needed for no loss of precision
TIP132
Default package unknown supports Tcl Modules
TIP189
The following commands are script-modifiable ensembles
chan, clock, dict, info, string

Tk Changes

Changes to Tk Commands

New Commands

tk::pkgconfig
TIP205
tk::button
TIP248
tk::canvas
tk::checkbutton
tk::entry
tk::frame
tk::label
tk::labelframe
tk::listbox
tk::menubutton
tk::message
tk::panedwindow
tk::radiobutton
tk::scale
tk::scrollbar
tk::spinbox
tk::text
tk::toplevel
ttk::button
ttk::checkbutton
ttk::combobox
ttk::entry
ttk::frame
ttk::labelframe
ttk::label
ttk::menubutton
ttk::notebook
ttk::panedwindow
ttk::progressbar
ttk::radiobutton
ttk::scrollbar
ttk::separator
ttk::sizegrip
ttk::style
ttk::treeview

New Subcommands

grid anchor
TIP 146
menu xposition index
TIP 286
text count
TIP 155
text peer
TIP 169
text replace
TIP 155
text window -blockcursor boolean -tabstyle style
TIP 155 , 256
tk inactive
TIP 245
wm iconphoto
TIP 159
wm manage and wm forget
TIP 125

Expanded Syntax / New Options

canvas create line -smooth raw
TIP 168
canvas create line -smooth true
canvas create polygon -smooth raw
canvas create polygon -smooth true
canvas create text -underline index
TIP 260
checkbutton -tristatevalue value -tristateimage image
TIP 110
event generate window event -data string
TIP 165
font actual font char
TIP 300
panedwindow paneconfigure window -hide boolean -stretch value
TIP 177 [L5 ]
radiobutton -tristatevalue value -tristateimage image
TIP 110
text search -all -nolinestop
TIP 113
tk_messageBox -detail detail
TIP 152
wm attributes -alpha fraction -fullscreen -topmost -zoomed, and -notify (on MacOS X)
TIPs 222 , 223 , 231
-typevariable added to tk_getOpenFile and tk_getSaveFile
TIP 242
grid
adds the grid anchor command and the default anchor is nw (while 8.4 behavior was center)

Changed Tk behavior

checkbutton, radiobutton
new look. TIP 109
grid columnconfigure, grid rowconfigure accept widget names and all
TIP 147
text does smooth scrolling
TIP 155
winfo toplevel supports extension-created windows
TIP 153
Photo out of memory give error, not panic
TIP 116
Enhanced Tk Font Handling (named fonts, etc.)
TIP 145

New Events

<TraverseIn>
TIP 204
<TraverseOut>
TIP 204
<KP_Enter>
on Windows TIP 158

Changes to Bundled Packages

New packages

ttk::theme::alt
8.5 TIP 248
ttk::theme::classic
8.5 TIP 248
ttk::theme::default
8.5 TIP 248
ttk::theme::clam
8.5 TIP 248
tile 0.8.0
TIP 248
Ttk 8.5.0
TIP 248
platform 1.0.3
TIP 291
platform::shell 1.1.3
TIP 291
tcl::tommath 8.5.0

Updated packages

dde 1.3.2
TIP 120 , 130 , and 135
msgcat 1.4.2
TIP 156
opt 0.4.5
registry 1.2.1
tcltest 2.3.0

What other kinds of changes will a developer have to make when moving from Tcl 8.4 to 8.5?

Migration to 8.5: Big integers
Migration to 8.5: Tile
Tcl/Tk 8.5: New public C routines