Veröffentlichung des Programmiersprachenübersetzers Vala 0.54.0

Eine neue Version des Programmiersprachenübersetzers Vala 0.54.0 wurde veröffentlicht. Die Vala-Sprache ist eine objektorientierte Programmiersprache, die eine ähnliche Syntax wie C# oder Java bietet. Vala-Code wird in ein C-Programm übersetzt, das wiederum von einem Standard-C-Compiler in eine Binärdatei kompiliert und mit der Geschwindigkeit einer in Objektcode der Zielplattform kompilierten Anwendung ausgeführt wird. Es ist möglich, Programme im Skriptmodus auszuführen. Die Sprache wird unter der Schirmherrschaft des GNOME-Projekts entwickelt. Als Objektmodell wird Gobject (Glib Object System) verwendet. Der Compilercode wird unter der LGPLv2.1-Lizenz vertrieben.

Die Sprache unterstützt Introspektion, Lambda-Funktionen, Schnittstellen, Delegaten und Abschlüsse, Signale und Slots, Ausnahmen, Eigenschaften, Nicht-Null-Typen und Typinferenz für lokale Variablen (var). Die Speicherverwaltung erfolgt auf Basis der Referenzzählung. Für die Sprache wurde eine verallgemeinerte Programmierbibliothek libgee entwickelt, die die Möglichkeit bietet, Sammlungen für benutzerdefinierte Datentypen zu erstellen. Die Aufzählung von Sammlungselementen mithilfe der foreach-Anweisung wird unterstützt. Die Programmierung von Grafikprogrammen erfolgt über die GTK-Grafikbibliothek.

Das Kit enthält eine große Anzahl von Bindungen an Bibliotheken in der Sprache C. Der Vala-Übersetzer bietet Unterstützung für die Genie-Sprache, die ähnliche Funktionen bietet, jedoch mit einer von der Programmiersprache Python inspirierten Syntax. Programme wie der E-Mail-Client Geary, die grafische Shell Budgie, das Foto- und Videodatei-Organisationsprogramm Shotwell und andere sind in der Sprache Vala geschrieben. Die Sprache wird aktiv bei der Entwicklung der Elementary OS-Distribution verwendet.

Wichtigste Neuerungen:

  • Unterstützung für Delegaten mit einer variablen Anzahl von Parametern hinzugefügt;
  • LIBC-Profil hinzugefügt, das gleichbedeutend mit POSIX-Profil ist;
  • Verbesserte Generierung im POSIX-Profilmodus;
  • Es wurde die Möglichkeit hinzugefügt, Variablen, die einen Nullwert haben können, mit Typinferenz (var?) zu deklarieren.
  • Möglichkeit hinzugefügt, Klassen für die Vererbung verboten (versiegelt) zu erklären;
  • Safe-Access-Operator zu Klassenfeldern hinzugefügt, die null sein können (a.?b.?c);
  • Erlaubte Initialisierung von Strukturinhalten auf null (const Foo[] BARS = { { "bar", 42 }, null };);
  • Die resize()-Operation ist für konstante Arrays verboten;
  • Warnausgabe hinzugefügt, wenn versucht wird, einen Funktionsaufruf in void ((void)not_void_func();) umzuwandeln;
  • Einschränkung für GLib.Array-Elementtypen entfernt;
  • Die Eigentumsvererbung „unowned var“ in der foreach()-Anweisung wurde behoben.
  • Die Bindung an webkit2gtk-4.0 wurde auf Version 2.33.3 aktualisiert;
  • Die Bindung an gstreamer wurde auf Version 1.19.0+ git master aktualisiert;
  • Die Bindung an GTK4 wurde auf Version 4.5.0~e681fdd9 aktualisiert;
  • Die Bindung für gtk+-3.0 wurde auf Version 3.24.29+f9fe28ce aktualisiert
  • Die Bindung an gio-2.0,glib-2.0 wurde auf Version 2.69.0 aktualisiert;
  • Für Linux wurden Bindungen an SocketCAN hinzugefügt;
  • Korrekturen in Bindungen für 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- Erweiterung-4.0, x11, zlib, gnutls;
  • gedit-2.20- und webkit-1.0-Bindungen entfernt;
  • Aktualisierte Bindungen basierend auf GIR;
  • Dem Testsystem wurde die Möglichkeit hinzugefügt, generierten C-Code zu überprüfen.
  • Verbesserter Girparser, Girwriter, Valadoc, Libvaladoc/Girimporter;
  • Die angehäuften Fehler und Mängel verschiedener Compiler-Komponenten wurden behoben.

Source: opennet.ru

Kommentar hinzufügen