Спустя 27 лет со времени формирования ветки 8.0 представлен релиз Tcl/Tk 9.0, динамического языка программирования, распространяемого совместно с кроссплатформенной библиотекой базовых элементов графического интерфейса Tk. Основное распространение Tcl получил как платформа для создания интерфейсов пользователя и как встраиваемый язык, при этом Tcl также подходит для быстрого прототипирования, web-разработки, создания сетевых приложений, администрирования систем и тестирования. Код проекта распространяется под лицензией BSD.
Значительная смена номера версии связана с внесением изменений, нарушающих обратную совместимость. В частности, в Tcl 9.0 изменена логика применения пространств имён к переменным – вместо глобального пространства имён по умолчанию отныне применяется локальное пространство имён. В случае несоответствия кодировок при вводе/выводе теперь возвращается ошибка. Прекращена интерпретация символа “~” в файловых путях как домашнего каталога пользователя. При форматировании чисел больше не учитывается значение tcl_precision.
Среди новых возможностей:
- Добавлена поддержка работы со строками, размер которых может превышать 2ГБ и ограничивается размером имеющейся памяти. Добавлена возможность использования 64-разрязных индексов в словарях и списках, позволяющих размещать очень большое число элементов.
- Обеспечена полная поддержка Unicode и кодировок символов, добавлены профили перекодирования ввода/вывода.
- Добавлена возможность работы с ZIP-архивами как c файловой системой.
- Добавлена поддержка прикрепления архивов к библиотекам и исполняемым файлам, что позволяет формировать однофайловые сборки, включающие все необходимые для работы приложения данные.
- Движок обработки событий переведён на использование системных вызовов epoll и kqueue (мультиплексирование через вызов select сохранено в качестве варианта для систем без поддержки epoll и kqueue).
- В библиотеке Tk предоставлен доступ к таким возможностям операционных систем, как уведомления, вывод на печать и системный лоток. Добавлена поддержка векторной графики в формате SVG, которую можно использовать для создания масштабируемых виджетов и тем оформления. Предоставлены возможности для доступа к метаданным и альфа-каналу изображений. Добавлена поддержка двухпальцевых экранных жестов.