2026年9月29日,Tcl社区在官方网站发布Tcl/Tk 9.1.0,这是继9.0之后的最新开发版本,目标是向稳定版过渡。发布页明确标注「Latest Release: Tcl/Tk 9.1.0 (Sep 29, 2026)」,并说明该版本在Tcl/Tk 9.0的基础上新增了大量命令与接口。对于这个诞生于1988年、由John Ousterhout创建的脚本语言生态而言,9.1是一次少见的密集功能更新,语言核心与图形工具箱两侧都有实质改动。
Tcl 9.1:三条新命令补齐Unicode与计时短板
Tcl端的更新围绕 Unicode 处理、计时精度与列表操作展开。最引人注目的是新增 unicode 命令,官方将其描述为「Unicode normalization」,也就是 Unicode 规范化,开发者从此不必依赖外部扩展就能在脚本里完成字符串规范化。配套的还有新的 C 例程 Tcl_UtfToNormalized 系列,把同样的能力暴露给 C 扩展层。
另一条新命令 timer 提供单调时钟(monotonic clock)与微秒级分辨率,适合做基准测试与精确延时。第三条新命令 lfilter 用于按条件从列表中筛选元素,过去这类操作只能靠 foreach 循环手工实现。此外 interp set 命令把子解释器的变量访问直接做进了核心,subst 命令新增 -backslashes、-commands、-variables 选项,switch 命令新增 -integer 选项,许多 C99 数学函数现在可以直接作为 expr 表达式的函数调用。
Tk 9.1:无障碍与双向文本成为一等公民
图形工具箱 Tk 的更新清单里,Accessibility screen reader support 被列在第一位——这是 Tk 历史上首次原生支持屏幕阅读器。HN 讨论中一位因视网膜脱落而视力衰退的用户 superkuh 表示,在 KDE 等主流桌面环境削减无障碍投入的当下,看到一个老旧工具箱补上这份能力尤其珍贵。与无障碍配套的是 Initial support for bidirectional text(RTL 语言)的初步支持,这对阿拉伯语与希伯来语用户意味着文本方向不再需要手工处理。
控件层面新增了 ttk::toggleswitch 开关部件,新增 tk attribtable 命令,Aqua 平台上的 send 命令经过重写改进, ttk::treeview 与 ttk::notebook 扩展了状态支持,标签支持旋转文本,列表框选择颜色得到改进,对话框被限制在物理屏幕宽度内,Windows XP 时代的外观支持被彻底移除。在平台适配上,macOS 文件系统路径改为大小写不敏感,Windows 的 auto_execok 与 exec 搜索路径 reform,大列表的内存效率经过改进,64 位大小的支持进一步扩展。
值得注意的是 C API 的几处破坏性变更:应用程序现在被要求显式调用初始化例程(Tcl_FindExecutable 或 TclZipfs_AppHook),C 时间 API 用 long long 替代 Tcl_Time 结构,这意味着依赖旧接口的扩展需要重新编译。社区在 comp.lang.tcl 上发布了完整公告,cmacrold4 用户给出链接。
HN 讨论里Wayland 支持的走向也被提及:cmacrold4 指出 Wayland 后端正在开发中,目标是明年的 Tk 9.2,逆变器选型上 glfw 而非 SDL,badsectoracula 推测原因是 glfw 更小更专注。trebligdivad 评价 Tcl/Tk 仍是「最容易上手的 GUI 系统,简单的东西几乎零成本就能跑起来」。讨论还触及 Tcl 在 EDA 领域的处境:许多 VLSI CAD 工具内置 Tcl 控制台,Karrot_Kream 认为 Tcl 本身设计良好,问题出在厂商把架构硬塞进 Tcl,而 CorrectHorseBatm 则直言在工作中很反感这些工具。 Zur 将近四十年的语言能在 2026 年同时拿到无障碍与 Unicode 规范化,本身就是一种生命力证明。