שחרור גרסה ניסיונית של מתרגם שפת התכנות Vala 0.51.1

Вышла новая версия транслятора языка программирования Vala 0.51.1. Язык Vala является объектно-ориентированным языком программирования, предоставляет синтаксис, подобный языкам C# или Java. В качестве объектной модели используется Gobject (Glib Object System). Управление памятью осуществляется на основании подсчёта ссылок.

В языке имеется поддержка интроспекции, лямбда-функций, интерфейсов, делегатов и замыканий, сигналов и слотов, исключений, свойств, ненулевых типов, выведения типов для локальных переменных (var). Для языка разработана библиотека обобщённого программирования libgee, предоставляющая возможность создания коллекций для пользовательских типов данных. Поддерживается перечисление элементов коллекций при помощи оператора foreach. Программирование графических программ осуществляется при помощи графической библиотеки GTK+. В комплекте поставляется большое количество биндингов к библиотекам на языке C.

Программы на языке Vala транслируются в представление на языке C, а затем компилируются штатным компилятором для языка C. Имеется возможность запуска программ в режиме сценария. Транслятором Vala осуществляется поддержка языка Genie, который предоставляет аналогичные возможности, но с синтаксисом, вдохновлённым языком программирования Python.

Язык Vala развивается под эгидой проекта GNOME. На Vala написаны такие программы, как почтовый клиент Geary, графическая оболочка Budgie, программа управления коллекцией фото и видео Shotwell и другие. Vala активно используется при разработке компонентов Linux-дистрибутива Elementary OS.

בגרסה החדשה:

  • Добавлена поддержка автоматического приведения типов (type narrowing) в выражениях; if (x is Foo){ x.SomeFooField // нет необходимости явного приведения «x» к «Foo» }
  • Добавлена поддержка вызова цепочек конструкторов для шаблонов;
  • Добавлена проверка версии libvala в процессе выполнения;
  • Добавлена поддержка «непрозрачных» (opaque) компактных классов;
  • Расширена поддержка параметров-массивов в конструкторах;
  • В girparser добавлена обработка анонимных делегатов не поддерживаемых виртуальными методами или сигналами;
  • Исправлены недоработки в valadoc, libvaladoc и girwriter;
  • Добавлен биндинг к SDL 2.x, прекращена поддержка биндинга SDL 1.x;
  • Добавлен биндинг к Enchant 2.x;
  • Устранена утечка памяти при явном копировании массивов, использовании Glib.Value, переносе выделенной в «Куче» структуры на стек;
  • Биндинг к gdk-pixbuf-2.0 обновлён до версии 2.42.3;
  • Добавлен биндинг функции getopt_long() и ещё нескольких функций GNU;
  • Добавлен биндинг к libunwind-generic;
  • Исправлены биндинги к cairo, gobject-2.0, pango, goocanvas-2.0, curses, alsa, bzlib, sqlite3, libgvc, posix, gstreamer-1.0, gdk-3.0, gdk-x11-3.0, gtk+-3.0, gtk4, fuse, libxml-2.0;
  • Биндинг к gio-2.0 обновлён до версии 2.67.3;
  • Биндинг к gobject-2.0 обновлён до версии 2.68;
  • הכריכה ל-gstreamer עודכנה לגרסה 1.19.0+ git master;
  • Биндинг к gtk4 обновлён до версии 4.1.0+2712f536;
  • Добавлены биндинги к API регулярных выражений для POSIX, GNU и BSD;
  • הכריכה ל-webkit2gtk-4.0 עודכנה לגרסה 2.31.1;
  • Исправлены накопившиеся ошибки и недоработки компилятора.

מקור: OpenNet.ru

הוספת תגובה