Rilascio di una versione sperimentale del traduttore del 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 C# o Java. Gobject (Glib Object System) viene utilizzato come modello a oggetti. La gestione della memoria viene effettuata in base al conteggio dei riferimenti.

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). 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 effettuata utilizzando la libreria grafica GTK+. Il kit viene fornito con un gran numero di collegamenti alle librerie in linguaggio C.

I programmi Vala vengono tradotti in rappresentazione C e quindi compilati da un compilatore C standard. È possibile eseguire programmi in modalità script. Il traduttore Vala fornisce supporto per il linguaggio Genie, che fornisce funzionalità simili, ma con una sintassi ispirata al linguaggio di programmazione Python.

Il linguaggio Vala è sviluppato sotto gli auspici del progetto GNOME. Vala viene utilizzato per scrivere programmi come il client di posta elettronica Geary, la shell grafica Budgie, il programma di gestione della raccolta di foto e video Shotwell e altri. Vala viene utilizzata attivamente nello sviluppo di componenti del sistema operativo elementare della distribuzione Linux.

Nella nuova versione:

  • Aggiunto supporto per il restringimento automatico del tipo nelle espressioni; if (x is Foo){ x.SomeFooField // non è necessario trasmettere esplicitamente "x" a "Foo" }
  • Aggiunto il supporto per chiamare catene di costruttori per i modelli;
  • Aggiunto controllo della versione di libvala in fase di runtime;
  • Aggiunto supporto per classi compatte opache;
  • Supporto esteso per i parametri dell'array nei costruttori;
  • Aggiunta elaborazione di delegati anonimi non supportati da metodi o segnali virtuali a girparser;
  • Risolti bug in valadoc, libvaladoc e girwriter;
  • Aggiunto collegamento a SDL 2.x, il supporto per il collegamento SDL 1.x è stato interrotto;
  • Aggiunto vincolo a Enchant 2.x;
  • Risolta una perdita di memoria durante la copia esplicita degli array, l'utilizzo di Glib.Value o lo spostamento di una struttura allocata sull'heap nello stack;
  • Il collegamento a gdk-pixbuf-2.0 è stato aggiornato alla versione 2.42.3;
  • Aggiunto il collegamento della funzione getopt_long() e molte altre funzioni GNU;
  • Aggiunto collegamento a libunwind-generic;
  • Risolti i collegamenti 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 collegamento a gio-2.0 è stato aggiornato alla versione 2.67.3;
  • Il collegamento a gobject-2.0 è stato aggiornato alla versione 2.68;
  • Il collegamento a gstreamer è stato aggiornato alla versione 1.19.0+ git master;
  • Il collegamento a gtk4 è stato aggiornato alla versione 4.1.0+2712f536;
  • Aggiunti collegamenti all'API delle espressioni regolari per POSIX, GNU e BSD;
  • Il collegamento a webkit2gtk-4.0 è stato aggiornato alla versione 2.31.1;
  • Gli errori accumulati e le carenze del compilatore sono stati corretti.

Fonte: opennet.ru

Aggiungi un commento