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

Se ha lanzado una nueva versión del traductor de lenguajes de programación Vala 0.56.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 organizador 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 la función asincrónica main();
  • Se agregó soporte para funciones anidadas;
  • Se ha cambiado el formato para mostrar advertencias y errores durante la compilación;
  • Se proporciona la capacidad de llamar señales dinámicamente;
  • Se agregó soporte para clases parciales: clases cuyo contenido se encuentra en varios archivos fuente;
  • Para los enlaces, se ha agregado la capacidad de especificar tipos de longitud de matriz. Anteriormente, sólo se permitía el tipo entero de 32 bits;
  • Se agregó soporte para el operador foreach para los tipos Glib.Sequence y Glib.Array;
  • Se agregaron nuevos enlaces libsoup, linux-media;
  • Durante el proceso de migración, la biblioteca gnome-desktop se dividió en gnome-desktop-4, gnome-rr-4 y gnome-bg-4.
  • Los manuales de programación de GNOME se amplían con ejemplos en Vala.
  • Se agregaron notas de la versión en el lenguaje de marcado Markdown.
  • Enlaces actualizados:
    • gtk4 hasta la versión 4.6.0+06ec4ec1;
    • gstreamer hasta la versión 1.21.0+ git master;
    • gio-2.0 hasta la versión 2.72;
    • glib-2.0 antes de la versión 2.72;
    • gobject-2.0 antes de la versión 2.72;
    • webkit2gtk-*.0 anterior a la versión 2.35.1.

Fuente: opennet.ru

Añadir un comentario