После 15 месяцев разработки опубликован выпуск Tcl/Tk 8.6.14, динамического языка программирования, распространяемого совместно с кроссплатформенной библиотекой базовых элементов графического интерфейса. Основное распространение Tcl получил как платформа для создания интерфейсов пользователя и как встраиваемый язык, при этом Tcl также подходит для быстрого прототипирования, web-разработки, создания сетевых приложений, администрирования систем и тестирования. Код проекта распространяется под лицензией BSD.
- Приведена к кроссплатформенному виду нормализация файловых путей и обработка символа “~” в путях.
- Имя пути, начинающееся с ‘https://’ не замещается через ‘/’ в том числе в Cygwin и в QNX.
- Разрешён пустой режим в [chan create] (“[chan create {} $cmd]”) для разрешения refchan версии [socket -server].
- Повышена производительность fork при использовании многопоточности с помощью vfork/spawn.
- Обеспечен вызов getsockname(2) в Tcl_MakeFileChannel(3) только тогда, когда это необходимо.
- Защита Tcl/tclsh усилена с помощью функции pledge(2) в OpenBSD или похожих механизмов.
- tcltest адаптирован для поддержки Tcl 9 (>= tcltest 2.5.7).
- Обеспечено применение замещающего символа при декодировании неполных последовательностей Unicode.
- Добавлена проверка mknod, tcdrain и uname в сборочных скриптах для VxWorks или других платформ.
- 32-разрядный Cygwin закончил своё существование, поэтому отпала потребность в аргументе “–enable-64bit” для Cygwin.
- Tcl_VarEval больше не считается устаревшим.
- В “[interp limit time -seconds]” решена проблема 2038 года.
- Из win/makefile.vc убрана опция utf16.
- zlib обновлён до версии 1.3.1.
- libtommath обновлён до версии 1.2.1.
- install-sh обновлён до версии 2020-11-14.01.
- Добавлена поддержка Unicode 15.1.
- База часовых поясов обновлена до выпуска tzdata2024a.
- В метаданных лицензии на бинарные файлы для Window упомянут университет Калифорнии.
- Исправлена ошибка с неправильным форматированием аргументов в man-странице.
- Исправлена ошибка с отсутствием сведений о Windows 11 в tcl_platforms.
- Исправлена ошибка с некорректным сравниванием строк на системах с порядком байтов big endian.
- Исправлена ошибка с падением при tcl_precision равным 15..18.
- Исправлены редко проявляющиеся падения при очистке потока memchan.
- Исправлена проблема с выводом ошибки в команде zip в случае, когда файловый комментарий/имя файла слишком длинные или не в кодировке iso-latin-1.
- Исправлена проблема с возвращением usec из Tcl_GetTime в Windows.
- Исправлено падение при применении трансформации канала в сокете TCP клиента.
- Предотвращено неправильное чтение в Tcl_UtfToUniChar.
- В macOS 13 SDK объявлена устаревшей функция sprintf().
- Исправлено переполнение аргумента позиции в [scan %num$mode].
- Исправлено падение при хвостовом вызове.
- Исправлены ошибки при clock scan и clock add в ошибочных случаях или с сокращёнными опциями.
- Исправлена ошибка с игнорированием неполных двойных байтовых кодировок, например в [encoding convertfrom gb12345 x].
- Устранено аварийное завершение tclvfs tkt при выходе из интерпретатора с загруженным tclvfs.
- Исправлена проблема, связанная со случаем, когда Tcl_GetUniChar осуществлял чтение символов за пределами длины строки для ASCII строк.
- Исправлена ошибка в версии для MS Windows: файлы с емодзи находятся через glob, но не определяются через file exists или open.
- Исправлена ошибка компиляции с помощью VC6 версии core-8-6-branch: “error C2065: ‘int16_t’ : undeclared identifier”.
- Исправлены ошибки в ClockGetdatefieldsObjCmd(): переполнение знаковых целых чисел и платформно-независимое поведение.
- Исправлена ошибка с инициализацией fakeObject.refCount в tclOO.c.
- Исправлена ошибка, когда use-after-return в AddressSanitizer ломал NRE-тесты и корутины.
- Исправление ложных ошибок от [clock format].
- Исправление реаллокации [exec %var%] в MS Windows. Это было запрещено в 8.6.13.
- Bсправление документации для Tcl_PkgRequire: строка со спецификацией версии относится к “package require”.
- Исправлена ошибка в [tcl_startOfPreviousWord string end-1].
- Устранено аварийное завершение, возникающее когда Tcl_ReadChars вызывается с Unicode-объектами.
- Устранено зацикливание при переопределении proc ::history.
- Устранено зацикливание в случае когда ::unknown перемещён в пространство имён.
Release.
Ссылка here.