logo
Kurashizu Blogwhere ideas flow
  • Home
  • News
  • Blog
  • About
  • Home
  • News
  • Blog
  • About

© 2026 Kurashizu. All rights reserved.

Admin·New Post·Service Status
Powered by Cloudflare·30.10.26
← Back to news

Tcl/Tk 9.1 Released

Original article
tcl-lang.org|37 points|6 comments|by dmux|Sep 29, 2026

Announcement: The Arrival of Tcl/Tk 9.1

Tcl/Tk Logo

Current Status: Tcl/Tk 9.1.0 (released September 29, 2026) represents the ongoing developmental trajectory for Tcl and Tk, with the objective of achieving stable production releases by September 2026.

This version serves as an evolutionary step, integrating enhanced features and refined interfaces directly into the core foundation established by Tcl/Tk 9.0.

🚀 Tcl 9.1 Key Enhancements

The latest update introduces several powerful new commands and options to streamline development:

  • unicode: Facilitates Unicode normalization.
  • timer: Provides a monotonic clock with a resolution of μs\mu sμs (microseconds).
  • lfilter: A new utility to select specific items from a list.
  • interp set: Allows for direct variable access within a child interpreter.
  • subst: Now includes the following optional flags:
    • -backslashes
    • -commands
    • -variables

New C-Level API Additions

The following routines have been added to the C library to improve functionality:

RoutinePurpose
Tcl_UtfToNormalized*Handles Unicode normalization
Tcl_ListObjRangeExtracts a range from a list object
Tcl_ListObjRepeatRepeats list object elements
Tcl_ListObjReverseReverses the order of a list object

🛠 Technical Specifications & Changes

Initialization Requirements Applications are now mandated to execute an initialization routine. Developers must use either:

  1. Tcl_FindExecutable
  2. TclZipfs_AppHook

System & Memory Optimizations

  • Time Handling: The C time API has transitioned from Tcl_Time to using long long.
  • macOS: Filesystem paths are now treated as case-insensitive.
  • Memory: Internal list structures have been optimized to increase efficiency when handling massive lists.

Example Usage of New Commands:

# Example: Using the new lfilter command
set mylist {1 2 3 4 5 6}
set filtered [lfilter $mylist {expr {$it % 2 == 0}}] 
# Result: 2 4 6

🎨 Tk Improvements

The GUI toolkit has received several visual and functional polishments:

  • ttk::treeview & ttk::notebook: Added extended states.
  • Tk_CanvasTextInfo: General improvements.
  • Labels: Now support rotated text.
  • Dialogs: Message boxes are now constrained to the physical width of the screen.

Official Resource: This information is hosted on the primary Tcl Developer Xchange portal: www.tcl-lang.org.

For more details, visit the Home, About, Software, Core Development, Community, or Documentation sections, or contact [email protected].