Die vrystelling van die vertaler van die programmeertaal Vala 0.54.0

'n Nuwe weergawe van die programmeertaalvertaler Vala 0.54.0 is vrygestel. Die Vala-taal is 'n objekgeoriënteerde programmeertaal wat 'n sintaksis soortgelyk aan C# of Java verskaf. Vala-kode word in 'n C-program vertaal, wat op sy beurt deur 'n standaard C-samesteller in 'n binêre lêer saamgestel word en uitgevoer word teen die spoed van 'n toepassing wat saamgestel is in objekkode van die teikenplatform. Dit is moontlik om programme in skripmodus te laat loop. Die taal word ontwikkel onder die vaandel van die GNOME-projek. Gobject (Glib Object System) word as 'n objekmodel gebruik. Die samestellerkode word onder die LGPLv2.1-lisensie versprei.

Die taal het ondersteuning vir introspeksie, lambda-funksies, koppelvlakke, afgevaardigdes en sluitings, seine en gleuwe, uitsonderings, eienskappe, nie-nul tipes, tipe inferensie vir plaaslike veranderlikes (var). Geheuebestuur word uitgevoer op grond van verwysingtelling. 'n Algemene programmeringsbiblioteek libgee is vir die taal ontwikkel, wat die vermoë bied om versamelings vir persoonlike datatipes te skep. Opsomming van versamelingselemente met behulp van die vooreke stelling word ondersteun. Programmering van grafiese programme word uitgevoer met behulp van die GTK grafiese biblioteek.

Die stel kom met 'n groot aantal bindings aan biblioteke in die taal C. Die Vala-vertaler bied ondersteuning vir die Genie-taal, wat soortgelyke vermoëns bied, maar met 'n sintaksis geïnspireer deur die Python-programmeertaal. Programme soos die Geary-e-poskliënt, die Budgie-grafiese dop, die Shotwell-foto- en videolêerorganisasieprogram en ander is in die Vala-taal geskryf. Die taal word aktief gebruik in die ontwikkeling van die Elementary OS-verspreiding.

Belangrikste innovasies:

  • Bygevoeg ondersteuning vir afgevaardigdes met 'n veranderlike aantal parameters;
  • Bygevoeg LIBC-profiel, wat sinoniem is met POSIX-profiel;
  • Verbeterde generasie in POSIX-profielmodus;
  • Bygevoeg die vermoë om veranderlikes wat 'n nulwaarde kan hê met tipe inferensie (var?) te verklaar;
  • Bygevoeg die vermoë om klasse verbode te verklaar vir oorerwing (verseël);
  • Veilige toegangsoperateur gevoeg by klasvelde wat nul kan wees (a.?b.?c);
  • Toegelate inisialisering van struktuurinhoud na nul (const Foo[] BARS = { { "bar", 42 }, null };);
  • Die resize()-bewerking is verbode vir konstante skikkings;
  • Bygevoeg waarskuwing uitset wanneer jy probeer om 'n funksie oproep te gooi na nietig ((void)not_void_func();
  • Verwyder beperking op GLib.Array element tipes;
  • Vaste "unowned var" eienaarskap erfenis in foreach() verklaring;
  • Binding aan webkit2gtk-4.0 is opgedateer na weergawe 2.33.3;
  • Binding aan gstreamer is opgedateer na weergawe 1.19.0+ git master;
  • Binding aan gtk4 is opgedateer na weergawe 4.5.0~e681fdd9;
  • Binding vir gtk+-3.0 is opgedateer na weergawe 3.24.29+f9fe28ce
  • Binding aan gio-2.0, glib-2.0 is opgedateer na weergawe 2.69.0;
  • Vir Linux is bindings aan SocketCAN bygevoeg;
  • Regstellings in bindings vir 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- uitbreiding-4.0, x11, zlib, gnutls;
  • Verwyder gedit-2.20 en webkit-1.0 bindings;
  • Opgedateerde bindings gebaseer op GIR;
  • Die vermoë om gegenereerde C-kode na te gaan, is by die toetsstelsel gevoeg;
  • Verbeterde girparser, girwriter, valadoc, libvaladoc/girimporter;
  • Die opgehoopte foute en tekortkominge van verskeie samestellerkomponente is reggestel.

Bron: opennet.ru

Voeg 'n opmerking