Ohjelmointikielen kääntäjästä Vala 0.56.0 on julkaistu uusi versio. Vala-kieli on olio-ohjelmointikieli, joka tarjoaa samanlaisen syntaksin kuin C# tai Java. Vala-koodi käännetään C-ohjelmaksi, joka puolestaan käännetään tavallisella C-kääntäjällä binääritiedostoksi ja suoritetaan kohdealustan objektikoodiksi käännetyn sovelluksen nopeudella. On mahdollista ajaa ohjelmia komentosarjatilassa. Kieltä kehitetään GNOME-projektin alaisuudessa. Kohdemallina käytetään Gobjectia (Glib Object System). Kääntäjäkoodia jaetaan LGPLv2.1-lisenssillä.
Kielessä on tuki itsetutkiskelulle, lambda-funktioille, rajapinnoille, delegaateille ja sulkemisille, signaaleille ja aikavälille, poikkeuksille, ominaisuuksille, ei-nollatyypeille, paikallisten muuttujien tyyppipäätelmille (var). Muistin hallinta perustuu viitelaskentaan. Kielelle on kehitetty yleinen ohjelmointikirjasto libgee, joka tarjoaa mahdollisuuden luoda kokoelmia mukautetuille tietotyypeille. Kokoelman elementtien luettelointia foreach-lauseella tuetaan. Grafiikkaohjelmien ohjelmointi tapahtuu GTK-grafiikkakirjaston avulla.
Pakkauksen mukana tulee suuri määrä sidoksia kirjastoihin C-kielellä. Vala-kääntäjä tukee Genie-kieltä, joka tarjoaa vastaavat ominaisuudet, mutta Python-ohjelmointikielestä inspiroimalla syntaksilla. Sellaiset ohjelmat kuten Geary-sähköpostiohjelma, Budgie-graafinen kuori, Shotwell valokuva- ja videotiedostojen organisointiohjelma ja muut ovat kirjoitettuja Valan kielellä. Kieltä käytetään aktiivisesti Elementary OS -jakelun kehittämisessä.
Tärkeimmät innovaatiot:
- Lisätty tuki asynkroniselle main()-funktiolle;
- Lisätty tuki sisäkkäisille funktioille;
- Varoitusten ja virheiden näyttömuotoa kääntämisen aikana on muutettu;
- Mahdollisuus dynaamisesti kutsua signaaleja tarjotaan;
- Lisätty tuki osittaisille luokille - luokat, joiden sisältö sijaitsee useissa lähdetiedostoissa;
- Sidoille on lisätty mahdollisuus määrittää taulukon pituustyyppejä. Aikaisemmin vain 32-bittinen kokonaislukutyyppi oli sallittu;
- Lisätty tuki foreach-operaattorille Glib.Sequence- ja Glib.Array-tyypeille;
- Lisätty uusia sidoksia libsoup, linux-media;
- Siirron aikana gnome-desktop-kirjasto jaettiin gnome-desktop-4:ksi, gnome-rr-4:ksi ja gnome-bg-4:ksi.
- GNOME-ohjelmointikäsikirjoja on täydennetty esimerkeillä Valassa.
- Lisätty Markdown-kuvauskielellä julkaisutiedot.
- Päivitetyt sidokset:
- gtk4 versioon 4.6.0+06ec4ec1 asti;
- gstreamer versioon 1.21.0+ asti git master;
- gio-2.0 versioon 2.72 asti;
- glib-2.0 ennen versiota 2.72;
- gobject-2.0 ennen versiota 2.72;
- webkit2gtk-*.0 ennen versiota 2.35.1.
Lähde: opennet.ru