Выпуск языка программирования Tcl 9.0

Спустя 27 лет со времени формирования ветки 8.0 представлен релиз Tcl/Tk 9.0, динамического языка программирования, распространяемого совместно с кроссплатформенной библиотекой базовых элементов графического интерфейса Tk. Основное распространение Tcl получил как платформа для создания интерфейсов пользователя и как встраиваемый язык, при этом Tcl также подходит для быстрого прототипирования, web-разработки, создания сетевых приложений, администрирования систем и тестирования. Код проекта распространяется под лицензией BSD.

Значительная смена номера версии связана с внесением изменений, нарушающих обратную совместимость. В частности, в Tcl 9.0 изменена логика применения пространств имён к переменным – вместо глобального пространства имён по умолчанию отныне применяется локальное пространство имён. В случае несоответствия кодировок при вводе/выводе теперь возвращается ошибка. Прекращена интерпретация символа “~” в файловых путях как домашнего каталога пользователя. При форматировании чисел больше не учитывается значение tcl_precision.

Среди новых возможностей:

  • Добавлена поддержка работы с 64-разрядными переменными, что позволяет использовать значения, превышающие 2 ГБ.
  • Обеспечена полная поддержка Unicode и кодировок символов, добавлены профили перекодирования ввода/вывода.
  • Добавлена возможность работы с ZIP-архивами как c файловой системой.
  • Добавлена поддержка прикрепления архивов к библиотекам и исполняемым файлам, что позволяет формировать однофайловые сборки, включающие все необходимые для работы приложения данные.
  • Движок обработки событий переведён на использование системных вызовов epoll и kqueue (мультиплексирование через вызов select сохранено в качестве варианта для систем без поддержки epoll и kqueue).
  • В библиотеке Tk предоставлен достуап к таким возможностям операционных систем, как уведомления, вывод на печать и системный лоток. Добавлена поддержка векторной графики в формате SVG, которую можно использовать для создания масштабируемых виджетов и тем оформления. Предоставлены возможности для доступа к метаданным и альфа-каналу изображений. Добавлена поддержка двухпальцевых экранных жестов.
Release. Ссылка here.