Sortie du traducteur de langage de programmation Vala 0.56.0

Une nouvelle version du traducteur de langage de programmation Vala 0.56.0 a été publiée. Le langage Vala est un langage de programmation orienté objet qui fournit une syntaxe similaire à C# ou Java. Le code Vala est traduit en un programme C, qui, à son tour, est compilé par un compilateur C standard dans un fichier binaire et exécuté à la vitesse d'une application compilée en code objet de la plateforme cible. Il est possible d'exécuter des programmes en mode script. Le langage est développé sous les auspices du projet GNOME. Gobject (Glib Object System) est utilisé comme modèle objet. Le code du compilateur est distribué sous la licence LGPLv2.1.

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). La gestion de la mémoire est effectuée sur la base d'un comptage de références. 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. 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. Des programmes tels que le client de messagerie Geary, le shell graphique Budgie, le programme d'organisation de fichiers photo et vidéo Shotwell et d'autres sont écrits en langage Vala. Le langage est activement utilisé dans le développement de la distribution Elementary OS.

Principales nouveautés :

  • Ajout du support pour la fonction asynchrone main() ;
  • Ajout de la prise en charge des fonctions imbriquées ;
  • Le format d'affichage des avertissements et des erreurs lors de la compilation a été modifié ;
  • La possibilité d'appeler dynamiquement des signaux est fournie ;
  • Ajout de la prise en charge des classes partielles - classes dont le contenu se trouve dans plusieurs fichiers sources ;
  • Pour les liaisons, la possibilité de spécifier des types de longueur de tableau a été ajoutée. Auparavant, seul le type entier de 32 bits était autorisé ;
  • Ajout de la prise en charge de l'opérateur foreach pour les types Glib.Sequence et Glib.Array ;
  • Ajout de nouvelles liaisons libsoup, linux-media ;
  • Au cours du processus de portage, la bibliothèque gnome-desktop a été divisée en gnome-desktop-4, gnome-rr-4 et gnome-bg-4.
  • Les manuels de programmation GNOME sont complétés par des exemples en Vala.
  • Ajout de notes de version dans le langage de balisage Markdown.
  • Liaisons mises à jour :
    • gtk4 jusqu'à la version 4.6.0+06ec4ec1 ;
    • gstreamer jusqu'à la version 1.21.0+ git master ;
    • gio-2.0 jusqu'à la version 2.72 ;
    • glib-2.0 avant la version 2.72 ;
    • gobject-2.0 avant la version 2.72 ;
    • webkit2gtk-*.0 avant la version 2.35.1.

Source: opennet.ru

Ajouter un commentaire