The release of the translator of the programming language Vala 0.56.0

A new version of the programming language translator Vala 0.56.0 has been released. The Vala language is an object-oriented programming language that provides a syntax similar to C# or Java. Vala code is translated into a C program, which, in turn, is compiled by a standard C compiler into a binary file and executed at the speed of an application compiled into object code of the target platform. It is possible to run programs in script mode. The language is being developed under the auspices of the GNOME project. Gobject (Glib Object System) is used as an object model. The compiler code is distributed under the LGPLv2.1 license.

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). Memory management is carried out based on reference counting. 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. The Vala translator provides support for the Genie language, which provides similar capabilities, but with a syntax inspired by the Python programming language. Such programs as the Geary email client, the Budgie graphical shell, the Shotwell photo and video file organizing program, and others are written in the Vala language. The language is actively used in the development of the Elementary OS distribution.

Main innovations:

  • Added support for the asynchronous main() function;
  • Added support for nested functions;
  • The format for displaying warnings and errors during compilation has been changed;
  • The ability to dynamically call signals is provided;
  • Added support for partial classes - classes whose contents are located in several source files;
  • For bindings, the ability to specify array length types has been added. Previously, only the 32-bit integer type was allowed;
  • Added support for the foreach operator for the Glib.Sequence and Glib.Array types;
  • Added new bindings libsoup, linux-media;
  • During the porting process, the gnome-desktop library was split into gnome-desktop-4, gnome-rr-4 and gnome-bg-4.
  • The GNOME programming manuals are expanded with examples in Vala.
  • Added Release Notes in Markdown markup language.
  • Updated bindings:
    • gtk4 up to version 4.6.0+06ec4ec1;
    • gstreamer up to version 1.21.0+ git master;
    • gio-2.0 up to version 2.72;
    • glib-2.0 before version 2.72;
    • gobject-2.0 before version 2.72;
    • webkit2gtk-*.0 before version 2.35.1.

Source: opennet.ru

Add a comment