Inguqulo entsha yomhumushi wolimi lokuhlela i-Vala 0.54.0 isikhishiwe. Ulimi lwe-Vala luwulimi lokuhlela olugxile entweni olunikeza i-syntax efana ne-C# noma i-Java. Ikhodi ye-Vala ihunyushwa ohlelweni luka-C, lona, oluhlanganiswe yi-compiler evamile engu-C ibe ifayela kanambambili futhi isetshenziswe ngesivinini sohlelo lokusebenza oluhlanganiswe kukhodi yento yesikhulumi esiqondiwe. Kungenzeka ukusebenzisa izinhlelo ngemodi yombhalo. Ulimi luthuthukiswa ngaphansi kwephrojekthi ye-GNOME. I-Gobject (Glib Object System) isetshenziswa njengemodeli yento. Ikhodi yokuhlanganisa isatshalaliswa ngaphansi kwelayisensi ye-LGPLv2.1.
Ulimi lusekelwe ekuhloleni, imisebenzi ye-lambda, izixhumanisi, izithunywa nokuvalwa, amasiginali nezikhala, okuhlukile, izakhiwo, izinhlobo ezingezona ize, uhlobo lokuchazwa kwezinto eziguquguqukayo zendawo (var). Ukuphathwa kwememori kwenziwa ngokusekelwe ekubaleni kwereferensi. Ilabhulali yezinhlelo ezijwayelekile i-libgee yakhelwe ulimi, ehlinzeka ngekhono lokudala amaqoqo ezinhlobo zedatha yangokwezifiso. Ukubalwa kwezakhi zeqoqo kusetshenziswa isitatimende sangaphambili kuyasekelwa. Ukuhlelwa kwezinhlelo zezithombe kwenziwa kusetshenziswa umtapo wezincwadi wezithombe we-GTK.
Ikhithi iza nenani elikhulu lokubophezela emitatsheni yolwazi ngolimi C. Umhumushi we-Vala uhlinzeka ngosekelo lolimi lwe-Genie, oluhlinzeka ngamakhono afanayo, kodwa nge-syntax ekhuthazwe ulimi lohlelo lwe-Python. Izinhlelo ezifana neklayenti le-imeyili le-Geary, igobolondo lesithombe le-Budgie, uhlelo lwenhlangano yezithombe nevidiyo ye-Shotwell, nezinye zibhalwe ngolimi lwesi-Vala. Ulimi lusetshenziswa kakhulu ekuthuthukisweni kokusatshalaliswa kwe-Elementary OS.
Okuqanjiwe okuyinhloko:
- Ukwesekwa okwengeziwe kwezithunywa ezinenombolo eguquguqukayo yamapharamitha;
- Kwengezwe iphrofayili ye-LIBC, efana nephrofayili ye-POSIX;
- Isizukulwane esithuthukisiwe kumodi yephrofayela ye-POSIX;
- Kwengezwe ikhono lokumemezela okuguquguqukayo okungaba nenani elingenalutho ngohlobo lwe-inference (var?);
- Kwengezwe ikhono lokumemezela amakilasi anqatshelwe ifa (avaliwe);
- Kwengezwe u-opharetha wokufinyelela okuphephile ezinkambu zekilasi ezingase zingasebenzi (a.?b.?c);
- Kuvunyelwe ukuqaliswa kokuqukethwe kwesakhiwo ukuba ize (const Foo[] BARS = {{"bar", 42 }, null };);
- Umsebenzi wokushintsha usayizi() awuvunyelwe kumalungu afanayo angashintshi;
- Kwengezwe okuphumayo kwesixwayiso lapho uzama ukwenza ucingo lomsebenzi lube yize ((void)not_void_func(););
- Umkhawulo osusiwe ezinhlotsheni zama-elementi e-GLib.Array;
- Ifa lobunikazi elithi "unowned" elilungisiwe kusitatimende se-foreach();
- Ukubophezela ku-webkit2gtk-4.0 kubuyekezwe kunguqulo 2.33.3;
- Ukubophezela ku-gstreamer kubuyekezwe kwaba yinguqulo engu-1.19.0+ git master;
- Ukubophezela ku-gtk4 kubuyekezwe kunguqulo 4.5.0~e681fdd9;
- Ukubophezela kwe-gtk+-3.0 kubuyekezwe kwaba yinguqulo 3.24.29+f9fe28ce
- Ukubophezela ku-gio-2.0,glib-2.0 kubuyekezwe kunguqulo engu-2.69.0;
- Ku-linux, izibopho ku-SocketCAN zengeziwe;
- Ukulungiswa kokubophezela kwe-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, webkit-2gt isandiso-4.0, x11, zlib, gnutls;
- Kukhishwe ukubopha kwe-gedit-2.20 kanye ne-webkit-1.0;
- Izibopho ezibuyekeziwe ezisekelwe ku-GIR;
- Amandla okuhlola ikhodi C ekhiqiziwe yengezwe ohlelweni lokuhlola;
- I-girparser ethuthukisiwe, i-girwriter, i-valadoc, i-libvaladoc/girimporter;
- Amaphutha anqwabelene kanye nokushiyeka kwezingxenye ezihlukahlukene zokuhlanganisa kulungisiwe.
Source: opennet.ru