Është lëshuar versioni i ri i përkthyesit të gjuhës programore Vala 0.54.0. Gjuha Vala është një gjuhë programimi e orientuar drejt objekteve që ofron një sintaksë të ngjashme me C# ose Java. Kodi Vala përkthehet në një program C, i cili, nga ana tjetër, përpilohet nga një përpilues standard C në një skedar binar dhe ekzekutohet me shpejtësinë e një aplikacioni të kompiluar në kodin e objektit të platformës së synuar. Është e mundur të ekzekutoni programe në modalitetin e skriptit. Gjuha po zhvillohet nën kujdesin e projektit GNOME. Gobject (Glib Object System) përdoret si një model objekti. Kodi i përpiluesit shpërndahet nën licencën LGPLv2.1.
Gjuha ka mbështetje për introspeksionin, funksionet lambda, ndërfaqet, delegatët dhe mbylljet, sinjalet dhe slotet, përjashtimet, vetitë, llojet jo-null, konkluzionet e tipit për variablat lokale (var). Menaxhimi i kujtesës kryhet në bazë të numërimit të referencës. Një bibliotekë programimi e përgjithësuar libgee është zhvilluar për gjuhën, e cila ofron mundësinë për të krijuar koleksione për lloje të personalizuara të të dhënave. Mbështet numërimi i elementeve të mbledhjes duke përdorur deklaratën foreach. Programimi i programeve grafike kryhet duke përdorur bibliotekën grafike GTK.
Kompleti vjen me një numër të madh lidhjesh për bibliotekat në gjuhën C. Përkthyesi Vala ofron mbështetje për gjuhën Genie, e cila ofron aftësi të ngjashme, por me një sintaksë të frymëzuar nga gjuha e programimit Python. Programe të tilla si klienti i postës elektronike Geary, guaska grafike Budgie, programi i organizimit të skedarëve të fotografive dhe videove Shotwell dhe të tjera janë shkruar në gjuhën Vala. Gjuha përdoret në mënyrë aktive në zhvillimin e shpërndarjes Elementare OS.
Risitë kryesore:
- Mbështetje e shtuar për delegatët me një numër të ndryshueshëm parametrash;
- U shtua profili LIBC, i cili është sinonim i profilit POSIX;
- Gjenerimi i përmirësuar në modalitetin e profilit POSIX;
- U shtua aftësia për të deklaruar variabla që mund të kenë një vlerë null me konkluzion të tipit (var?);
- U shtua aftësia për të deklaruar klasa të ndaluara për trashëgimi (të vulosura);
- U shtua operatori i aksesit të sigurt në fushat e klasës që mund të jenë nule (a.?b.?c);
- Inicializimi i lejuar i përmbajtjes së strukturës në null (konst Foo[] BARS = { { "bar", 42 }, null };);
- Operacioni resize() është i ndaluar për vargje konstante;
- U shtua dalje paralajmëruese kur përpiqeni të dërgoni një thirrje funksioni në void ((void)not_void_func();
- U hoq kufizimi për llojet e elementeve GLib.Array;
- Fiksoi trashëgiminë e pronësisë "var i panjohur" në deklaratën foreach();
- Lidhja me webkit2gtk-4.0 është përditësuar në versionin 2.33.3;
- Lidhja me gstreamer është përditësuar në versionin 1.19.0+ git master;
- Lidhja me gtk4 është përditësuar në versionin 4.5.0~e681fdd9;
- Lidhja për 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, lidhjet për SocketCAN janë shtuar;
- Rregullime në lidhjet për 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, webkit2gt- zgjerimi-4.0, x11, zlib, gnutls;
- U hoqën lidhjet gedit-2.20 dhe webkit-1.0;
- Lidhjet e përditësuara bazuar në GIR;
- Mundësia për të kontrolluar kodin C të gjeneruar është shtuar në sistemin e testimit;
- Girparser, girwriter, valadoc, libvaladoc/girimporter i përmirësuar;
- Gabimet dhe mangësitë e grumbulluara të komponentëve të ndryshëm të përpiluesit janë rregulluar.
Burimi: opennet.ru