Ohjelmointikielen kääntäjän Vala 0.54.0 julkaisu

Ohjelmointikielen kääntäjästä Vala 0.54.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 luettelointi foreach-lauseen avulla on tuettu. 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ä inspiroima 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 delegaateille, joilla on vaihteleva määrä parametreja;
  • Lisätty LIBC-profiili, joka on synonyymi POSIX-profiilille;
  • Parannettu sukupolvi POSIX-profiilitilassa;
  • Lisätty mahdollisuus ilmoittaa muuttujat, joilla voi olla nolla-arvo tyyppipäätelmällä (var?);
  • Lisätty mahdollisuus julistaa luokat kielletyiksi perintöä varten (sinetöity);
  • Lisätty turvallisen pääsyn operaattori luokkakenttiin, jotka voivat olla nolla (a.?b.?c);
  • Sallittu rakenteen sisällön alustaminen nulliksi (const Foo[] BARS = { { "bar", 42 }, null };);
  • Resize()-toiminto on kielletty vakiomatriiseilla;
  • Lisätty varoitustulos, kun yritetään lähettää funktiokutsu void-tilaan ((void)not_void_func(););
  • GLib.Array-elementtityyppien rajoitus poistettu;
  • Korjattu "unowned var" -omistusperintö foreach()-lauseessa;
  • Sitoutuminen webkit2gtk-4.0:aan on päivitetty versioon 2.33.3;
  • Gstreameriin sitoutuminen on päivitetty versioon 1.19.0+ git master;
  • Sitous gtk4:ään on päivitetty versioon 4.5.0~e681fdd9;
  • Gtk+-3.0:n sidonta on päivitetty versioon 3.24.29+f9fe28ce
  • Sitoutuminen gio-2.0:aan, glib-2.0:aan on päivitetty versioon 2.69.0;
  • Linuxille on lisätty sidoksia SocketCANiin;
  • Korjauksia sidoksissa: 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- laajennus-4.0, x11, zlib, gnutls;
  • Poistettu gedit-2.20- ja webkit-1.0-sidokset;
  • Päivitetyt sidokset GIR:n perusteella;
  • Testausjärjestelmään on lisätty mahdollisuus tarkistaa luotu C-koodi;
  • Parannettu girparser, girwriter, valadoc, libvaladoc/girimporter;
  • Eri kääntäjäkomponenttien kertyneet virheet ja puutteet on korjattu.

Lähde: opennet.ru

Lisää kommentti