Utgivningen av översättaren av programmeringsspråket Vala 0.54.0

En ny version av programmeringsspråksöversättaren Vala 0.54.0 har släppts. Vala-språket är ett objektorienterat programmeringsspråk som ger en syntax som liknar C# eller Java. Vala-kod översätts till ett C-program, som i sin tur kompileras av en standard C-kompilator till en binär fil och exekveras med hastigheten för en applikation som kompileras till objektkoden för målplattformen. Det är möjligt att köra program i skriptläge. Språket utvecklas under GNOME-projektets regi. Gobject (Glib Object System) används som en objektmodell. Kompilatorkoden distribueras under LGPLv2.1-licensen.

Språket har stöd för introspektion, lambdafunktioner, gränssnitt, delegater och stängningar, signaler och luckor, undantag, egenskaper, icke-nulltyper, typinferens för lokala variabler (var). Minneshantering utförs baserat på referensräkning. Ett generaliserat programmeringsbibliotek libgee har utvecklats för språket, vilket ger möjlighet att skapa samlingar för anpassade datatyper. Uppräkning av samlingselement med hjälp av foreach-satsen stöds. Programmering av grafikprogram utförs med hjälp av GTK-grafikbiblioteket.

Satsen kommer med ett stort antal bindningar till bibliotek i språket C. Vala-översättaren ger stöd för Genie-språket, som ger liknande möjligheter, men med en syntax inspirerad av programmeringsspråket Python. Sådana program som Gearys e-postklient, Budgie grafiska skal, Shotwell foto- och videofilorganisationsprogram och andra är skrivna på Vala-språket. Språket används aktivt i utvecklingen av den elementära OS-distributionen.

Huvudsakliga innovationer:

  • Tillagt stöd för delegater med ett variabelt antal parametrar;
  • Lade till LIBC-profil, vilket är synonymt med POSIX-profil;
  • Förbättrad generering i POSIX-profilläge;
  • Lade till möjligheten att deklarera variabler som kan ha ett nollvärde med typen inferens (var?);
  • Lade till möjligheten att förklara klasser förbjudna för arv (förseglade);
  • Säker åtkomstoperatör har lagts till i klassfält som kan vara null (a.?b.?c);
  • Tillåten initiering av strukturinnehåll till null (const Foo[] BARS = { { "bar", 42 }, null };);
  • Operationen resize() är förbjuden för konstanta arrayer;
  • Lade till varningsutdata när man försöker casta ett funktionsanrop till void ((void)not_void_func();
  • Borttagen begränsning för GLib.Array-elementtyper;
  • Fixat "oägd var" ägarskap i foreach()-satsen;
  • Bindning till webkit2gtk-4.0 har uppdaterats till version 2.33.3;
  • Bindning till gstreamer har uppdaterats till version 1.19.0+ git master;
  • Bindning till gtk4 har uppdaterats till version 4.5.0~e681fdd9;
  • Bindning för gtk+-3.0 har uppdaterats till version 3.24.29+f9fe28ce
  • Bindning till gio-2.0,glib-2.0 har uppdaterats till version 2.69.0;
  • För linux har bindningar till SocketCAN lagts till;
  • Fixar i bindningar för 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- extension-4.0, x11, zlib, gnutls;
  • Tog bort gedit-2.20- och webkit-1.0-bindningar;
  • Uppdaterade bindningar baserat på GIR;
  • Möjligheten att kontrollera genererad C-kod har lagts till i testsystemet;
  • Förbättrad girparser, girwriter, valadoc, libvaladoc/girimporter;
  • De ackumulerade felen och bristerna hos olika kompilatorkomponenter har åtgärdats.

Källa: opennet.ru

Lägg en kommentar