Latest Release: Tcl/Tk 8.6.10 (Nov 21, 2019) First released in 2012, Tcl/Tk 8.6.* is the current supported series of releases. Download Tcl/Tk 8.6.10 Source Releases Download ActiveTcl 8.6.9 Binaries (lagging the core) 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.

The commands of the 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. 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.

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... 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.

New commands and and a wealth of new 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.

Tcl delivers in the 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.

A thread-enabled default build, a bundled package, and new command 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.

The bundled Tcl DataBase Connectivity ( ) interface package makes it possible to write your SQL database-powered scripts decoupled from any particular database engine. The bundled and packages supply a powerful and popular SQL database engine ready to use. IPv6 Networking: Both client and server socket s support IPv6 where platform support exists.

Both client and server s support IPv6 where platform support exists. Built-in Zlib Compression: New command zlib provides utilities to handle compression of data and streams.

New command 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.

New commands and 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.

New commands and 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.

Photo images now support read/write in the 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 command is a variant of 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.

New command 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.

New option to for rotating displayed text. Moving Things on a Canvas: New commands $canvas moveto , $canvas imove and $canvas rchars for moving and manipulating canvas items.

New commands , and 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.

