Vala 0.54.0 programazio-lengoaiaren itzultzailearen kaleratzea

Vala 0.54.0 programazio-lengoaiaren itzultzailearen bertsio berria kaleratu da. Vala lengoaia C# edo Java-ren antzeko sintaxia eskaintzen duen objektuetara zuzendutako programazio-lengoaia da. Vala kodea C programa batera itzultzen da, eta, aldi berean, C konpiladore estandar batek fitxategi bitar batean konpilatzen du eta xede plataformaren objektu-kodean konpilatutako aplikazio baten abiaduran exekutatzen da. Posible da programak script moduan exekutatu. Lengoaia GNOME proiektuaren babespean garatzen ari da. Gobject (Glib Object System) objektu eredu gisa erabiltzen da. Konpiladorearen kodea LGPLv2.1 lizentziapean banatzen da.

Hizkuntzak introspekzioa, lambda funtzioak, interfazeak, delegatuak eta itxierak, seinaleak eta zirrikituak, salbuespenak, propietateak, mota ez-nulak, aldagai lokaletarako inferentzia mota (var) onartzen ditu. Memoriaren kudeaketa erreferentzia zenbaketaren arabera egiten da. Lengoaiarako libgee programazio liburutegi orokortua garatu da, datu-mota pertsonalizatuetarako bildumak sortzeko gaitasuna ematen duena. Foreach adierazpena erabiliz bildumako elementuen zenbaketa onartzen da. Programa grafikoen programazioa GTK liburutegi grafikoaren bidez egiten da.

Kitak C lengoaiaren liburutegietarako lotura ugari ditu. Vala itzultzaileak Genie lengoaiari euskarria ematen dio, antzeko gaitasunak eskaintzen dituena, baina Python programazio-lengoaian inspiratutako sintaxiarekin. Geary posta elektronikoko bezeroa, Budgie shell grafikoa, Shotwell argazki eta bideo fitxategiak antolatzeko programa eta beste batzuk Vala hizkuntzan idazten dira. Hizkuntza aktiboki erabiltzen da Elementary OS banaketaren garapenean.

Berrikuntza nagusiak:

  • Parametro kopuru aldakorra duten ordezkarientzako laguntza gehitu da;
  • LIBC profila gehitu da, POSIX profilaren sinonimoa dena;
  • Sorkuntza hobetua POSIX profil moduan;
  • Mota inferentziarekin balio nulua izan dezaketen aldagaiak deklaratzeko gaitasuna gehitu da (var?);
  • Oinordetzarako debekatuta dauden klaseak (zigilatu) deklaratzeko gaitasuna gehitu da;
  • Nuluak izan daitezkeen klase-eremuetan sarbide seguruko operadorea gehitu da (a.?b.?c);
  • Egituraren edukiak nulu gisa hasieratzea baimenduta (const Foo[] BARS = { { "bar", 42 }, null };);
  • Resize() eragiketa debekatuta dago matrize konstanteetarako;
  • Abisu-irteera gehitu da funtzio-deia void-era igortzen saiatzean ((void)not_void_func(););
  • GLib.Array elementu moten murrizketa kendu da;
  • "Unowned var" jabetzaren herentzia konpondu da foreach() adierazpenean;
  • Webkit2gtk-4.0-rekin lotzea 2.33.3 bertsiora eguneratu da;
  • Gstreamer-era lotzea 1.19.0+ bertsiora eguneratu da git master;
  • gtk4-rako lotura 4.5.0~e681fdd9 bertsiora eguneratu da;
  • gtk+-3.0-rako lotura 3.24.29+f9fe28ce bertsiora eguneratu da
  • gio-2.0,glib-2.0-rekin lotzea 2.69.0 bertsiora eguneratu da;
  • Linuxerako, SocketCANerako loturak gehitu dira;
  • Konponketak 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- esteketan luzapena-4.0, x11, zlib, gnutls;
  • Gedit-2.20 eta webkit-1.0 loturak kendu ditu;
  • GIRn oinarritutako lotura eguneratuak;
  • Sortutako C kodea egiaztatzeko gaitasuna gehitu zaio proba sistemari;
  • Girparser, girwriter, valadoc, libvaladoc/girimporter hobetua;
  • Hainbat konpiladore osagairen metatutako akatsak eta gabeziak konpondu dira.

Iturria: opennet.ru

Gehitu iruzkin berria