Doli një version i ri i përkthyesit të gjuhës së programimit Vala 0.54.0. Gjuha Vala është një gjuhë programimi objekt-orientuese, që ofron një sintaksë të ngjashme me gjuhët C# ose Java. Kodi në Vala përkthehet në një program në gjuhën C, e cila, nga ana e saj, kompilohet me kompilatorin standard të C-së në një skedar binar dhe ekzekutohet me shpejtësinë e një aplikacioni të kompiluara në kodin objekt të platformës përkatëse. Ekziston mundësia e ekzekutimit të programeve në mënyrën e skenarëve. Gjuha zhvillohet nën mbikëqyrjen e projektit GNOME. Si model objekti përdoret Gobject (Sistemi i Objekteve Glib). Kodi i kompilatorit shpërndahet nën licencën LGPLv2.1.
Gjuha mbështet introspekcionin, funksionet lambda, ndërfaqet, delegatët dhe mbylljet, sinjalet dhe rezervat, përjashtimet, pronat, tipet e paprishura, nxjerrjen e tipave për variablat lokalë (var). Menaxhimi i memories bëhet mbi bazën e numërimit të referencave. Për gjuhën është zhvilluar një bibliotekë programimi të përgjithshëm libgee, që ofron mundësinë e krijimit të koleksioneve për tipet e dhënave të përdoruesve. Mbështetet enumerimi i elementeve të koleksioneve përmes operatorit foreach. Programimi i aplikacioneve grafike realizohet me ndihmën e bibliotekës grafike GTK.
Paketimi vjen me një numër të madh lidhjesh për bibliotekat në gjuhën C. Përkthyesi i Vala mbështet gjuhën Genie, e cila ofron mundësi të ngjashme, por me sintaksë të frymëzuar nga gjuha e programimit Python. Aplikacione si klienti i postës Geary, ndërfaqja grafike Budgie, programi për organizimin e skedarëve të fotografive dhe videove Shotwell dhe të tjera janë shkruar në gjuhën Vala. Gjuha përdoret gjerësisht në zhvillimin e shpërndarjes Elementary OS.
Novitetet kryesore:
- Shtuar mbështetje për delegatët me numër të ndryshueshëm parametrash;
- Shtuar profilin LIBC, i cili është sinonim me profilin POSIX;
- Përmirësuar gjenerimin në modin e profilit POSIX;
- Shtuar mundësinë e shpalljes së variablave që mund të kenë vlerë null me nxjerrjen e tipave (var?);
- Shtuar mundësinë e shpalljes së klasave të ndaluara për trashëgimi (sealed);
- Shtuar operatorin e qasjes së sigurt në fushat e klasave që mund të jenë null (a.?b.?c);
- Lejuar inicializimin e vlerës null të përmbajtjes së strukturave (const Foo[] BARS = { { "bar", 42 }, null };);
- Përmasat e vazhdueshme për vargjet konstante janë ndaluar;
- Shtuar një paralajmërim kur përpiqeni të ktheni thirrjen e funksionit në void ((void)not_void_func(););
- E hequr kufizimin mbi tipet e elementeve GLib.Array;
- Korrigjuar trashëgiminë e të drejtave të pronës "unowned var" në shprehjen foreach();
- Lidhja me webkit2gtk-4.0 është përditësuar në versionin 2.33.3;
- Lidhja me gstreamer është azhurnuar në versionin 1.19.0+ git master;
- Lidhja me gtk4 është përditësuar në versionin 4.5.0~e681fdd9;
- Lidhja me gtk+-3.0 është përditësuar në versionin 3.24.29+f9fe28ce
- Lidhja me gio-2.0,glib-2.0 është përditësuar në versionin 2.69.0;
- Për linux janë shtuar lidhje me SocketCAN;
- Korrigjime në lidhjet me glib-2.0, gio-2.0, gstreamer-rtp-1.0, javascriptcoregtk-4.0, gobject-2.0, pango, linux, gsl, rest-0.7, libusb, libusb-1.0, pixman-1, webkit2gtk-web-extension-4.0, x11, zlib, gnutls;
- Hequr lidhjet gedit-2.20 dhe webkit-1.0;
- Përditësuar lidhjet e bazuara në GIR;
- Sistemit të testimit i është shtuar mundësia e kontrollit të kodit C të gjeneruar;
- Përmirësuar girparser, girwriter, valadoc, libvaladoc/girimporter;
- Korrigjime të akumuluara të gabimeve dhe veprimeve të papërfunduara të komponentëve të ndryshëm të kompilatorit.
Burimi: opennet.ru
