Vala programmeerimiskeele kompilaatori 0.54.0 väljaanne

Välja tuli uus Vala programmeerimiskeele tõlkija versioon 0.54.0. Vala on objektorienteeritud programmeerimiskeel, mille süntaks meenutab C#-i või Java-d. Vala kood tõlgitakse C-keele programmiks, mis omakorda kompileeritakse tavapärase C-kompilaatori abil binaarfailiks ja töötab samas kiirus, nagu objektikoodiks kompileeritud rakendus. Olemas on võimalus käivitada programme skripti režiimis. Keel areneb GNOME projekti toel. Objektimudeli aluseks on Gobject (Glib Object System). Kompilaatori kood levitatakse LGPLv2.1 litsentsi all.

Keele toetab introspektsiooni, lambda-funktsioone, liideseid, delegaate ja sulgemisi, signaale ja pesa, erandeid, omadusi, mitte-null tüüpe ning tüüpide tuletamist lokaalsete muutujate (var) jaoks. Mälu haldamine toimub viidete arvestuse põhjal. Keele jaoks on välja töötatud üldprogrammeerimise teek libgee, mis võimaldab luua kollektsioone kasutaja määratud andmetüüpide jaoks. Toetatakse kollektsioonide elementide loendamist foreach operaatoriga. Graafiliste programmide programmeerimist teostatakse GTK graafikateegi abil.

Komplekt sisaldab palju sidemeid C keele teekidega. Vala kompilaator toetab Genie keelt, mis pakub sarnaseid võimalusi, kuid Python keelest inspireeritud süntaksiga. Vala keeles on kirjutatud sellised programmid nagu e-posti klient Geary, graafiline keskkond Budgie, fotode ja videote haldusprogrammid Shotwell ja teised. Keelt kasutatakse aktiivselt Elementary OS jaotise arendamisel.

Peamised uuendused:

  • Lisatud muutuva arvu parameetritega delegaatide tugi;
  • Lisatud LIBC profiil, mis on POSIX profiili sünonüüm;
  • Positiivi profiili režiimis on genereerimine täiustatud;
  • Lisatud võimalus deklareerida muutujaid, mis võivad olla nullväärtusega, koos tüüpide järeldamisega (var?);
  • Lisatud võimalus deklareerida mittepärandatavat klassi (sealed);
  • Lisatud turvaline juurdepääsuoperaator klassi väljadele, mis võivad olla null (a.?b.?c);
  • Struktuuride sisu initsialiseerimine nullväärtusega on lubatud (const Foo[] BARS = { { «bar», 42 }, null };);
  • Constantsetele massiividele on resize() operatsioon keelatud;
  • Funktsiooni kutse muundamise katsel tagatakse hoiatus ((void)not_void_func(););
  • GLib.Array elementide tüüpide piirang on eemaldatud;
  • Omandiõiguse pärimise 'unowned var' õiguste parandamine foreach() avalduses;
  • Webkit2gtk-4.0 sidumine on uuendatud versioonile 2.33.3;
  • Sidumine gstreameriga on uuendatud versioonile 1.19.0+ git master;
  • Gtk4 sidumine on uuendatud versioonile 4.5.0~e681fdd9;
  • Gtk+-3.0 sidumine on uuendatud versioonile 3.24.29+f9fe28ce;
  • Gio-2.0, Glib-2.0 sidumine on uuendatud versioonile 2.69.0;
  • Linuxile on lisatud SocketCAN sidumised;
  • Parandused 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 bindings;
  • Eemaldatud on gedit-2.20 ja webkit-1.0 bindid;
  • Uuendatud on GIRi põhised bindid;
  • Testimise süsteemi on lisatud võimalus genereeritud C-koodi kontrollimiseks;
  • Parendatud on girparser, girwriter, valadoc, libvaladoc/girimporter;
  • Parandatud on erinevate kompilaatori komponentide kogunenud vead ja puudused.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster