This topic came up on comp.lang.tcl, initially in this thread [L1 ].

Some of the responses posted include:

  • Read Changes in Tcl/Tk 8.5
  • Scripts that depend on the exact behavior of cursor motion in the text widget may have problems.
  • Scripts that depend on details of font handling may have problems.
  • you're SOL if you're on Mac Classic. :-)
  • if you write scripts (or test suites!) that depend on formats of particular error messages coming from Tcl or Tk, you may have to change them. Various changes have been made to error messages.
  • If you use only tcl.h, tk.h and the exported functions from the stubs table you should be safe. (Ignore if you only code in Tcl, as opposed to Tcl+C.)
  • If you go from 8.4 to 8.5 it should be easy; simply recompile. (Ignore if you only code in Tcl, as opposed to Tcl+C.)
  • If you go from 8.x x <4 to 8.5 you may need to fix some reference to arguments which are not CONST (that changed in 8.4). (see Migration to 8.4: CONSTification ) (Ignore if you only code in Tcl, as opposed to Tcl+C.)
  • If you go from 7.x to 8.5 you can expect more work.
  • If you use tclInt.h or other nonpublic interfaces all bets are off...; try to recompile and see where the compiler bitches. (Ignore if you only code in Tcl, as opposed to Tcl+C.)
  • My very first test failed, trying xtem from http://www.ctan.org/tex-archive/support/xtem_texmenu/xtem/?action=/te ...
I get (when pressing the exit button)

bad variable name "geom(.xtemqd)": upvar won't create a scalar variable that
looks like an array element
     while executing
"global [set var]"
     (procedure "writeVarList2File" line 5)
:
(followed by more text that I won't quote)
:
  • Reply was: This statement used to be "useless": it would have created a variable that is completely unreachable from Tcl code. It is now an error.
  • If you were using the dict as an extension in 8.4, you may want to remove the package require dict since it is now built into 8.5.
  • There have been a number of significant upgrades for dicts in Tcl 8.5.
  • Integer operations no longer wrap around at 2^31.
  • tcl_precision changed - where previously numbers might have displayed as 3.3, under 8.5 they may show as 3.30000000000003 for example. I had to fix this by adding additional trace commands and shadow variables to reformat the numbers. Concerns use with -textvariable and the like. Normally numbers presented to the user should have been explicitly formated anyway.
  • grid behavior changed when the widget is smaller than the container. Tcl 8.5 added the grid anchor command but the 8.5 default is nw while 8.4 behavior was center.
  • Take a look at the entries in the "changes" files (included in the Tcl and Tk source code distributions) that are marked ** POTENTIAL INCOMPATIBILITY **.
  • If you were using the Tile extension in tk 8.4, the functions were moved into the ttk namespace.