Після 15 місяців розробки опубліковано випуск Tcl/Tk 8.6.14, динамічної мови програмування, що розповсюджується спільно з кросплатформною бібліотекою базових елементів графічного інтерфейсу. Основне поширення Tcl отримав як платформа для створення інтерфейсів користувача і як вбудована мова, при цьому Tcl також підходить для швидкого прототипування, web-розробки, створення мережних програм, адміністрування систем та тестування. Код проекту розповсюджується під ліцензією BSD.
Серед змін:
- Наведено до кроссплатформенного виду нормалізація файлових шляхів та обробка символу «~» у шляхах.
- Назва шляху, що починається з '//' не замінюється через '/' включаючи 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 переміщений у простір імен.
Джерело: opennet.ru
