Izdanje eksperimentalne verzije prevoditelja programskog jezika Vala 0.51.1

Objavljena je nova verzija prevoditelja programskog jezika Vala, verzija 0.51.1. Vala je objektno orijentirani programski jezik sa sintaksom sličnom C# ili Javi. Koristi Gobject (Glib Object System) kao objektni model. Upravljanje memorijom je bazirano na brojanju referenci.

Jezik podržava introspekciju, lambda funkcije, sučelja, delegate i zatvaranja, signale i slotove, iznimke, svojstva, tipove koji se ne mogu nulirati i zaključivanje tipova za lokalne varijable (var). Jezik uključuje generičku programsku biblioteku libgee, koja omogućuje stvaranje kolekcija za korisnički definirane tipove podataka. Nabrajanje elemenata kolekcije podržano je pomoću naredbe foreach. Grafičko programiranje se postiže pomoću GTK+ grafičke biblioteke. Uključen je veliki broj povezivanja s C bibliotekama.

Vala programi se prevode u C, a zatim kompajliraju pomoću ugrađenog C kompajlera. Programi se mogu izvršavati u skriptnom načinu rada. Vala kompajler podržava jezik Genie, koji nudi slične mogućnosti, ali sa sintaksom inspiriranom programskim jezikom Python.

Programski jezik Vala razvija se pod pokroviteljstvom GNOME projekta. Vala pokreće programe kao što su klijent e-pošte Geary, okruženje radne površine Budgie, upravitelj kolekcija fotografija i videa Shotwell i druge. Vala se aktivno koristi u razvoju komponenti Linux distribucije Elementary OS.

U novoj verziji:

  • Dodana je podrška za automatsko sužavanje tipova u izrazima; if (x is Foo){ x.SomeFooField // nema potrebe za eksplicitnim pretvaranjem "x" u "Foo" }
  • Dodana je podrška za pozivanje konstruktorskih lanaca za predloške;
  • Dodana provjera verzije libvale tijekom izvršavanja;
  • Dodana podrška za neprozirne kompaktne klase;
  • Proširena podrška za parametre niza u konstruktorima;
  • Girparser sada obrađuje anonimne delegate koje ne podržavaju virtualne metode ili signali;
  • Ispravljene greške u valadocu, libvaladocu i girwriteru;
  • Dodano povezivanje s SDL 2.x, ukinuta podrška za povezivanje s SDL 1.x;
  • Dodano vezivanje za Enchant 2.x;
  • Ispravljeno curenje memorije prilikom eksplicitnog kopiranja nizova, korištenjem Glib.Value i premještanjem strukture alocirane na hrpi na stog;
  • Veza za gdk-pixbuf-2.0 ažurirana na verziju 2.42.3;
  • Dodano povezivanje za funkciju getopt_long() i nekoliko drugih GNU funkcija;
  • Dodano povezivanje s libunwind-generic;
  • Ispravljene veze za 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;
  • Povezivanje s gio-2.0 ažurirano je na verziju 2.67.3;
  • Veza s gobject-2.0 ažurirana na verziju 2.68;
  • Vezanje na gstreamer je ažurirano na verziju 1.19.0+ git master;
  • Veza na gtk4 ažurirana je na verziju 4.1.0+2712f536;
  • Dodana su povezivanja s regularnim izrazima API-ja za POSIX, GNU i BSD;
  • Vezanje na webkit2gtk-4.0 je ažurirano na verziju 2.31.1;
  • Nagomilane greške i nedostaci kompajlera su ispravljeni.

Izvor: opennet.ru