De release van de vertaler van de programmeertaal Vala 0.54.0

Er is een nieuwe versie van de programmeertaalvertaler Vala 0.54.0 uitgebracht. De Vala-taal is een objectgeoriënteerde programmeertaal die een syntaxis biedt die lijkt op C# of Java. Vala-code wordt vertaald in een C-programma, dat op zijn beurt door een standaard C-compiler wordt gecompileerd in een binair bestand en wordt uitgevoerd met de snelheid van een applicatie die is gecompileerd in objectcode van het doelplatform. Het is mogelijk om programma's in scriptmodus uit te voeren. De taal wordt ontwikkeld onder auspiciën van het GNOME-project. Gobject (Glib Object System) wordt gebruikt als objectmodel. De compilercode wordt gedistribueerd onder de LGPLv2.1-licentie.

De taal biedt ondersteuning voor introspectie, lambda-functies, interfaces, afgevaardigden en afsluitingen, signalen en slots, uitzonderingen, eigenschappen, niet-null-typen, type-inferentie voor lokale variabelen (var). Geheugenbeheer wordt uitgevoerd op basis van referentietelling. Voor de taal is een algemene programmeerbibliotheek libgee ontwikkeld, die de mogelijkheid biedt om verzamelingen voor aangepaste gegevenstypen te maken. Opsomming van verzamelingselementen met behulp van de foreach-instructie wordt ondersteund. Het programmeren van grafische programma's wordt uitgevoerd met behulp van de grafische bibliotheek GTK.

De kit wordt geleverd met een groot aantal bindingen met bibliotheken in de taal C. De Vala-vertaler biedt ondersteuning voor de Genie-taal, die vergelijkbare mogelijkheden biedt, maar met een syntaxis geïnspireerd op de programmeertaal Python. Programma's als de Geary e-mailclient, de grafische shell van Budgie, het Shotwell-programma voor het organiseren van foto- en videobestanden en andere zijn geschreven in de Vala-taal. De taal wordt actief gebruikt bij de ontwikkeling van de Elementary OS-distributie.

Belangrijkste innovaties:

  • Ondersteuning toegevoegd voor deelnemers met een variabel aantal parameters;
  • LIBC-profiel toegevoegd, wat synoniem is met POSIX-profiel;
  • Verbeterde generatie in POSIX-profielmodus;
  • De mogelijkheid toegevoegd om variabelen te declareren die een nulwaarde kunnen hebben met type-inferentie (var?);
  • De mogelijkheid toegevoegd om klassen verboden te verklaren voor overerving (verzegeld);
  • Operator voor veilige toegang toegevoegd aan klassenvelden die nul kunnen zijn (a.?b.?c);
  • Toegestane initialisatie van structuurinhoud naar null (const Foo[] BARS = { { "bar", 42 }, null };);
  • De bewerking resize() is verboden voor constante arrays;
  • Waarschuwingsuitvoer toegevoegd bij het proberen een functieaanroep naar void ((void)not_void_func();) te casten;
  • Beperking op GLib.Array-elementtypen verwijderd;
  • Probleem opgelost met het overnemen van "unowned var"-eigendom in de foreach()-instructie;
  • De binding aan webkit2gtk-4.0 is bijgewerkt naar versie 2.33.3;
  • De binding aan gstreamer is bijgewerkt naar versie 1.19.0+ git master;
  • De binding aan gtk4 is bijgewerkt naar versie 4.5.0~e681fdd9;
  • Binding voor gtk+-3.0 is bijgewerkt naar versie 3.24.29+f9fe28ce
  • Binding aan gio-2.0,glib-2.0 is bijgewerkt naar versie 2.69.0;
  • Voor Linux zijn bindingen met SocketCAN toegevoegd;
  • Oplossingen voor bindingen voor 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- extensie-4.0, x11, zlib, gnutls;
  • Gedit-2.20- en webkit-1.0-bindingen verwijderd;
  • Bijgewerkte bindingen op basis van GIR;
  • De mogelijkheid om gegenereerde C-code te controleren is aan het testsysteem toegevoegd;
  • Verbeterde girparser, girwriter, valadoc, libvaladoc/girimporter;
  • De opeenstapeling van fouten en tekortkomingen van verschillende compilercomponenten zijn opgelost.

Bron: opennet.ru

Voeg een reactie