Izdanje eksperimentalne verzije prevoditelja programskog jezika Vala 0.51.1

Izašla je nova verzija prevoditelja programskog jezika Vala 0.51.1. Jezik Vala je objektno orijentirani programski jezik koji pruža sintaksu sličnu C# ili Javi. Kao objektni model koristi se Gobject (Glib Object System). Upravljanje memorijom provodi se na temelju brojanja referenci.

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). 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 pomoću grafičke biblioteke GTK+. Komplet dolazi s velikim brojem povezivanja s bibliotekama u C jeziku.

Vala programi su prevedeni u C reprezentaciju i zatim kompajlirani pomoću standardnog prevodioca C. Moguće je pokrenuti programe u načinu skripte. Vala prevoditelj pruža podršku za Genie jezik, koji pruža slične mogućnosti, ali sa sintaksom inspiriranom programskim jezikom Python.

Jezik Vala razvija se pod okriljem projekta GNOME. Vala se koristi za pisanje programa kao što su Geary klijent e-pošte, Budgie grafička ljuska, Shotwell program za upravljanje zbirkama fotografija i videa i drugi. Vala se aktivno koristi u razvoju komponenti Linux distribucije Elementary OS.

U novoj verziji:

  • Dodana podrška za automatsko sužavanje tipa u izrazima; if (x je Foo){ x.SomeFooField // nema potrebe za eksplicitnim pretvaranjem "x" u "Foo" }
  • Dodana podrška za pozivanje lanaca konstruktora za predloške;
  • Dodana provjera verzije libvale tijekom izvođenja;
  • Dodana podrška za neprozirne kompaktne klase;
  • Proširena podrška za parametre polja u konstruktorima;
  • Dodana obrada anonimnih delegata koja nije podržana virtualnim metodama ili signalima za girparser;
  • Ispravljene greške u valadocu, libvaladocu i girwriteru;
  • Dodano vezanje na SDL 2.x, podrška za SDL 1.x vezivanje je ukinuta;
  • Dodano vezanje na Enchant 2.x;
  • Popravljeno curenje memorije prilikom eksplicitnog kopiranja nizova, korištenjem Glib.Value ili premještanja strukture dodijeljene na hrpi na stog;
  • Vezanje na gdk-pixbuf-2.0 je ažurirano na verziju 2.42.3;
  • Dodano vezanje getopt_long() funkcije i nekoliko drugih GNU funkcija;
  • Dodano vezanje na libunwind-generic;
  • Fiksna povezivanja 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;
  • Vezanje na gio-2.0 je ažurirano na verziju 2.67.3;
  • Vezanje na gobject-2.0 je ažurirano na verziju 2.68;
  • Vezanje na gstreamer je ažurirano na verziju 1.19.0+ git master;
  • Vezanje na gtk4 je ažurirano na verziju 4.1.0+2712f536;
  • Dodana su povezivanja za regularni izraz API za POSIX, GNU i BSD;
  • Vezanje na webkit2gtk-4.0 je ažurirano na verziju 2.31.1;
  • Ispravljene su akumulirane pogreške i nedostaci prevoditelja.

Izvor: opennet.ru

Dodajte komentar