Izid poskusne različice prevajalnika programskega jezika Vala 0.51.1

Izšla je nova različica prevajalnika programskih jezikov Vala 0.51.1. Jezik Vala je objektno usmerjen programski jezik, ki zagotavlja sintakso, podobno C# ali Javi. Kot objektni model se uporablja Gobject (Glib Object System). Upravljanje pomnilnika se izvaja na podlagi štetja referenc.

Jezik ima podporo za introspekcijo, lambda funkcije, vmesnike, delegate in zaprtja, signale in reže, izjeme, lastnosti, neničelne tipe, sklepanje o tipih za lokalne spremenljivke (var). Za jezik je bila razvita posplošena programska knjižnica libgee, ki omogoča ustvarjanje zbirk za tipe podatkov po meri. Podprto je oštevilčenje elementov zbirke z uporabo stavka foreach. Programiranje grafičnih programov poteka z uporabo grafične knjižnice GTK+. Komplet vsebuje veliko število povezav s knjižnicami v jeziku C.

Programi Vala so prevedeni v predstavitev C in nato prevedeni s standardnim prevajalnikom C. Programe je mogoče izvajati v skriptnem načinu. Prevajalnik Vala zagotavlja podporo za jezik Genie, ki ponuja podobne zmožnosti, vendar s sintakso, ki se zgleduje po programskem jeziku Python.

Jezik Vala je razvit pod okriljem projekta GNOME. Vala se uporablja za pisanje programov, kot so e-poštni odjemalec Geary, grafična lupina Budgie, program za upravljanje zbirke fotografij in video posnetkov Shotwell in drugi. Vala se aktivno uporablja pri razvoju komponent distribucije Linux Elementary OS.

V novi različici:

  • Dodana podpora za samodejno zoženje vrste v izrazih; if (x is Foo){ x.SomeFooField // ni potrebe po izrecnem pretvorbi "x" v "Foo" }
  • Dodana podpora za klicanje verig konstruktorjev za predloge;
  • Dodano preverjanje različice libvala med izvajanjem;
  • Dodana podpora za neprozorne kompaktne razrede;
  • Razširjena podpora za parametre polja v konstruktorjih;
  • Dodana obdelava anonimnih delegatov, ki jih virtualne metode ali signali ne podpirajo za girparser;
  • Popravljene napake v valadoc, libvaladoc in girwriter;
  • Dodana vezava na SDL 2.x, podpora za vezavo SDL 1.x je bila ukinjena;
  • Dodana vezava na Enchant 2.x;
  • Odpravljeno uhajanje pomnilnika pri eksplicitnem kopiranju nizov z uporabo Glib.Value ali premikanju strukture, dodeljene na kopici, v sklad;
  • Vezava na gdk-pixbuf-2.0 je bila posodobljena na različico 2.42.3;
  • Dodano povezovanje funkcije getopt_long() in več drugih funkcij GNU;
  • Dodana vezava na libunwind-generic;
  • Popravljene vezave 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;
  • Vezava na gio-2.0 je bila posodobljena na različico 2.67.3;
  • Vezava na gobject-2.0 je bila posodobljena na različico 2.68;
  • Vezava na gstreamer je bila posodobljena na različico 1.19.0+ git master;
  • Vezava na gtk4 je bila posodobljena na različico 4.1.0+2712f536;
  • Dodane so bile vezave na API za regularne izraze za POSIX, GNU in BSD;
  • Vezava na webkit2gtk-4.0 je bila posodobljena na različico 2.31.1;
  • Nakopičene napake in pomanjkljivosti prevajalnika so bile odpravljene.

Vir: opennet.ru

Dodaj komentar