Veröffentlichung einer experimentellen Version des Programmiersprachenübersetzers Vala 0.51.1

Eine neue Version des Programmiersprachenübersetzers Vala 0.51.1 wurde veröffentlicht. Die Vala-Sprache ist eine objektorientierte Programmiersprache, die eine ähnliche Syntax wie C# oder Java bietet. Als Objektmodell wird Gobject (Glib Object System) verwendet. Die Speicherverwaltung erfolgt auf Basis der Referenzzählung.

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). 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 Grafikbibliothek GTK+. Das Kit enthält eine große Anzahl von Bindungen an Bibliotheken in der Sprache C.

Vala-Programme werden in eine C-Darstellung übersetzt und dann von einem Standard-C-Compiler kompiliert. Es ist möglich, Programme im Skriptmodus auszuführen. Der Vala-Übersetzer bietet Unterstützung für die Genie-Sprache, die ähnliche Funktionen bietet, jedoch mit einer Syntax, die von der Programmiersprache Python inspiriert ist.

Die Vala-Sprache wird unter der Schirmherrschaft des GNOME-Projekts entwickelt. Vala wird zum Schreiben von Programmen wie dem E-Mail-Client Geary, der grafischen Shell Budgie, dem Foto- und Videosammlungsverwaltungsprogramm Shotwell und anderen verwendet. Vala wird aktiv bei der Entwicklung von Komponenten der Linux-Distribution Elementary OS eingesetzt.

In der neuen Version:

  • Unterstützung für automatische Typeingrenzung in Ausdrücken hinzugefügt; if (x ist Foo){ x.SomeFooField // keine Notwendigkeit, „x“ explizit in „Foo“ umzuwandeln }
  • Unterstützung für den Aufruf von Konstruktorketten für Vorlagen hinzugefügt;
  • Libvala-Versionsprüfung zur Laufzeit hinzugefügt;
  • Unterstützung für undurchsichtige Kompaktklassen hinzugefügt;
  • Erweiterte Unterstützung für Array-Parameter in Konstruktoren;
  • Verarbeitung anonymer Delegaten, die nicht von virtuellen Methoden oder Signalen unterstützt werden, für Giparser hinzugefügt;
  • Fehler in Valadoc, Libvaladoc und Girwriter behoben;
  • Bindung zu SDL 2.x hinzugefügt, Unterstützung für SDL 1.x-Bindung wurde eingestellt;
  • Bindung zu Enchant 2.x hinzugefügt;
  • Ein Speicherverlust beim expliziten Kopieren von Arrays, der Verwendung von Glib.Value oder dem Verschieben einer auf dem Heap zugewiesenen Struktur auf den Stapel wurde behoben;
  • Die Bindung an gdk-pixbuf-2.0 wurde auf Version 2.42.3 aktualisiert;
  • Bindung der Funktion getopt_long() und mehrerer anderer GNU-Funktionen hinzugefügt;
  • Bindung zu libunwind-generic hinzugefügt;
  • Feste Bindungen für 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;
  • Die Bindung an gio-2.0 wurde auf Version 2.67.3 aktualisiert;
  • Die Bindung an gobject-2.0 wurde auf Version 2.68 aktualisiert;
  • Die Bindung an gstreamer wurde auf Version 1.19.0+ git master aktualisiert;
  • Die Bindung an GTK4 wurde auf Version 4.1.0+2712f536 aktualisiert;
  • Bindungen zur API für reguläre Ausdrücke für POSIX, GNU und BSD hinzugefügt;
  • Die Bindung an webkit2gtk-4.0 wurde auf Version 2.31.1 aktualisiert;
  • Die angehäuften Fehler und Mängel des Compilers wurden behoben.

Source: opennet.ru

Kommentar hinzufügen