De release van de vertaler van de programmeertaal Vala 0.56.0

Er is een nieuwe versie van de programmeertaalvertaler Vala 0.56.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 de asynchrone main()-functie;
  • Ondersteuning toegevoegd voor geneste functies;
  • Het formaat voor het weergeven van waarschuwingen en fouten tijdens het compileren is gewijzigd;
  • Er wordt voorzien in de mogelijkheid om signalen dynamisch op te roepen;
  • Ondersteuning toegevoegd voor gedeeltelijke klassen - klassen waarvan de inhoud zich in verschillende bronbestanden bevindt;
  • Voor bindingen is de mogelijkheid toegevoegd om arraylengtetypen op te geven. Voorheen was alleen het 32-bits integer-type toegestaan;
  • Ondersteuning toegevoegd voor de foreach-operator voor de typen Glib.Sequence en Glib.Array;
  • Nieuwe bindingen toegevoegd libsoup, linux-media;
  • Tijdens het porteringsproces werd de gnome-desktopbibliotheek opgesplitst in gnome-desktop-4, gnome-rr-4 en gnome-bg-4.
  • De GNOME programmeerhandleidingen zijn uitgebreid met voorbeelden in Vala.
  • Releaseopmerkingen toegevoegd in Markdown-opmaaktaal.
  • Bijgewerkte bindingen:
    • gtk4 tot versie 4.6.0+06ec4ec1;
    • gstreamer tot versie 1.21.0+ git master;
    • gio-2.0 tot versie 2.72;
    • glib-2.0 vóór versie 2.72;
    • gobject-2.0 vóór versie 2.72;
    • webkit2gtk-*.0 vóór versie 2.35.1.

Bron: opennet.ru

Voeg een reactie