Frigivelse af en eksperimentel version af programmeringssprogsoversætteren Vala 0.51.1

En ny version af programmeringssprogsoversætteren Vala 0.51.1 er blevet frigivet. Vala-sproget er et objektorienteret programmeringssprog, der giver en syntaks svarende til C# eller Java. Gobject (Glib Object System) bruges som en objektmodel. Hukommelsesstyring udføres baseret på referencetælling.

Sproget har understøttelse af introspektion, lambda-funktioner, grænseflader, delegerede og lukninger, signaler og slots, undtagelser, egenskaber, ikke-nul typer, typeinferens for lokale variable (var). Der er udviklet et generaliseret programmeringsbibliotek libgee til sproget, som giver mulighed for at oprette samlinger til brugerdefinerede datatyper. Optælling af samlingselementer ved hjælp af den forestående erklæring er understøttet. Programmering af grafikprogrammer udføres ved hjælp af GTK+ grafikbiblioteket. Sættet leveres med et stort antal bindinger til biblioteker i C-sproget.

Vala-programmer oversættes til C-repræsentation og kompileres derefter af en standard C-compiler Det er muligt at køre programmer i script-tilstand. Vala-oversætteren understøtter Genie-sproget, som giver lignende muligheder, men med en syntaks inspireret af Python-programmeringssproget.

Vala-sproget er udviklet i regi af GNOME-projektet. Vala bruges til at skrive programmer såsom Geary-e-mail-klienten, Budgie grafiske shell, Shotwell foto- og videosamlingsstyringsprogrammet og andre. Vala bruges aktivt i udviklingen af ​​komponenter i Linux-distributionen Elementary OS.

I den nye version:

  • Tilføjet understøttelse af automatisk typeindsnævring i udtryk; if (x er Foo){ x.SomeFooField // ingen grund til eksplicit at caste "x" til "Foo" }
  • Tilføjet support til at kalde konstruktørkæder til skabeloner;
  • Tilføjet libvala versionskontrol ved kørsel;
  • Tilføjet understøttelse af uigennemsigtige kompakte klasser;
  • Udvidet understøttelse af array-parametre i konstruktører;
  • Tilføjet behandling af anonyme delegerede, der ikke understøttes af virtuelle metoder eller signaler til girparser;
  • Rettede fejl i valadoc, libvaladoc og girwriter;
  • Tilføjet binding til SDL 2.x, understøttelse af SDL 1.x-binding blev afbrudt;
  • Tilføjet binding til Enchant 2.x;
  • Rettede en hukommelseslækage ved eksplicit kopiering af arrays, ved brug af Glib.Value eller flytning af en struktur allokeret på Heapen til stakken;
  • Bindingen til gdk-pixbuf-2.0 er blevet opdateret til version 2.42.3;
  • Tilføjet binding af getopt_long()-funktionen og flere andre GNU-funktioner;
  • Tilføjet binding til libunwind-generic;
  • Faste bindinger for 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, gtklibx, fml -4;
  • Binding til gio-2.0 er blevet opdateret til version 2.67.3;
  • Binding til gobject-2.0 er blevet opdateret til version 2.68;
  • Binding til gstreamer er blevet opdateret til version 1.19.0+ git master;
  • Binding til gtk4 er blevet opdateret til version 4.1.0+2712f536;
  • Tilføjede bindinger til det regulære udtryk API for POSIX, GNU og BSD;
  • Binding til webkit2gtk-4.0 er blevet opdateret til version 2.31.1;
  • De akkumulerede fejl og mangler i compileren er blevet rettet.

Kilde: opennet.ru

Tilføj en kommentar