Випуск транслятора мови програмування Vala 0.56.0

Вийшла нова версія транслятора мови програмування 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.
  • Додано Release Notes мовою розмітки Markdown.
  • Оновлені біндінги:
    • 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.

Джерело: opennet.ru

Додати коментар або відгук