Uitgave van een experimentele versie van de programmeertaalvertaler Vala 0.51.1

Er is een nieuwe versie van de programmeertaalvertaler Vala 0.51.1 uitgebracht. De Vala-taal is een objectgeoriënteerde programmeertaal die een syntaxis biedt die lijkt op C# of Java. Gobject (Glib Object System) wordt gebruikt als objectmodel. Geheugenbeheer wordt uitgevoerd op basis van referentietelling.

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). 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 C-taal.

Vala-programma's worden vertaald naar C-weergave en vervolgens gecompileerd door een standaard compiler van C. Het is mogelijk om programma's in scriptmodus uit te voeren. De Vala-vertaler biedt ondersteuning voor de Genie-taal, die vergelijkbare mogelijkheden biedt, maar met een syntaxis geïnspireerd op de programmeertaal Python.

De Vala-taal is ontwikkeld onder auspiciën van het GNOME-project. Vala wordt gebruikt om programma's te schrijven zoals de Geary e-mailclient, de grafische shell van Budgie, het Shotwell-beheerprogramma voor foto- en videocollecties en andere. Vala wordt actief gebruikt bij de ontwikkeling van componenten van de Linux-distributie Elementary OS.

In de nieuwe versie:

  • Ondersteuning toegevoegd voor automatische typevernauwing in expressies; if (x is Foo){ x.SomeFooField // het is niet nodig om "x" expliciet naar "Foo" te casten}
  • Ondersteuning toegevoegd voor het aanroepen van constructorketens voor sjablonen;
  • Libvala-versiecontrole toegevoegd tijdens runtime;
  • Ondersteuning toegevoegd voor ondoorzichtige compacte klassen;
  • Uitgebreide ondersteuning voor arrayparameters in constructors;
  • Toegevoegde verwerking van anonieme afgevaardigden die niet worden ondersteund door virtuele methoden of signalen naar girparser;
  • Bugs opgelost in valadoc, libvaladoc en girwriter;
  • Binding aan SDL 2.x toegevoegd, ondersteuning voor SDL 1.x-binding is stopgezet;
  • Binding toegevoegd aan Enchant 2.x;
  • Een geheugenlek opgelost bij het expliciet kopiëren van arrays, met behulp van Glib.Value, of het verplaatsen van een structuur die op de Heap was toegewezen naar de stapel;
  • De binding met gdk-pixbuf-2.0 is bijgewerkt naar versie 2.42.3;
  • Binding toegevoegd van de functie getopt_long() en verschillende andere GNU-functies;
  • Binding toegevoegd aan libunwind-generiek;
  • Vaste bindingen voor 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;
  • De binding aan gio-2.0 is bijgewerkt naar versie 2.67.3;
  • De binding aan gobject-2.0 is bijgewerkt naar versie 2.68;
  • De binding aan gstreamer is bijgewerkt naar versie 1.19.0+ git master;
  • De binding aan gtk4 is bijgewerkt naar versie 4.1.0+2712f536;
  • Bindingen toegevoegd aan de reguliere expressie-API voor POSIX, GNU en BSD;
  • De binding aan webkit2gtk-4.0 is bijgewerkt naar versie 2.31.1;
  • De verzamelde fouten en tekortkomingen van de compiler zijn verholpen.

Bron: opennet.ru

Voeg een reactie