From Newsgroup: comp.lang.tcl
Tcl 9.1b1 Release Announcement
==============================
September 18, 2026
The Tcl Core Team is pleased to announce the release of Tcl 9.1b1.
This is the second beta release of Tcl 9.1.
Tcl is the Tool Command Language originated by John Ousterhout and his
team at U.C. Berkeley in the late 1980s. Its development is continued
by the efforts of a global network of volunteers guided by the Tcl Core Team.
We would like to express our gratitude to all those who submit bug
reports and patches. This information is invaluable in enabling us
to identify and eliminate problems. Such reports can be submitted here.
[Tcl Ticket Tracker](https://core.tcl-lang.org/tcl/ticket)
We ask that you log in (anonymous if you wish) to create tickets.
This deters abuse of the ticketing system:
[Tcl Contributor Login](https://core.tcl-lang.org/tcl/login)
Where to get the new releases
=============================
Tcl 9.1b1 sources are freely available as open source from the Tcl
SourceForge project's file distribution area:
[Tcl Source Distribution](https://sourceforge.net/projects/tcl/files/)
The Tcl 9.1b1 distribution is source code only. We keep links to some
third parties offering pre-built binaries for various systems here:
[Tcl Binary Distribution](https://www.tcl-lang.org/software/tcltk/bindist.html)
Tcl Summary
===========
The Tcl distribution delivers C source code that builds into a C library providing interpreters and related supports to execute programs written
in the Tcl programming language. Source code for the application program `tclsh` is also included. `tclsh` provides a shell for either interactive execution of Tcl commands, or execution of files containing Tcl programs.
Tcl is an extensible language, and the Tcl C library provides interfaces
for the creation of extension libraries adding new commands and features
to the core Tcl command set. Tcl 9 debuts the full feature set needed to package an application written in C and Tcl into a single file executable exploiting virtual filesystem archives.
Tcl 9.1 Release Summary
=======================
This is a new minor version of Tcl 9. When compared with the prior release
Tcl 9.0, there are new features and interfaces. Tcl 9.1 should remain compatible with scripts and packages written to the public interfaces of
Tcl 9.0. A summary of the most noteworthy changes is found below.
Tcl 9.1b1 is a beta release. The features and interfaces it provides are intended to be the same as the upcoming Tcl 9.1.0 release. Testing and review of beta releases serves several important functions, including review of usability and completeness of new features in both code and documentation, discovery of unknown regressions or incompatibilities, as well as the
discovery and correction of bugs. This is the opportunity to repair any defects or design flaws before they are promoted to the expectations of
a supported public interface. Please discover and correct the problems
Tcl 9.1.0 will cause to your projects before it happens.
Tcl Improvement Proposals (TIPs)
================================
Each new user-visible feature in Tcl should find its origins in a Tcl Improvement Proposal (TIP). TIPs are published, edited, considered and
voted in public, and should contain valuable information about how a
feature came to be the way it is. See the full collection here:
[TIP Index](https://tip.tcl-lang.org/)
Tcl Changes Summary
===================
(from changes.md in the source code distribution)
The source code for Tcl is managed by fossil. Tcl developers coordinate all changes to the Tcl source code at
[Tcl Source Code](https://core.tcl-lang.org/tcl/timeline)
Release Tcl 9.1b1 arises from the check-in with tag `core-9-1-b1`.
Highlighted differences between Tcl 9.1 and Tcl 9.0 are summarized below,
with focus on changes important to programmers using the Tcl library and writing Tcl scripts.
# New commands and options
- [New options `-backslashes`, `-commands` and `-variables` for `subst` command](
https://core.tcl-lang.org/tips/doc/trunk/tip/712.md)
- [New command `unicode` for Unicode normalization](
https://core.tcl-lang.org/tips/doc/trunk/tip/726.md)
- [New `timer` command, switch to monotonic clock and microsecond resolution](
https://core.tcl-lang.org/tips/doc/trunk/tip/723.md)
- [Remove `expr` behavior from `lseq`](
https://core.tcl-lang.org/tips/doc/trunk/tip/746.md) *Incompatibility*
- [File paths are now treated as case-insensitive on MacOS](
https://core.tcl-lang.org/tcl/tktview/e6ca0b1b) *Incompatibility*
- New command `tcl::registry` as a synonym for the `registry` command without needing
the registry package to be loaded. The registry module is now part of the core Tcl DLL in all build configurations.
- [New `lfilter` command for selecting items from a list](
https://core.tcl-lang.org/tips/doc/trunk/tip/735.md)
- [Many new functions from C99](
https://core.tcl-lang.org/tips/doc/trunk/tip/745.md), specifically: `acosh()`, `asinh()`, `atanh()`, `cbrt()`, `copysign()`, `dim()`, `erf()`, `erfc()`, `exp2()`, `expm1()`, `fma()`, `gamma()`, `ldexp()`, `lgamma()`, `log1p()`, `log2()`, `logb()`, `nextafter()`, `remainder()`, `signbit()`, and `trunc()`, and (for functions that return multiple values in their C99 API) the commands: `divmod`, `frexp`, `modf`, and `remquo`. (See [this page](
https://en.cppreference.com/w/c/numeric/math.html) for more information about these functions; the Tcl functions are _intentionally_ only thin wrappers around the functions in the C99 standard.)
- [New `switch` option `-integer` to compare values as integers](
https://core.tcl-lang.org/tips/doc/trunk/tip/730.md)
- [Reading and writing of child interpreter variables](
https://core.tcl-lang.org/tips/doc/trunk/tip/728.md)
- [Updated Tcl Bytecode opcodes](
https://core.tcl-lang.org/tips/doc/trunk/tip/720.md)
- New `tcltest::configure` option `-iterations` to control number of iterations of each test.
# New public C API
- [`Tcl_IsEmpty()` — checks if the string representation of a value would be the empty string](
https://core.tcl-lang.org/tips/doc/trunk/tip/711.md)
- [`Tcl_GetEncodingNameForUser()` — returns name of encoding from user settings](
https://core.tcl-lang.org/tips/doc/trunk/tip/716.md)
- [`Tcl_AttemptCreateHashEntry()` — version of `Tcl_CreateHashEntry()` that returns NULL instead of panic'ing on memory allocation errors](
https://core.tcl-lang.org/tips/doc/trunk/tip/717.md)
- [`Tcl_ListObjRange()`, `Tcl_ListObjRepeat()`, `Tcl_ListObjReverse()` — C API for new list operations](
https://core.tcl-lang.org/tips/doc/trunk/tip/649.md)
- [`Tcl_UtfToNormalized()`, `Tcl_UtfToNormalizedDString()` — C API for Unicode normalization](
https://core.tcl-lang.org/tips/doc/trunk/tip/726.md)
- [`Tcl_UtfToExternalEx()` and `Tcl_ExternalToUtfEx()` — C encoding API supporting output buffers larger than INT_MAX](
https://core.tcl-lang.org/tips/doc/trunk/tip/737.md)
- [New API for monotonic clock and microseconds resolution](
https://core.tcl-lang.org/tips/doc/trunk/tip/723.md)
- [Windows `auto_execok` enhancements and `exec` search reform](
https://core.tcl-lang.org/tips/doc/trunk/tip/753.md)
- [New timer API using long long in stead of Tcl_Time](
https://core.tcl-lang.org/tips/doc/trunk/tip/752.md)
# Changes in interpreter initialization
- [Custom applications must call Tcl\_FindExecutable or TclZipfs_AppHook to initialize Tcl](
https://core.tcl-lang.org/tips/doc/trunk/tip/732.md) *Potential incompatibility*
- [Search path for locating Tcl core script and encodings is changed](
https://core.tcl-lang.org/tips/doc/trunk/tip/732.md) *Potential incompatibility*
- [`Tcl_RegisterPostInitProc` callback for post-initialization of interpreters](
https://core.tcl-lang.org/tips/doc/trunk/tip/755.md)
# Performance
- [Memory efficient internal representations](
https://core.tcl-lang.org/tcl/wiki?name=New+abstract+list+representations)
for list operations on large lists.
- [Continued 64-bit capacity: Command line arguments larger than 2Gb](
https://core.tcl-lang.org/tips/doc/trunk/tip/626.md)
- [Support for long paths on Windows](
https://core.tcl-lang.org/tips/doc/trunk/tip/744.md)
- [Faster UTF-8 encoding and I/O](
https://core.tcl-lang.org/tcl/wiki?name=Faster+UTF+encoding)
- Faster interpreter creation
# Bug fixes
- [Inconsistent `glob` matching on MacOS](
https://core.tcl-lang.org/tcl/tktview/e6ca0b1b)
- [`file normalize` does not uniquely identify a file on MacOS](
https://core.tcl-lang.org/tcl/tktview/10890417)
- [Inconsistencies between `cd` and `file normalize` for volume-relative paths on Windows](
https://core.tcl-lang.org/tcl/tktview/bca391ab)
- [Tcl cannot run from an arbitrary build directory with --disable-zipfs](
https://core.tcl-lang.org/tcl/tktview/006bef5d)
- [Crash on finalization with an active thread running.](
https://core.tcl-lang.org/tcl/tktview/e55a589d)
- [Crash on use-after-free in Windows socket thread.](
https://core.tcl-lang.org/tcl/tktview/06f19cc4)
# Updated bundled packages, libraries, standards, data
- Unicode 18.0.0 (draft)
- platorm 1.2b1
For additional information:
===========================
Please visit the Tcl Developer Xchange web site:
[Tcl Developer Xchange](https://www.tcl-lang.org/)
This site contains a variety of information about Tcl/Tk in general, the
core Tcl and Tk distributions, Tcl development tools, and much more.
--
Tcl Core Team and Maintainers
Don Porter, Tcl Core Release Manager
--
| Don Porter Applied and Computational Mathematics Division |
|
donald.porter@nist.gov Information Technology Laboratory |
|
http://math.nist.gov/~DPorter/ NIST | |______________________________________________________________________|
--- Synchronet 3.22a-Linux NewsLink 1.2