Izlazak prevoditelja programskog jezika Vala 0.54.0

Objavljena je nova verzija prevodioca programskog jezika Vala 0.54.0. Jezik Vala je objektno orijentisani programski jezik koji pruža sintaksu sličnu C# ili Javi. Vala kod se prevodi u C program, koji se, pak, kompajlira od strane standardnog C kompajlera u binarnu datoteku i izvršava se brzinom aplikacije kompajlirane u objektni kod ciljne platforme. Moguće je pokrenuti programe u skript modu. Jezik se razvija pod okriljem GNOME projekta. Gobject (Glib Object System) se koristi kao objektni model. Kod kompajlera se distribuira pod licencom LGPLv2.1.

Jezik ima podršku za introspekciju, lambda funkcije, interfejse, delegate i zatvaranja, signale i slotove, izuzetke, svojstva, tipove koji nisu nulti, zaključivanje tipa za lokalne varijable (var). Upravljanje memorijom se vrši na osnovu brojanja referenci. Za jezik je razvijena generalizovana programska biblioteka libgee, koja pruža mogućnost kreiranja kolekcija za prilagođene tipove podataka. Podržano je nabrajanje elemenata kolekcije pomoću izraza foreach. Programiranje grafičkih programa vrši se pomoću GTK grafičke biblioteke.

Komplet dolazi sa velikim brojem veza za biblioteke u jeziku C. Vala prevodilac pruža podršku za Genie jezik, koji pruža slične mogućnosti, ali sa sintaksom inspirisanom programskim jezikom Python. Programi kao što su Geary email klijent, grafička školjka Budgie, program za organizaciju fotografija i video datoteka Shotwell i drugi napisani su na jeziku Vala. Jezik se aktivno koristi u razvoju distribucije Elementary OS-a.

Glavne inovacije:

  • Dodata podrška za delegate sa promenljivim brojem parametara;
  • Dodan LIBC profil, koji je sinonim za POSIX profil;
  • Poboljšana generacija u POSIX modu profila;
  • Dodata mogućnost deklarisanja varijabli koje mogu imati null vrijednost sa zaključivanjem tipa (var?);
  • Dodata mogućnost proglašenja klasa zabranjenim za nasljeđivanje (zapečaćene);
  • Dodan operator sigurnog pristupa poljima klase koja mogu biti null (a.?b.?c);
  • Dozvoljena inicijalizacija sadržaja strukture na null (const Foo[] BARS = { { "bar", 42 }, null };);
  • Operacija resize() je zabranjena za konstantne nizove;
  • Dodan izlaz upozorenja kada pokušavate da prebacite poziv funkcije na void ((void)not_void_func(););
  • Uklonjeno ograničenje za tipove elemenata GLib.Array;
  • Popravljeno nasljeđivanje vlasništva "unowned var" u foreach() naredbi;
  • Vezivanje za webkit2gtk-4.0 je ažurirano na verziju 2.33.3;
  • Vezivanje za gstreamer je ažurirano na verziju 1.19.0+ git master;
  • Vezivanje za gtk4 je ažurirano na verziju 4.5.0~e681fdd9;
  • Vezivanje za gtk+-3.0 je ažurirano na verziju 3.24.29+f9fe28ce
  • Vezivanje za gio-2.0,glib-2.0 je ažurirano na verziju 2.69.0;
  • Za linux, dodana su veza za SocketCAN;
  • Popravci u vezama 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, webkit-2gtk proširenje-4.0, x11, zlib, gnutls;
  • Uklonjene veze gedit-2.20 i webkit-1.0;
  • Ažurirani vezovi na osnovu GIR-a;
  • Mogućnost provjere generiranog C koda je dodana u sistem za testiranje;
  • Poboljšani girparser, girwriter, valadoc, libvaladoc/girimporter;
  • Nagomilane greške i nedostaci različitih kompajlerskih komponenti su ispravljene.

izvor: opennet.ru

Dodajte komentar