Вышла новая версия транслятора языка программирования Vala 0.56.0. Язык Vala является объектно-ориентированным языком программирования, предоставляет синтаксис, подобный языкам C# или Java. Код на Vala транслируется в программу на языке C, которая, в свою очередь, компилируется штатным Си-компилятором в бинарный файл и выполняется со скоростью приложения, откомпилированного в объектный код целевой платформы. Имеется возможность запуска программ в режиме сценария. Язык развивается под эгидой проекта GNOME. В качестве объектной модели используется Gobject (Glib Object System). Код компилятора распространяется под лицензией LGPLv2.1.
В языке имеется поддержка интроспекции, лямбда-функций, интерфейсов, делегатов и замыканий, сигналов и слотов, исключений, свойств, ненулевых типов, выведения типов для локальных переменных (var). Управление памятью осуществляется на основании подсчёта ссылок. Для языка разработана библиотека обобщённого программирования libgee, предоставляющая возможность создания коллекций для пользовательских типов данных. Поддерживается перечисление элементов коллекций при помощи оператора foreach. Программирование графических программ осуществляется при помощи графической библиотеки GTK.
В комплекте поставляется большое количество биндингов к библиотекам на языке C. Транслятором Vala осуществляется поддержка языка Genie, который предоставляет аналогичные возможности, но с синтаксисом, вдохновлённым языком программирования Python. На языке Vala написаны такие программы как почтовый клиент Geary, графическая оболочка Budgie, программа организации фото- и видеофайлов Shotwell и другие. Язык активно используется при разработке дистрибутива Elementary OS.
Основные новшества:
- Добавлена поддержка асинхронной функции main();
- Добавлена поддержка вложенных функций;
- Изменён формат вывода предупреждений и ошибок при компиляции;
- Обеспечена возможность динамического вызова сигналов;
- Добавлена поддержка частичных (partial) классов – классов содержимое которых находится в нескольких исходных файлах;
- Для биндингов добавлена возможность задания типов длин массивов. Раннее был допустим только 32-х разрядный целочисленный тип;
- Добавлена поддержка оператора foreach для типов Glib.Sequence и Glib.Array;
- Добавлены новые биндинги libsoup, linux-media;
- В процессе портирования библиотека gnome-desktop была разделена на gnome-desktop-4, gnome-rr-4 и gnome-bg-4.
- Руководства по программированию GNOME расширены примерами на Vala.
- Обновлены биндинги:
- gtk4 до версии 4.6.0+06ec4ec1;
- gstreamer до версии 1.21.0+ git master;
- gio-2.0 до версии 2.72;
- glib-2.0 до версии 2.72;
- gobject-2.0 до версии 2.72;
- webkit2gtk-*.0 до версии 2.35.1.