Rilascio del traduttore del linguaggio di programmazione Vala 0.54.0

È stata rilasciata una nuova versione del traduttore del linguaggio di programmazione Vala 0.54.0. Il linguaggio Vala è un linguaggio di programmazione orientato agli oggetti che fornisce una sintassi simile a C# o Java. Il codice Vala viene tradotto in un programma C, che, a sua volta, viene compilato da un compilatore C standard in un file binario ed eseguito alla velocità di un'applicazione compilata nel codice oggetto della piattaforma di destinazione. È possibile eseguire programmi in modalità script. Il linguaggio è stato sviluppato sotto gli auspici del progetto GNOME. Gobject (Glib Object System) viene utilizzato come modello a oggetti. Il codice del compilatore è distribuito sotto la licenza LGPLv2.1.

Il linguaggio supporta l'introspezione, funzioni lambda, interfacce, delegati e chiusure, segnali e slot, eccezioni, proprietà, tipi non nulli, inferenza di tipo per variabili locali (var). La gestione della memoria viene effettuata in base al conteggio dei riferimenti. Per il linguaggio è stata sviluppata una libreria di programmazione generalizzata libgee, che offre la possibilità di creare raccolte per tipi di dati personalizzati. È supportata l'enumerazione degli elementi della raccolta utilizzando l'istruzione foreach. La programmazione dei programmi grafici viene eseguita utilizzando la libreria grafica GTK.

Il kit viene fornito con un gran numero di collegamenti alle librerie nel linguaggio C. Il traduttore Vala fornisce supporto per il linguaggio Genie, che fornisce funzionalità simili, ma con una sintassi ispirata al linguaggio di programmazione Python. Programmi come il client di posta elettronica Geary, la shell grafica Budgie, il programma di organizzazione di file di foto e video Shotwell e altri sono scritti nel linguaggio Vala. Il linguaggio viene utilizzato attivamente nello sviluppo della distribuzione del sistema operativo elementare.

Principali innovazioni:

  • Aggiunto supporto per delegati con numero variabile di parametri;
  • Aggiunto profilo LIBC, che è sinonimo di profilo POSIX;
  • Generazione migliorata in modalità profilo POSIX;
  • Aggiunta la possibilità di dichiarare variabili che possono avere valore nullo con inferenza di tipo (var?);
  • Aggiunta la possibilità di dichiarare classi vietate per l'ereditarietà (sigillate);
  • Aggiunto operatore di accesso sicuro ai campi della classe che possono essere nulli (a.?b.?c);
  • Inizializzazione consentita del contenuto della struttura su null (const Foo[] BARS = { { "bar", 42 }, null };);
  • L'operazione resize() è vietata per gli array costanti;
  • Aggiunto output di avviso quando si tenta di eseguire il cast di una chiamata di funzione a void ((void)not_void_func(););
  • Rimossa la restrizione sui tipi di elementi GLib.Array;
  • Risolto il problema con l'ereditarietà della proprietà "unowned var" nell'istruzione foreach();
  • Il collegamento a webkit2gtk-4.0 è stato aggiornato alla versione 2.33.3;
  • Il collegamento a gstreamer è stato aggiornato alla versione 1.19.0+ git master;
  • Il collegamento a gtk4 è stato aggiornato alla versione 4.5.0~e681fdd9;
  • Il collegamento per gtk+-3.0 è stato aggiornato alla versione 3.24.29+f9fe28ce
  • Associazione a gio-2.0,glib-2.0 è stato aggiornato alla versione 2.69.0;
  • Per Linux sono stati aggiunti i collegamenti a SocketCAN;
  • Correzioni nei collegamenti per 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- estensione-4.0, x11, zlib, gnutls;
  • Rimossi i collegamenti gedit-2.20 e webkit-1.0;
  • Associazioni aggiornate basate su GIR;
  • Al sistema di testing è stata aggiunta la possibilità di verificare il codice C generato;
  • Migliorati girparser, girwriter, valadoc, libvaladoc/girimporter;
  • Gli errori accumulati e le carenze di vari componenti del compilatore sono stati corretti.

Fonte: opennet.ru

Aggiungi un commento