Dev News Daily ENDE

Tcl/Tk 9.1 adds Unicode normalization, a monotonic timer and screen readers

Tcl/Tk 9.1.0 was released on 29 September, according to the project's release page. It builds on the foundation of Tcl/Tk 9.0 with new commands, C interfaces and toolkit features.

On the Tcl side, the new unicode command and the Tcl_UtfToNormalized* C routines add Unicode normalization. A timer command provides a monotonic clock with microsecond resolution, and lfilter selects items from a list. interp set gives access to variables in a child interpreter, subst gains -backslashes, -commands and -variables options, and switch gains -integer. Many C99 math routines are now available as expr functions. Internally, list storage is more memory-efficient for large lists and support for 64-bit sizes is extended.

One change needs attention from embedders: applications are now required to call an initialization routine, either Tcl_FindExecutable or TclZipfs_AppHook. Filesystem paths on macOS become case-insensitive, and the search behaviour of auto_execok and exec on Windows has been reworked, as have the searches for the script library and encodings.

Tk 9.1 brings screen reader support, initial support for bidirectional text and right-to-left languages, a new ttk::toggleswitch widget and a tk attribtable command. The send command is revised on macOS (Aqua), message boxes and dialogs are limited to the physical screen width, and obsolete support for Windows XP appearances is removed.

Tcl/Tk 9.1 adds Unicode normalization, a monotonic timer and screen readers
Tcl/Tk 9.1 adds Unicode normalization, a monotonic timer and screen readers — Dev News Daily

Why it matters

Tcl lives on inside test harnesses, EDA tools and long-lived admin scripts, where upgrades are rare and deliberate. For those users the initialization requirement and the changed path handling on macOS and Windows are the lines to check first; the accessibility and right-to-left work make Tk more usable for applications that still ship its interfaces.

Primary source
Tcl Developer Xchange
https://www.tcl-lang.org/software/tcltk/9.1.html
Written by Victoria Shinder.