Programmeerimiskeele tõlkija Vala 0.54.0 väljalase

Ilmunud on programmeerimiskeele tõlkija Vala 0.54.0 uus versioon. Vala keel on objektorienteeritud programmeerimiskeel, mis pakub C#-le või Java-le sarnase süntaksi. Vala kood tõlgitakse C-programmiks, mis omakorda kompileeritakse standardse C-kompilaatoriga binaarfailiks ja käivitatakse sihtplatvormi objektkoodiks kompileeritud rakenduse kiirusega. Programme on võimalik käivitada skriptirežiimis. Keelt arendatakse GNOME projekti egiidi all. Objektimudelina kasutatakse Gobjecti (Glib Object System). Kompilaatori koodi levitatakse LGPLv2.1 litsentsi 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. Mälu haldamine toimub võrdlusloenduse alusel. 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 tõlkija pakub tuge Genie keelele, mis pakub sarnaseid võimalusi, kuid Pythoni programmeerimiskeelest inspireeritud süntaksiga. Vala keeles on kirjutatud sellised programmid nagu Geary meiliklient, Budgie graafiline kest, Shotwelli foto- ja videofailide korraldamise programm jt. Keelt kasutatakse aktiivselt Elementary OS distributsiooni arendamisel.

Peamised uuendused:

  • Lisatud tugi muutuva arvu parameetritega delegaatidele;
  • Lisatud LIBC profiil, mis on POSIX profiili sünonüüm;
  • Täiustatud genereerimine POSIX profiilirežiimis;
  • Lisatud on võimalus deklareerida muutujaid, millel võib olla nullväärtus tüübi järeldamisega (var?);
  • Lisatud võimalus kuulutada klassid pärimiseks keelatud (pitseeritud);
  • Lisatud ohutu juurdepääsu operaator klassi väljadele, mis võivad olla null (a.?b.?c);
  • Lubatud struktuuri sisu lähtestamine nulliks (const Foo[] BARS = { { "bar", 42 }, null };);
  • Operatsioon resize() on konstantsete massiivide puhul keelatud;
  • Lisatud hoiatusväljund, kui proovite edastada funktsioonikutset väärtusele void ((void)not_void_func(););
  • GLib.Array elemenditüüpide piirang eemaldatud;
  • Fikseeritud "unowned var" omandiõiguse pärand foreach() avalduses;
  • Webkit2gtk-4.0 sidumine on värskendatud versioonile 2.33.3;
  • Sidumine gstreameriga on värskendatud versioonile 1.19.0+ git master;
  • Sidumine gtk4-ga on värskendatud versioonile 4.5.0~e681fdd9;
  • Gtk+-3.0 sidumine on värskendatud versioonile 3.24.29+f9fe28ce
  • Sidumine gio-2.0, glib-2.0-ga on värskendatud versioonile 2.69.0;
  • Linuxi jaoks on SocketCAN-i sidumised lisatud;
  • Parandused köites: 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, webkit2gtk-web- laiendus-4.0, x11, zlib, gnutls;
  • Eemaldatud sidumised gedit-2.20 ja webkit-1.0;
  • Uuendatud köited GIR-i alusel;
  • Testimissüsteemi on lisatud genereeritud C-koodi kontrollimise võimalus;
  • Täiustatud girparser, girwriter, valadoc, libvaladoc/girimporter;
  • Parandatud on erinevate kompilaatori komponentide kuhjunud vead ja puudused.

Allikas: opennet.ru

Lisa kommentaar