El lanzamiento del traductor del lenguaje de programación Vala 0.54.0

Se ha lanzado una nueva versión del traductor de lenguajes de programación Vala 0.54.0. El lenguaje Vala es un lenguaje de programación orientado a objetos que proporciona una sintaxis similar a C# o Java. El código Vala se traduce a un programa C, que, a su vez, es compilado por un compilador C estándar en un archivo binario y ejecutado a la velocidad de una aplicación compilada en código objeto de la plataforma de destino. Es posible ejecutar programas en modo script. El lenguaje se está desarrollando bajo los auspicios del proyecto GNOME. Gobject (Glib Object System) se utiliza como modelo de objetos. El código del compilador se distribuye bajo la licencia LGPLv2.1.

El lenguaje tiene soporte para introspección, funciones lambda, interfaces, delegados y cierres, señales y ranuras, excepciones, propiedades, tipos no nulos, inferencia de tipos para variables locales (var). La gestión de la memoria se realiza en base al recuento de referencias. Se ha desarrollado una biblioteca de programación generalizada libgee para el lenguaje, que brinda la capacidad de crear colecciones para tipos de datos personalizados. Se admite la enumeración de elementos de la colección mediante la declaración foreach. La programación de programas gráficos se realiza utilizando la biblioteca de gráficos GTK.

El kit viene con una gran cantidad de enlaces a bibliotecas en lenguaje C. El traductor Vala brinda soporte para el lenguaje Genie, que proporciona capacidades similares, pero con una sintaxis inspirada en el lenguaje de programación Python. Programas como el cliente de correo electrónico Geary, el shell gráfico Budgie, el programa de organización de archivos de fotos y videos Shotwell y otros están escritos en lenguaje Vala. El lenguaje se utiliza activamente en el desarrollo de la distribución de Elementary OS.

Principales novedades:

  • Se agregó soporte para delegados con un número variable de parámetros;
  • Se agregó el perfil LIBC, que es sinónimo de perfil POSIX;
  • Generación mejorada en modo perfil POSIX;
  • Se agregó la capacidad de declarar variables que pueden tener un valor nulo con inferencia de tipo (var?);
  • Se agregó la capacidad de declarar clases prohibidas para herencia (selladas);
  • Se agregó un operador de acceso seguro a los campos de clase que pueden ser nulos (a.?b.?c);
  • Se permitió la inicialización del contenido de la estructura a nulo (const Foo[] BARS = { { "bar", 42 }, null };);
  • La operación resize() está prohibida para matrices constantes;
  • Se agregó una salida de advertencia al intentar emitir una llamada de función a void ((void)not_void_func(););
  • Se eliminó la restricción en los tipos de elementos GLib.Array;
  • Se corrigió la herencia de propiedad "var sin dueño" en la declaración foreach();
  • El enlace a webkit2gtk-4.0 se actualizó a la versión 2.33.3;
  • El enlace a gstreamer se actualizó a la versión 1.19.0+ de git master;
  • El enlace a gtk4 se actualizó a la versión 4.5.0~e681fdd9;
  • El enlace para gtk+-3.0 se ha actualizado a la versión 3.24.29+f9fe28ce
  • El enlace a gio-2.0, glib-2.0 se actualizó a la versión 2.69.0;
  • Para Linux, se han agregado enlaces a SocketCAN;
  • Correcciones en enlaces para 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- extensión-4.0, x11, zlib, gnutls;
  • Se eliminaron los enlaces gedit-2.20 y webkit-1.0;
  • Enlaces actualizados basados ​​en GIR;
  • Se ha agregado al sistema de prueba la capacidad de verificar el código C generado;
  • Girparser, girwriter, valadoc, libvaladoc/girimporter mejorados;
  • Se han solucionado los errores acumulados y las deficiencias de varios componentes del compilador.

Fuente: opennet.ru

Añadir un comentario