Rilascio della versione sperimentale del traduttore per il linguaggio di programmazione Vala 0.51.1

È stata rilasciata una nuova versione del traduttore del linguaggio di programmazione Vala 0.51.1. Il linguaggio Vala è un linguaggio di programmazione orientato agli oggetti che fornisce una sintassi simile a quella dei linguaggi C# o Java. Utilizza Gobject (Glib Object System) come modello ad oggetti. La gestione della memoria avviene tramite il conteggio dei riferimenti.

Il linguaggio supporta l'introspezione, le funzioni lambda, le interfacce, i delegati e le chiusure, segnali e slot, eccezioni, proprietà, tipi non nulli e l'inferenza dei tipi per le variabili locali (var). È stata sviluppata una libreria di programmazione generica, libgee, che consente la creazione di collezioni per tipi di dati personalizzati. È supportata l'iterazione degli elementi delle collezioni tramite l'operatore foreach. La programmazione delle applicazioni grafiche avviene attraverso la libreria grafica GTK+. Viene fornito un ampio numero di binding alle librerie scritte in linguaggio C.

I programmi in Vala vengono compilati in C e poi tradotti con il compilatore standard del C. È possibile eseguire programmi in modalità script. Il traduttore Vala supporta il linguaggio Genie, che offre funzionalità simili ma con una sintassi ispirata al linguaggio di programmazione Python.

Il linguaggio Vala è sviluppato sotto l'egida del progetto GNOME. Sono scritte in Vala applicazioni come il client di posta Geary, l'interfaccia grafica Budgie, il programma di gestione delle collezioni fotografiche e video Shotwell e altre. Vala è ampiamente utilizzato nello sviluppo di componenti della distribuzione Linux Elementary OS.

Nella nuova versione:

  • È stata aggiunta la supporto per il 'type narrowing' nelle espressioni; if (x is Foo) { x.SomeFooField // non è necessario eseguire un cast esplicito di 'x' a 'Foo' }
  • È stata aggiunta la supporto per le chiamate in catena dei costruttori per i template;
  • È stata aggiunta la verifica della versione di libvala durante l'esecuzione;
  • È stata aggiunta la supporto per classi compatte 'opache';
  • È stata ampliata la supporto per i parametri array nei costruttori;
  • In girparser è stata aggiunta la gestione di delegati anonimi non supportati da metodi virtuali o segnali;
  • Sono stati corretti errori in valadoc, libvaladoc e girwriter;
  • È stato aggiunto il binding a SDL 2.x, è stata interrotta la supporto per il binding SDL 1.x;
  • È stato aggiunto il binding a Enchant 2.x;
  • È stata risolta una perdita di memoria durante la copia esplicita di array, l'uso di Glib.Value, e il trasferimento di strutture allocate nella 'Heap' nello stack;
  • Il binding a gdk-pixbuf-2.0 è stato aggiornato alla versione 2.42.3;
  • È stato aggiunto il binding alla funzione getopt_long() e ad altre funzioni GNU;
  • È stato aggiunto il binding a libunwind-generic;
  • Sono stati corretti i binding per 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;
  • Il binding a gio-2.0 è stato aggiornato alla versione 2.67.3;
  • Il binding a gobject-2.0 è stato aggiornato alla versione 2.68;
  • Il binding a gstreamer è stato aggiornato alla versione 1.19.0+ git master;
  • Il binding a gtk4 è stato aggiornato alla versione 4.1.0+2712f536;
  • Sono stati aggiunti i binding per l'API delle espressioni regolari per POSIX, GNU e BSD;
  • Il binding a webkit2gtk-4.0 è stato aggiornato alla versione 2.31.1;
  • Sono stati corretti errori e problemi accumulati del compilatore.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster