Programmeerimiskeele tõlkija Vala 0.51.1 eksperimentaalse versiooni väljaandmine

Ilmunud on programmeerimiskeele tõlkija Vala 0.51.1 uus versioon. Vala keel on objektorienteeritud programmeerimiskeel, mis pakub C#-le või Java-le sarnase süntaksi. Objektimudelina kasutatakse Gobjecti (Glib Object System). Mälu haldamine toimub võrdlusloenduse alusel.

Keel toetab enesevaatlust, lambda-funktsioone, liideseid, delegaate ja sulgemisi, signaale ja pesasid, erandeid, atribuute, mitte-nulltüüpe, kohalike muutujate (var) tüüpi järeldusi. Keele jaoks on välja töötatud üldistatud programmeerimisteek libgee, mis annab võimaluse luua kohandatud andmetüüpide jaoks kogusid. Toetatakse kogu elementide loetlemist foreach-lause abil. Graafikaprogrammide programmeerimine toimub GTK+ graafikateegi abil. Komplektiga on kaasas suur hulk C-keeles teekide sidumisi.

Vala programmid tõlgitakse C-esitusse ja seejärel kompileeritakse standardse kompilaatoriga C. Programme on võimalik käivitada skriptirežiimis. Vala tõlkija pakub tuge Genie keelele, mis pakub sarnaseid võimalusi, kuid Pythoni programmeerimiskeelest inspireeritud süntaksiga.

Vala keel töötatakse välja projekti GNOME egiidi all. Valat kasutatakse selliste programmide kirjutamiseks nagu Geary meiliklient, Budgie graafiline kest, Shotwelli foto- ja videokogu haldusprogramm jm. Valat kasutatakse aktiivselt Linuxi distributsiooni elementaarse OS-i komponentide väljatöötamisel.

Uues versioonis:

  • Lisatud avaldiste automaatse tüübi kitsendamise tugi; if (x on Foo){ x.SomeFooField // pole vaja "x"-i sõnaselgelt "Foo"-sse üle kanda }
  • Lisatud tugi mallide konstruktorikettide kutsumiseks;
  • Lisatud libvala versioonikontroll käitusajal;
  • Lisatud tugi läbipaistmatutele kompaktklassidele;
  • Laiendatud tugi massiivi parameetritele konstruktorites;
  • Lisatud anonüümsete delegaatide töötlemine, mida ei toeta virtuaalsed meetodid ega signaalid girparserile;
  • Parandatud vead valadocis, libvaladocis ja girwriteris;
  • Lisati sidumine SDL 2.x-le, SDL 1.x sidumise tugi lõpetati;
  • Lisatud Enchant 2.x sidumine;
  • Parandatud mäluleke massiivide selgesõnalisel kopeerimisel, Glib.Value abil või hunnikule eraldatud struktuuri teisaldamisel virna;
  • Seostust gdk-pixbuf-2.0-ga on värskendatud versioonile 2.42.3;
  • Lisatud funktsiooni getopt_long() ja mitmete teiste GNU funktsioonide sidumine;
  • Lisatud libunwind-generic sidumine;
  • Parandatud köited: 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+-k3.0x,ml, gtk+-k4x,ml, -2.0;
  • Sidumine gio-2.0-ga on värskendatud versioonile 2.67.3;
  • Sidumine gobject-2.0-ga on värskendatud versioonile 2.68;
  • Sidumine gstreameriga on värskendatud versioonile 1.19.0+ git master;
  • Sidumine gtk4-ga on värskendatud versioonile 4.1.0+2712f536;
  • Lisatud seosed regulaaravaldise API-le POSIX, GNU ja BSD jaoks;
  • Webkit2gtk-4.0 sidumine on värskendatud versioonile 2.31.1;
  • Kompilaatori kuhjunud vead ja puudused on parandatud.

Allikas: opennet.ru

Lisa kommentaar