Выпуск транслятара мовы праграмавання 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

Дадаць каментар