Release of the experimental version of the translator of the programming language Vala 0.51.1

A new version of the Vala programming language translator 0.51.1 has been released. The Vala language is an object-oriented programming language that provides a syntax similar to C# or Java. Gobject (Glib Object System) is used as an object model. Memory management is based on reference counting.

The language has support for introspection, lambda functions, interfaces, delegates and closures, signals and slots, exceptions, properties, non-null types, type inference for local variables (var). A generalized programming library libgee has been developed for the language, which provides the ability to create collections for custom data types. Enumeration of collection elements using the foreach statement is supported. Programming of graphics programs is carried out using the GTK+ graphics library. The kit comes with a large number of bindings to libraries in the C language.

Vala programs are translated into C representation and then compiled by a standard C compiler. It is possible to run programs in script mode. The Vala translator provides support for the Genie language, which provides similar capabilities, but with a syntax inspired by the Python programming language.

The Vala language is developed under the auspices of the GNOME project. Programs such as the Geary email client, the Budgie graphical shell, the Shotwell photo and video collection management program, and others are written in Vala. Vala is actively used in the development of components for the Linux distribution of Elementary OS.

In the new version:

  • Added support for automatic type narrowing in expressions; if (x is Foo){ x.SomeFooField // no need to explicitly cast "x" to "Foo" }
  • Added support for calling constructor chains for templates;
  • Added libvala version check at runtime;
  • Added support for opaque compact classes;
  • Extended support for array parameters in constructors;
  • Added processing of anonymous delegates not supported by virtual methods or signals to girparser;
  • Fixed bugs in valadoc, libvaladoc and girwriter;
  • Added binding to SDL 2.x, support for SDL 1.x binding was discontinued;
  • Added binding to Enchant 2.x;
  • Fixed a memory leak when explicitly copying arrays, using Glib.Value, transferring a structure allocated in the "Heap" to the stack;
  • Binding to gdk-pixbuf-2.0 updated to version 2.42.3;
  • Added binding of the getopt_long() function and a few more GNU functions;
  • Added binding to libunwind-generic;
  • Fixed bindings for 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;
  • Binding to gio-2.0 updated to version 2.67.3;
  • Binding to gobject-2.0 updated to version 2.68;
  • Binding to gstreamer updated to version 1.19.0+ git master;
  • Binding for gtk4 updated to version 4.1.0+2712f536;
  • Added bindings to the regular expression API for POSIX, GNU and BSD;
  • Binding to webkit2gtk-4.0 updated to version 2.31.1;
  • The accumulated errors and shortcomings of the compiler have been fixed.

Source: opennet.ru

Add a comment