Sortie d'une version expérimentale du traducteur de langage de programmation Vala 0.51.1

Une nouvelle version du traducteur de langage de programmation Vala 0.51.1 a été publiée. Le langage Vala est un langage de programmation orienté objet qui fournit une syntaxe similaire à C# ou Java. Gobject (Glib Object System) est utilisé comme modèle objet. La gestion de la mémoire est effectuée sur la base d'un comptage de références.

Le langage prend en charge l'introspection, les fonctions lambda, les interfaces, les délégués et les fermetures, les signaux et les slots, les exceptions, les propriétés, les types non nuls, l'inférence de type pour les variables locales (var). Une bibliothèque de programmation généralisée libgee a été développée pour le langage, qui offre la possibilité de créer des collections pour des types de données personnalisés. L'énumération des éléments de collection à l'aide de l'instruction foreach est prise en charge. La programmation des programmes graphiques s'effectue à l'aide de la bibliothèque graphique GTK+. Le kit est livré avec un grand nombre de liaisons vers des bibliothèques en langage C.

Les programmes Vala sont traduits en représentation C puis compilés par un compilateur standard C. Il est possible d'exécuter des programmes en mode script. Le traducteur Vala prend en charge le langage Genie, qui offre des fonctionnalités similaires, mais avec une syntaxe inspirée du langage de programmation Python.

Le langage Vala est développé sous les auspices du projet GNOME. Vala est utilisé pour écrire des programmes tels que le client de messagerie Geary, le shell graphique Budgie, le programme de gestion de collections de photos et de vidéos Shotwell, etc. Vala est activement utilisé dans le développement de composants de la distribution Linux Elementary OS.

Dans la nouvelle version:

  • Ajout de la prise en charge du rétrécissement automatique du type dans les expressions ; if (x is Foo){ x.SomeFooField // pas besoin de convertir explicitement "x" en "Foo" }
  • Ajout de la prise en charge de l'appel de chaînes de constructeurs pour les modèles ;
  • Ajout de la vérification de la version de libvala au moment de l'exécution ;
  • Ajout de la prise en charge des classes compactes opaques ;
  • Prise en charge étendue des paramètres de tableau dans les constructeurs ;
  • Ajout du traitement des délégués anonymes non pris en charge par les méthodes virtuelles ou les signaux vers girparser ;
  • Correction de bugs dans valadoc, libvaladoc et girwriter ;
  • Ajout de la liaison à SDL 2.x, la prise en charge de la liaison SDL 1.x a été interrompue ;
  • Ajout d'une liaison à Enchant 2.x ;
  • Correction d'une fuite de mémoire lors de la copie explicite de tableaux, à l'aide de Glib.Value, ou du déplacement d'une structure allouée sur le Heap vers la pile ;
  • La liaison à gdk-pixbuf-2.0 a été mise à jour vers la version 2.42.3 ;
  • Ajout de la liaison de la fonction getopt_long() et de plusieurs autres fonctions GNU ;
  • Ajout d'une liaison à libunwind-generic ;
  • Correction des liaisons pour 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 ;
  • La liaison à gio-2.0 a été mise à jour vers la version 2.67.3 ;
  • La liaison à gobject-2.0 a été mise à jour vers la version 2.68 ;
  • La liaison à gstreamer a été mise à jour vers la version 1.19.0+ de git master ;
  • La liaison à gtk4 a été mise à jour vers la version 4.1.0+2712f536 ;
  • Ajout de liaisons à l'API d'expression régulière pour POSIX, GNU et BSD ;
  • La liaison à webkit2gtk-4.0 a été mise à jour vers la version 2.31.1 ;
  • Les erreurs et défauts accumulés du compilateur ont été corrigés.

Source: opennet.ru

Ajouter un commentaire