O lanzamento do tradutor da linguaxe de programación Vala 0.54.0

Lanzouse unha nova versión do tradutor da linguaxe de programación Vala 0.54.0. A linguaxe Vala é unha linguaxe de programación orientada a obxectos que proporciona unha sintaxe similar a C# ou Java. O código Vala tradúcese nun programa C, que, á súa vez, é compilado por un compilador C normal nun ficheiro binario e executado á velocidade dunha aplicación compilada no código obxecto da plataforma de destino. É posible executar programas en modo script. A linguaxe desenvólvese baixo os auspicios do proxecto GNOME. Gobject (Glib Object System) úsase como modelo de obxectos. O código do compilador distribúese baixo a licenza LGPLv2.1.

A linguaxe ten soporte para introspección, funcións lambda, interfaces, delegados e peches, sinais e slots, excepcións, propiedades, tipos distintos de cero, inferencia de tipos para variables locais (var). A xestión da memoria baséase no reconto de referencias. Desenvolveuse para a linguaxe a biblioteca de programación xenérica libgee, que ofrece a posibilidade de crear coleccións para tipos de datos personalizados. Admítese a enumeración de elementos de colección mediante a instrución foreach. Os programas gráficos prográmanse mediante a biblioteca de gráficos GTK.

O kit inclúe unha gran cantidade de enlaces a bibliotecas en linguaxe C. O tradutor Vala admite a linguaxe Genie, que ofrece funcións similares, pero cunha sintaxe inspirada na linguaxe de programación Python. Programas como o cliente de correo Geary, o shell gráfico Budgie, o organizador de ficheiros de fotos e vídeos Shotwell e outros están escritos na linguaxe Vala. A linguaxe úsase activamente no desenvolvemento da distribución Elementary OS.

Principais novidades:

  • Engadido soporte para delegados cun número variable de parámetros;
  • Engadiuse o perfil LIBC, que é sinónimo de perfil POSIX;
  • Xeración mellorada no modo de perfil POSIX;
  • Engadida a posibilidade de declarar variables que poden ter un valor nulo con inferencia de tipo (var?);
  • Engadida a posibilidade de declarar clases prohibidas para a herdanza (seladas);
  • Engadiuse un operador de acceso seguro aos campos de clase que poden ser nulos (a.?b.?c);
  • Permítese inicializar o contido das estruturas a nulo (const Foo[] BARS = { { "bar", 42 }, null };);
  • Para matrices constantes, a operación resize() está prohibida;
  • Engadiuse un aviso ao tentar lanzar unha chamada de función a void ((void)not_void_func(););
  • Eliminouse a restrición aos tipos de elementos GLib.Array;
  • Corrixiuse a herdanza da propiedade "unowned var" na instrución foreach();
  • Vinculación a webkit2gtk-4.0 actualizada á versión 2.33.3;
  • Vinculación a gstreamer actualizada á versión 1.19.0+ git master;
  • Vinculación para gtk4 actualizada á versión 4.5.0~e681fdd9;
  • Vinculación a gtk+-3.0 actualizada á versión 3.24.29+f9fe28ce
  • Vinculación a gio-2.0,glib-2.0 actualizada á versión 2.69.0;
  • Engadidos enlaces a SocketCAN para Linux;
  • Correccións nas ligazóns a 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;
  • Elimináronse as ligazóns de gedit-2.20 e webkit-1.0;
  • Ligazóns actualizadas baseadas en GIR;
  • A capacidade de comprobar o código C xerado engadiuse ao sistema de probas;
  • Mellorado girparser, girwriter, valadoc, libvaladoc/girimporter;
  • Arranxáronse os erros acumulados e as deficiencias de varios compoñentes do compilador.

Fonte: opennet.ru

Engadir un comentario