26 сентября 2024 года состоялся релиз динамического языка программирования Tcl 9.0 и кроссплатформенной библиотеки базовых элементов графического интерфейса Tk 9.0. Выпуск предыдущей мажорной версии проекта Tcl/Tk 8.0 произошёл в марте 1999 года. Исходные коды Tcl/Tk написаны на C и Tcl и опубликованы на GitHub под лицензией BSD.
Основное распространение Tcl получил как платформа для создания интерфейсов пользователя и как встраиваемый язык. Проект Tcl также подходит для быстрого прототипирования, веб-разработки, создания сетевых приложений, администрирования систем и тестирования.
По информации OpenNET, значительная смена номера версии проекта связана с внесением изменений, нарушающих обратную совместимость. Например, в Tcl 9.0 изменена логика применения пространств имён к переменным и вместо глобального пространства имён по умолчанию там теперь применяется локальное пространство имён. В случае несоответствия кодировок при вводе/выводе в проекте возвращается ошибка. Также в решении прекращена интерпретация символа "~" в файловых путях как домашнего каталога пользователя. Ещё при форматировании чисел больше не учитывается значение tcl_precision.
Основные изменения и дополнения в Tcl/Tk 9.0:
• добавлена поддержка работы со строками, размер которых может превышать 2ГБ и ограничивается размером имеющейся памяти. Добавлена возможность использования 64-разрязных индексов в словарях и списках, позволяющих размещать очень большое число элементов;
• обеспечена полная поддержка Unicode и кодировок символов, добавлены профили перекодирования ввода/вывода;
• добавлена возможность работы с ZIP-архивами как c файловой системой;
• добавлена поддержка прикрепления архивов к библиотекам и исполняемым файлам, что позволяет формировать однофайловые сборки, включающие все необходимые для работы приложения данные;
• движок обработки событий переведён на использование системных вызовов epoll и kqueue (мультиплексирование через вызов select сохранено в качестве варианта для систем без поддержки epoll и kqueue);
• в библиотеке Tk предоставлен доступ к таким возможностям операционных систем, как уведомления, вывод на печать и системный лоток. Добавлена поддержка векторной графики в формате SVG, которую можно использовать для создания масштабируемых виджетов и тем оформления. Предоставлены возможности для доступа к метаданным и альфа-каналу изображений. Добавлена поддержка двухпальцевых экранных жестов.
Источник новости: habr.com