Deprecated Parts of Tcl and Tk

This page is building up a list of bits of Tcl and Tk that are deprecated and which may be removed in 9.0.


  1. The case command.
  2. The old puts syntax.
  3. The opt package.


  1. The message widget.
  2. Stippling of canvas items and text tags (non-portable).
  3. Bitmap canvas items (not bitmap images!)
  4. Old pack syntax.

ZB 2009-11-26 Why "message" is deprecated? I think, short rationale in each case would make the reasons more clear...

Items marked as deprecated in Tcl and Tk without a specific version or date for removal yet


  • TclpMatchFiles
  • Tcl_Backslash
  • Tcl_DStringTrunc
  • Tcl_GlobalEval, Tcl_GlobalEvalObj, Tcl_VarEval, Tcl_VarEvalVA
  • Tcl_Read, Tcl_Write
  • Tcl_EvalTokens
  • Tcl_AppendResult, Tcl_AppendResultVA, Tcl_AppendElement, Tcl_FreeResult,
    • DKF: Tcl_AppendResult is not deprecated.
      • LV: Okay - was just basing that comment on SetResult.3's reference to Tcl_AppendResult right after saying Use of the following procedures is deprecated...
  • direct access to interp->result
    • DKF: This is gone in 8.6 unless you use a back-compat macro (whose name I forget) when compiling your code.
    • EG: The name of the macro is USE_INTERP_RESULT, and the direct access was deprecated by TIP #330 .
    • GJW: Use Tcl_SetResult and Tcl_GetStringResult, or their Tcl_Obj counterparts, instead.
  • direct access to interp->errorline
    • EG This is also gone in 8.6, and the name of the back-compat macro is USE_INTERP_ERRORLINE. The direct access was deprecated by TIP #336 .
    • GJW: Use Tcl_SetErrorLine and Tcl_GetErrorLine instead.

Tcl script API

  • trace variable, trace vdelete, trace vinfo
  • clock scan without a -format option provided
  • ARE regular expression comments ((?#ttt)
  • :<: and :>: regular expression bracketed constraints
  • tcltest commands and variables that are undocumented in the tcltest.n man page
    • DGP: Note that the timing for that deprecation would be the release of tcltest 3.0, which may well not be tied to the release of Tcl 9.0.


  • TK_CONFIG_OPTION_SPECIFIED bit in Tk_ConfigureWidget is deprecated
    • DKF: Actually, we want to scrap that whole API. Can't do it yet; it's still in use for things like canvas items. And the scrollbar too. But we want to get rid of it.

Tk script API

  • scrollbar widget set totalUnits windowUnits firstUnit lastUnit syntax is deprecated

dkf - 2009-11-24 18:07:08

Note that I may not have thought of everything. There's quite a few crufty corners in there, quietly mouldering away...

Siqsuruq - 2014-05-27 21:56:17

I still use pack, and I love it. Please don't remove it

AMG: The deprecated list says only "old pack syntax". I'm not sure what the old syntax is, but if what you're using now matches what's in the man page, you're probably fine.