Ilmus uus versioon programmeerimiskeele Vala 0.51.1. Vala on objektorienteeritud programmeerimiskeel, mille süntaks sarnaneb C# või Java keelele. Objekti mudelina kasutatakse Gobject’i (Glib Object System). Mäluhaldus põhineb viidete loendamisel.
Keel toetab introspektsiooni, lambda-funktsioone, liideseid, delegeeritud ja sulge, signaale ja aukusid, erandeid, omadusi, nullist sõltumatuid tüüpe, tüüpide järeldust kohalike muutujate jaoks (var). Keelule on välja töötatud üldprogrammeerimise teek libgee, mis võimaldab luua kollektsioone kasutaja andmetüüpide jaoks. Toetatakse elementide loendamist kollektsioonides foreach operaatori abil. Graafiliste programmide loomine toimub GTK+ graafikuteegi abil. Komplekti kuulub suur hulk sidemeid C keele teekidele.
Vala keeles kirjutatud programmid kompileeritakse C keelde ja seejärel traditsioonilise C kompilaatori abil. On võimalus käivitada programme skripti režiimis. Vala tõlkijas on toetus Genie keelele, mis pakub sarnaseid võimalusi, kuid Python'i programmeerimiskeelest inspireeritud süntaksiga.
Vala keel areneb GNOME projekti raames. Vala abil on kirjutatud sellised programmid nagu meil klient Geary, graafiline liides Budgie, fotode ja videote haldamise programm Shotwell ning palju muud. Vala kasutatakse aktiivselt Elementary OS Linuxi distributsiooni komponentide arendamisel.
Uues versioonis:
- Tõhustatud on automaatseid tüübi kitsendamise (type narrowing) toetusi väljendites; if (x is Foo){ x.SomeFooField // ei ole vaja selgelt 'x'-i 'Foo'-ks muuta }
- Lisatud on konstruktorite ahelte toetamine mallide jaoks;
- Üksuse versiooni kontrollimine täitmise ajal on lisatud;
- Lisatud on «opaaksete» (opaque) kompaktsete klasside toetus;
- Konstruktorite massiivsete parameetrite toetus on laienenud;
- girparserisse on lisatud anonüümsete delegeeritud funktsioonide töötlemine, mida ei toeta virtuaalsed meetodid või signaalid;
- Parandatud on vigade parandusi valadoci, libvaladoci ja girwriteris;
- Lisatud on sidumine SDL 2.x-ga, SDL 1.x sidumise tugi on lõpetatud;
- Lisatud on sidumine Enchant 2.x-ga;
- Mälu lekkimine on kõrvaldatud, kui kopeeritakse massiive, kasutatakse Glib.Value'd, ning tõstetakse heap'is eraldatud struktuuri stacki;
- Sidumine gdk-pixbuf-2.0-ga on uuendatud versioonile 2.42.3;
- Lisatud on sidumine funktsiooniga getopt_long() ja veel mitme GNU funktsiooniga;
- Lisatud on sidumine libunwind-generic'uga;
- Sidumised 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 on parandatud;
- Sidumine gio-2.0-ga on uuendatud versioonile 2.67.3;
- Sidumine gobject-2.0-ga on uuendatud versioonile 2.68;
- Sidumine gstreameriga on uuendatud versioonile 1.19.0+ git master;
- Sidumine gtk4-ga on uuendatud versioonile 4.1.0+2712f536;
- Lisatud on sidumised regulaaravaldiste API-de jaoks POSIX, GNU ja BSD jaoks;
- Sidumine webkit2gtk-4.0-ga on uuendatud versioonile 2.31.1;
- Kogunenud vead ja puudujäägid kompilaatoris olid parandatud.
Allikas: opennet.ru
