Die Veröffentlichung des Übersetzers für die Programmiersprache Vala 0.54.0

Eine neue Version des Programmierübersetzers Vala 0.54.0 ist erschienen. Die Programmiersprache Vala ist eine objektorientierte Sprache, die eine Syntax ähnlich der von C# oder Java bietet. Vala-Code wird in C-Code übersetzt, der dann mit dem Standard-C-Compiler in eine ausführbare Datei kompiliert wird, wodurch er mit der Geschwindigkeit einer Anwendung läuft, die in den Objektcode der Zielplattform kompiliert wurde. Es gibt die Möglichkeit, Programme im Skriptmodus auszuführen. Die Sprache entwickelt sich unter dem Schirm des GNOME-Projekts. Als Objektmodell wird Gobject (Glib Object System) verwendet. Der Compiler-Code wird unter der Lizenz LGPLv2.1 verbreitet.

Die Sprache unterstützt Introspektion, Lambda-Funktionen, Schnittstellen, Delegaten und Closures, Signale und Slots, Ausnahmen, Eigenschaften, Nullable-Typen und Typinferenz für lokale Variablen (var). Die Speicherverwaltung erfolgt basierend auf der Referenzzählung. Für die Sprache wurde die generische Programmierbibliothek libgee entwickelt, die das Erstellen von Sammlungen für benutzerdefinierte Datentypen ermöglicht. Die Enumeration von Elementen in Sammlungen wird mit dem foreach-Operator unterstützt. Die Programmierung von grafischen Anwendungen erfolgt über die Grafikbibliothek GTK.

Im Lieferumfang sind zahlreiche Bindungen an C-Bibliotheken enthalten. Der Vala-Compiler unterstützt die Genie-Sprache, die ähnliche Funktionen bietet, jedoch mit einem Syntax, der vom Python-Programmierstil inspiriert ist. In Vala wurden Programme wie der E-Mail-Client Geary, die Desktop-Umgebung Budgie, die Foto- und Videoverwaltungssoftware Shotwell und andere entwickelt. Die Sprache wird aktiv bei der Entwicklung der Distribution Elementary OS verwendet.

Hauptneuerungen:

  • Unterstützung für Delegaten mit variabler Parameteranzahl hinzugefügt;
  • Profil LIBC hinzugefügt, das ein Synonym für das POSIX-Profil ist;
  • Generierung im POSIX-Profil-Modus überarbeitet;
  • Möglichkeit hinzugefügt, Variablen mit null-Werten und Typausgabe (var?) zu deklarieren;
  • Möglichkeit hinzugefügt, Klassen zu deklarieren, die nicht vererbt werden dürfen (sealed);
  • Operator für sicheren Zugriff auf Klassenfelder, die null sein können (a.?b.?c) hinzugefügt;
  • Die Initialisierung des Inhalts von Strukturen mit dem Wert null (const Foo[] BARS = { { „bar“, 42 }, null };) ist nun erlaubt;
  • Für konstante Arrays ist die Resize()-Operation verboten;
  • Warnmeldung bei der Versuchen, einen Funktionsaufruf in void zu casten ((void)not_void_func();) hinzugefügt;
  • Einschränkung der Elementtypen von GLib.Array entfernt;
  • Eigentumsrechte von „unowned var“ im foreach()-Ausdruck korrigiert;
  • Binding für webkit2gtk-4.0 auf Version 2.33.3 aktualisiert;
  • Binding für GStreamer auf Version 1.19.0+ git master aktualisiert;
  • Binding für gtk4 auf Version 4.5.0~e681fdd9 aktualisiert;
  • Binding für gtk+-3.0 auf Version 3.24.29+f9fe28ce aktualisiert;
  • Binding für gio-2.0 und glib-2.0 auf Version 2.69.0 aktualisiert;
  • Für Linux Bindings zu SocketCAN hinzugefügt;
  • Fehlerbehebungen in den Bindings zu 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-extension-4.0, x11, zlib, gnutls;
  • Bindings für gedit-2.20 und webkit-1.0 wurden entfernt;
  • Bindings auf der Basis von GIR wurden aktualisiert;
  • Die Testumgebung unterstützt nun die Überprüfung des generierten C-Codes;
  • Verbesserungen an girparser, girwriter, valadoc, libvaladoc/girimporter;
  • Bereits vorhandene Fehler und Unzulänglichkeiten verschiedener Compiler-Komponenten wurden behoben.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster