Izdanje prevoditelja programskog jezika Vala 0.54.0

Izašla je nova verzija prevoditelja programskog jezika Vala 0.54.0. Jezik Vala je objektno orijentirani programski jezik koji pruža sintaksu sličnu C# ili Javi. Vala kod se prevodi u C program, koji se pak prevodi standardnim C kompajlerom u binarnu datoteku i izvršava brzinom aplikacije kompajlirane u objektni kod ciljne platforme. Moguće je pokrenuti programe u načinu skripte. Jezik se razvija pod okriljem projekta GNOME. Kao objektni model koristi se Gobject (Glib Object System). Kod prevoditelja distribuira se pod licencom LGPLv2.1.

Jezik ima podršku za introspekciju, lambda funkcije, sučelja, delegate i zatvaranja, signale i utore, iznimke, svojstva, tipove koji nisu null, zaključivanje tipa za lokalne varijable (var). Upravljanje memorijom provodi se na temelju brojanja referenci. Za jezik je razvijena generalizirana programska biblioteka libgee, koja pruža mogućnost stvaranja kolekcija za prilagođene tipove podataka. Podržano je nabrajanje elemenata zbirke pomoću naredbe foreach. Programiranje grafičkih programa provodi se korištenjem grafičke biblioteke GTK.

Komplet dolazi s velikim brojem povezivanja s bibliotekama u jeziku C. Prevoditelj Vala pruža podršku za jezik Genie, koji pruža slične mogućnosti, ali sa sintaksom inspiriranom programskim jezikom Python. Takvi programi kao što su Geary klijent e-pošte, Budgie grafička ljuska, Shotwell program za organizaciju fotografija i video datoteka i drugi napisani su na jeziku Vala. Jezik se aktivno koristi u razvoju distribucije Elementary OS.

Glavne inovacije:

  • Dodana podrška za delegate s promjenjivim brojem parametara;
  • Dodan LIBC profil, koji je sinonim za POSIX profil;
  • Poboljšano generiranje u načinu POSIX profila;
  • Dodana je mogućnost deklariranja varijabli koje mogu imati nultu vrijednost sa zaključivanjem tipa (var?);
  • Dodana je mogućnost proglašenja klasa zabranjenih za nasljeđivanje (zapečaćene);
  • Dodan operator sigurnog pristupa u polja klase koja mogu biti null (a.?b.?c);
  • Dopuštena inicijalizacija sadržaja strukture na null (const Foo[] BARS = { { "bar", 42 }, null };);
  • Resize() operacija je zabranjena za konstantne nizove;
  • Dodan izlaz upozorenja kada se pokušava pretvoriti poziv funkcije u void ((void)not_void_func(););
  • Uklonjeno ograničenje na tipove elemenata GLib.Array;
  • Popravljeno nasljeđivanje vlasništva "unowned var" u foreach() izjavi;
  • Vezanje na webkit2gtk-4.0 je ažurirano na verziju 2.33.3;
  • Vezanje na gstreamer je ažurirano na verziju 1.19.0+ git master;
  • Vezanje na gtk4 je ažurirano na verziju 4.5.0~e681fdd9;
  • Vezanje na gtk+-3.0 je ažurirano na verziju 3.24.29+f9fe28ce
  • Vezanje na gio-2.0,glib-2.0 je ažurirano na verziju 2.69.0;
  • Za linux su dodana povezivanja na SocketCAN;
  • Popravci vezanja za 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- proširenje-4.0, x11, zlib, gnutls;
  • Uklonjena povezivanja gedit-2.20 i webkit-1.0;
  • Ažurirani uvezi temeljeni na GIR-u;
  • Mogućnost provjere generiranog C koda dodana je sustavu testiranja;
  • Poboljšani girparser, girwriter, valadoc, libvaladoc/girimporter;
  • Ispravljene su akumulirane pogreške i nedostaci raznih komponenata prevoditelja.

Izvor: opennet.ru

Dodajte komentar