Vala-ohjelmointikielen kääntäjästä on julkaistu uusi versio, versio 0.51.1. Vala on olio-ohjelmointikieli, jonka syntaksi on samanlainen kuin C#:lla tai Javalla. Se käyttää Gobjectia (Glib Object System) objektimallinaan. Muistin hallinta on viittauslaskentaa.
Kieli tukee introspektiota, lambda-funktioita, rajapintoja, delegointeja ja sulkeumia, signaaleja ja slotteja, poikkeuksia, ominaisuuksia, ei-nollattavia tyyppejä ja tyyppipäättelyä paikallisille muuttujille (var). Kieli sisältää libgee-yleisohjelmointikirjaston, jonka avulla voidaan luoda kokoelmia käyttäjän määrittämille tietotyypeille. Kokoelmaelementtien luettelointia tuetaan foreach-lauseen avulla. Grafiikkaohjelmointi suoritetaan GTK+-grafiikkakirjaston avulla. Mukana on suuri määrä sidoksia C-kirjastoihin.
Vala-ohjelmat käännetään C-kielelle ja käännetään sitten sisäänrakennetulla C-kääntäjällä. Ohjelmia voidaan ajaa skriptitilassa. Vala-kääntäjä tukee Genie-kieltä, joka tarjoaa samanlaisia ominaisuuksia, mutta jonka syntaksi on saanut inspiraationsa Python-ohjelmointikielestä.
Язык Vala развивается под эгидой проекта GNOME. На Vala написаны такие программы, как почтовый клиент Geary, графическая оболочка Budgie, программа управления коллекцией фото и видео Shotwell и другие. Vala активно используется при разработке компонентов Linux-дистрибутива Elementary OS.
Uudessa versiossa:
- Lisätty tuki lausekkeiden automaattiselle tyypin rajaamiselle; if (x is Foo){ x.SomeFooField // ei tarvitse erikseen muuntaa "x":ää muotoon "Foo" }
- Lisätty tuki mallipohjien konstruktoriketjujen kutsumiselle;
- Lisätty libvala-version tarkistus suorituksen aikana;
- Lisätty tuki läpinäkymättömille kompakteille luokille;
- Laajennettu tuki taulukkoparametreille konstruktoreissa;
- Girparser käsittelee nyt anonyymejä edustajia, joita virtuaaliset metodit tai signaalit eivät tue;
- Korjattu bugeja valadocissa, libvaladocissa ja girwriterissä;
- Lisätty sidonta SDL 2.x:ään, lopetettu tuki SDL 1.x -sidonnalle;
- Lisätty sidonta Enchant 2.x:ään;
- Korjattu muistivuoto, joka ilmeni kopioitaessa taulukoita eksplisiittisesti Glib.Value-funktiolla ja siirrettäessä kekoon allokoitua rakennetta pinoon;
- Sidonta gdk-pixbuf-2.0:aan päivitetty versioon 2.42.3;
- Lisätty sidonta getopt_long()-funktiolle ja useille muille GNU-funktioille;
- Lisätty sidonta libunwind-generic-kirjastoon;
- Korjattu sidoksia seuraaville: 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+-3.0, gtk4, fuse, libxml-2.0;
- Sidonta gio-2.0:aan on päivitetty versioon 2.67.3;
- Gobject-2.0:aan sitominen päivitetty versioon 2.68;
- Gstreameriin sitoutuminen on päivitetty versioon 1.19.0+ git master;
- Sidonta gtk4:ään on päivitetty versioon 4.1.0+2712f536;
- Lisätty sidoksia säännöllisten lausekkeiden API:in POSIXille, GNU:lle ja BSD:lle;
- Sitoutuminen webkit2gtk-4.0:aan on päivitetty versioon 2.31.1;
- Kääntäjän kertyneet virheet ja puutteet on korjattu.
Lähde: opennet.ru
