Tcl HomeTcl Home Hosted by

Google SiteSearch

Latest Release: Tcl/Tk 8.6.14 (Feb 28, 2024)

First released in 2012, Tcl/Tk 8.6.* is the current supported series of releases.

Highlights of Tcl 8.6

  • Object Oriented Programming: The commands of the TclOO package are now part of Tcl itself. This gives Tcl a built-in object system that is fully dynamic, class-based, and includes advanced features such as meta-classes, filters, and mixins.

    New version 4 of the popular package Itcl (aka incr Tcl) is also included, now built on a TclOO foundation, granting support for some traditional OO Tcl programming out of the box as well.

  • Stackless Evaluation: The evaluation of many levels of nested proc calls are no longer implemented as a stack of nested C routine calls. This revision in the internal implementation of Tcl evaluation makes deep recursion in Tcl scripts safe to do. But there's more...

    This new implementation enables a collection of new commands, coroutine, tailcall, yield, and yieldto that provide profound new capabilities and models of concurrency to Tcl scripts.

  • Enhanced Exceptions: New commands try and throw and a wealth of new -errorcode values enable far more precise trapping and handling of exceptions using a familiar construct.
  • Batteries Included: Tcl delivers in the pkgs subdirectory a bundled collection of third-party packages built and installed along with Tcl.
  • Thread-enabled Operations: A thread-enabled default build, a bundled Thread package, and new command interp cancel make Tcl 8.6 ready for your multi-threaded programming tasks.
  • SQL Database Powered: The bundled Tcl DataBase Connectivity (tdbc) interface package makes it possible to write your SQL database-powered scripts decoupled from any particular database engine. The bundled sqlite3 and tdbc::sqlite3 packages supply a powerful and popular SQL database engine ready to use.
  • IPv6 Networking: Both client and server sockets support IPv6 where platform support exists.
  • Built-in Zlib Compression: New command zlib provides utilities to handle compression of data and streams.
  • List Processing: New commands lmap and dict map enable the elegant expression of transformations over Tcl containers.
  • Stacked Channels by Script: New commands chan push and chan pop expose the power of stacked channels without the need to write C code.
  • Additional New Features: Temporary file creation, enhancements to list sorting and setting, dict filtering, half-close of bidirectional channels, encoding and decoding of binary sequences, finer control over load, and many many more.

Highlights of Tk 8.6

  • Built-in PNG Image Support: Photo images now support read/write in the PNG format, with the ability to set the alpha channel.
  • Busy Windows: New command tk busy is a variant of blt::busy that lets the interactivity of windows be suspended and restored as required by the needs of the program.
  • New Font Selection Dialog Interface: New command tk fontchooser provides a portable interface to the standard font selector of the platform, whether that is modal or not.
  • Angled Text: New option -angle $degrees to $canvas create text for rotating displayed text.
  • Moving Things on a Canvas: New commands $canvas moveto, $canvas imove and $canvas rchars for moving and manipulating canvas items.
  • Additional New Features: Text widget cursor control, more window manager hints, and a collection of modernizations in appearance and function.

See Changes in Tcl/Tk 8.6 for the complete list of script-visible change or TIP #311 for all 68 TIPs in the new releases.