Llançament del traductor del llenguatge de programació Vala 0.54.0

S'ha llançat una nova versió del traductor del llenguatge de programació Vala 0.54.0. El llenguatge Vala és un llenguatge de programació orientat a objectes que proporciona una sintaxi semblant a C# o Java. El codi Vala es tradueix a un programa C, que, al seu torn, és compilat per un compilador C estàndard en un fitxer binari i s'executa a la velocitat d'una aplicació compilada en codi objecte de la plataforma de destinació. És possible executar programes en mode script. El llenguatge s'està desenvolupant sota els auspicis del projecte GNOME. Gobject (Glib Object System) s'utilitza com a model d'objectes. El codi del compilador es distribueix sota la llicència LGPLv2.1.

El llenguatge té suport per a introspecció, funcions lambda, interfícies, delegats i tancaments, senyals i ranures, excepcions, propietats, tipus no nuls, inferència de tipus per a variables locals (var). La gestió de la memòria es realitza a partir del recompte de referències. S'ha desenvolupat una biblioteca de programació generalitzada libgee per al llenguatge, que ofereix la possibilitat de crear col·leccions per a tipus de dades personalitzats. S'admet l'enumeració d'elements de col·lecció mitjançant la instrucció foreach. La programació de programes de gràfics es realitza mitjançant la biblioteca de gràfics GTK.

El kit inclou un gran nombre d'enllaços a biblioteques en llenguatge C. El traductor Vala proporciona suport per al llenguatge Genie, que proporciona capacitats similars, però amb una sintaxi inspirada en el llenguatge de programació Python. Programes com el client de correu electrònic Geary, l'intèrpret d'ordres gràfic Budgie, el programa d'organització de fitxers de fotos i vídeos Shotwell i d'altres estan escrits en llenguatge Vala. El llenguatge s'utilitza activament en el desenvolupament de la distribució Elementary OS.

Principals innovacions:

  • S'ha afegit suport per a delegats amb un nombre variable de paràmetres;
  • S'ha afegit el perfil LIBC, que és sinònim de perfil POSIX;
  • Generació millorada en mode de perfil POSIX;
  • S'ha afegit la possibilitat de declarar variables que poden tenir un valor nul amb inferència de tipus (var?);
  • S'ha afegit la possibilitat de declarar classes prohibides per a l'herència (segellades);
  • S'ha afegit un operador d'accés segur als camps de classe que poden ser nuls (a.?b.?c);
  • S'ha permès la inicialització del contingut de l'estructura a null (const Foo[] BARS = { { "bar", 42 }, null };);
  • L'operació resize() està prohibida per a matrius constants;
  • S'ha afegit una sortida d'avís quan s'intenta emetre una crida de funció a void ((void)not_void_func(););
  • S'ha eliminat la restricció als tipus d'elements GLib.Array;
  • S'ha corregit l'herència de la propietat "unowned var" a la instrucció foreach();
  • La vinculació a webkit2gtk-4.0 s'ha actualitzat a la versió 2.33.3;
  • La vinculació a gstreamer s'ha actualitzat a la versió 1.19.0+ git master;
  • La vinculació a gtk4 s'ha actualitzat a la versió 4.5.0~e681fdd9;
  • L'enllaç per a gtk+-3.0 s'ha actualitzat a la versió 3.24.29+f9fe28ce
  • La vinculació a gio-2.0,glib-2.0 s'ha actualitzat a la versió 2.69.0;
  • Per a Linux, s'han afegit enllaços a SocketCAN;
  • Correccions en els enllaços per 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ó-4.0, x11, zlib, gnutls;
  • S'han eliminat els enllaços gedit-2.20 i webkit-1.0;
  • Enllaços actualitzats basats en GIR;
  • S'ha afegit la possibilitat de comprovar el codi C generat al sistema de proves;
  • Girparser, girwriter, valadoc, libvaladoc/girimporter millorats;
  • S'han corregit els errors i les mancances acumulades de diversos components del compilador.

Font: opennet.ru

Afegeix comentari