È stata rilasciata una nuova versione del traduttore del linguaggio di programmazione Vala 0.56.0. Vala è un linguaggio di programmazione orientato agli oggetti, con una sintassi simile a quella di C# o Java. Il codice scritto in Vala viene tradotto in un programma in linguaggio C, che a sua volta viene compilato con un tradizionale compilatore C in un file binario ed eseguito alla velocità di un'applicazione compilata in codice oggetto per la piattaforma di destinazione. È possibile eseguire programmi in modalità script. Il linguaggio è sviluppato sotto l'egida del progetto GNOME. Come modello a oggetti, utilizza Gobject (Glib Object System). Il codice del compilatore è distribuito con licenza LGPLv2.1.
Il linguaggio supporta l'introspezione, le funzioni lambda, le interfacce, i delegati e le chiusure, i segnali e gli slot, le eccezioni, le proprietà, i tipi non nulli, e l'inferenza dei tipi per le variabili locali (var). La gestione della memoria avviene tramite il conteggio dei riferimenti. È stata sviluppata una libreria di programmazione generica, libgee, che consente la creazione di collezioni per tipi di dati personalizzati. È supportato l'iterazione sugli 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 per librerie in linguaggio C. Il compilatore Vala supporta il linguaggio Genie, che offre funzionalità simili, ma con una sintassi ispirata a Python. Sono scritte in Vala applicazioni come il client di posta Geary, l'interfaccia grafica Budgie, il programma per l'organizzazione di foto e video Shotwell e altre. Il linguaggio è ampiamente utilizzato nello sviluppo della distribuzione Elementary OS.
Novità principali:
- È stata aggiunta la supporto per la funzione asincrona main();
- Aggiunta la supporto per le funzioni nidificate;
- Modificato il formato di output per avvisi ed errori durante la compilazione;
- Rendi possibile la chiamata dinamica dei segnali;
- Aggiunta la supporto per le classi parziali (partial) — classi il cui contenuto si trova in più file sorgente;
- Per i binding, è stata aggiunta la possibilità di specificare i tipi di lunghezze degli array. In precedenza, era consentito solo il tipo intero a 32 bit;
- Aggiunta la supporto dell'operatore foreach per i tipi Glib.Sequence e Glib.Array;
- Aggiunti nuovi binding libsoup, linux-media;
- Durante il porting, la libreria gnome-desktop è stata suddivisa in gnome-desktop-4, gnome-rr-4 e gnome-bg-4.
- Le guide di programmazione GNOME sono state ampliate con esempi in Vala.
- Aggiunte Release Notes in linguaggio Markdown.
- Binding aggiornati:
- gtk4 alla versione 4.6.0+06ec4ec1;
- gstreamer alla versione 1.21.0+ git master;
- gio-2.0 alla versione 2.72;
- glib-2.0 alla versione 2.72;
- gobject-2.0 alla versione 2.72;
- webkit2gtk-*.0 alla versione 2.35.1.
Fonte: opennet.ru
