Released a new version of the programming language translator Vala 0.51.1 . Vala is an object-oriented programming language that provides syntax similar to C # or Java. Gobject (Glib Object System) is used as the 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 generic programming library libgee has been developed for the language, which provides the ability to create collections for user-defined data types. Enumeration of collection items is supported using the foreach statement. Graphics programs are programmed using the GTK + graphics library. The set comes with a large number of bindings for C libraries.
Vala programs are translated into a C representation and then compiled by a standard C compiler. It is possible to run programs in script mode. The Vala translator supports Genie, which provides similar capabilities but with syntax inspired by the Python programming language.
The Vala language is being developed under the auspices of the GNOME project. Such programs as Geary email client, Budgie graphical shell, Shotwell photo and video collection manager and others are written on Vala. Vala is actively used in the development of components of the Elementary OS Linux distribution.
In new version :
- Added support for automatic type casting (type narrowing) in expressions;
- Added support for calling constructor chains for templates;
- Added check of libvala version at runtime;
- Added support for “opaque” compact classes;
- Expanded support for array parameters in constructors;
- Added handling 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, no longer support for SDL 1.x binding;
- Binding added to Enchant 2.x;
- Fixed a memory leak when explicitly copying arrays, using Glib.Value, moving a heap allocated structure onto the stack;
- Gdk-pixbuf-2.0 binding has been updated to version 2.42.3;
- Added bindings for getopt_long () function and a few other 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;
- Gio-2.0 binding has been updated to version 2.67.3;
- Gobject-2.0 binding has been updated to version 2.68;
- Binding to gstreamer updated to version 1.19.0+ git master;
- Updated gtk4 binding to version 4.1.0 + 2712f536;
- Added regex API bindings for POSIX, GNU and BSD;