Lanzamiento de una versión experimental del traductor del lenguaje de programación Vala 0.51.1

Se ha lanzado una nueva versión del traductor de lenguajes de programación Vala 0.51.1. El lenguaje Vala es un lenguaje de programación orientado a objetos que proporciona una sintaxis similar a C# o Java. Gobject (Glib Object System) se utiliza como modelo de objetos. La gestión de la memoria se realiza en base al recuento de referencias.

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). 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.

Los programas Vala se traducen a representación C y luego se compilan mediante un compilador estándar de C. Es posible ejecutar programas en modo script. El traductor Vala brinda soporte para el lenguaje Genie, que brinda capacidades similares, pero con una sintaxis inspirada en el lenguaje de programación Python.

El lenguaje Vala se desarrolla bajo los auspicios del proyecto GNOME. Vala se utiliza para escribir programas como el cliente de correo electrónico Geary, el shell gráfico Budgie, el programa de gestión de colecciones de fotografías y vídeos Shotwell, etc. Vala se utiliza activamente en el desarrollo de componentes de la distribución de Linux Elementary OS.

Versículos nuevos:

  • Se agregó soporte para la reducción automática de tipos en expresiones; if (x is Foo){ x.SomeFooField // no es necesario convertir explícitamente "x" a "Foo" }
  • Se agregó soporte para llamar a cadenas de constructores para plantillas;
  • Se agregó verificación de versión de libvala en tiempo de ejecución;
  • Se agregó soporte para clases compactas opacas;
  • Soporte ampliado para parámetros de matriz en constructores;
  • Se agregó procesamiento de delegados anónimos no respaldados por métodos o señales virtuales a girparser;
  • Se corrigieron errores en valadoc, libvaladoc y girwriter;
  • Se agregó enlace a SDL 2.x, se suspendió la compatibilidad con el enlace SDL 1.x;
  • Se agregó enlace a Enchant 2.x;
  • Se corrigió una pérdida de memoria al copiar explícitamente matrices, usar Glib.Value o mover una estructura asignada en el montón a la pila;
  • El enlace a gdk-pixbuf-2.0 se actualizó a la versión 2.42.3;
  • Se agregó enlace de la función getopt_long() y varias otras funciones GNU;
  • Se agregó enlace a libunwind-generic;
  • Enlaces fijos para 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;
  • El enlace a gio-2.0 se actualizó a la versión 2.67.3;
  • El enlace a gobject-2.0 se actualizó a la versión 2.68;
  • 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.1.0+2712f536;
  • Se agregaron enlaces a la API de expresión regular para POSIX, GNU y BSD;
  • El enlace a webkit2gtk-4.0 se actualizó a la versión 2.31.1;
  • Se han solucionado los errores y deficiencias acumulados del compilador.

Fuente: opennet.ru

Añadir un comentario