La liberigo de la tradukilo de la programlingvo Vala 0.54.0

Nova versio de la programlingvo tradukilo Vala 0.54.0 estis publikigita. La Vala lingvo estas objekt-orientita programlingvo kiu disponigas sintakson similan al C# aŭ Java. Vala kodo estas tradukita en C-programon, kiu, siavice, estas kompilita de norma C-kompililo en binaran dosieron kaj efektivigita kun la rapideco de aplikaĵo kompilita en objektokodon de la cela platformo. Eblas ruli programojn en skriptoreĝimo. La lingvo estas disvolvita sub la aŭspicioj de la projekto GNOME. Gobject (Glib Object System) estas utiligita kiel objektomodelo. La kompilkodo estas distribuita sub la permesilo LGPLv2.1.

La lingvo havas subtenon por introspekto, lambda funkcioj, interfacoj, delegitoj kaj fermoj, signaloj kaj fendoj, esceptoj, trajtoj, ne-nulaj tipoj, tipinferenco por lokaj variabloj (var). Memoradministrado estas farita surbaze de referenckalkulado. Ĝeneraligita programa biblioteko libgee estis evoluigita por la lingvo, kiu disponigas la kapablon krei kolektojn por specialadaptitaj datumtipoj. Nombrado de kolektoelementoj uzante la foreach deklaro estas subtenata. Programado de grafikaj programoj estas farata per la grafika biblioteko GTK.

La ilaro venas kun granda nombro da ligadoj al bibliotekoj en la lingvo C. La tradukilo Vala provizas subtenon por la lingvo Genie, kiu disponigas similajn kapablojn, sed kun sintakso inspirita de la programlingvo Python. Tiaj programoj kiel la retpoŝta kliento Geary, la grafika ŝelo Budgie, la programo pri organizado de foto- kaj videodosieroj Shotwell, kaj aliaj estas skribitaj en la lingvo Vala. La lingvo estas aktive uzata en la evoluo de la Elementa OS-distribuo.

Ĉefaj novigoj:

  • Aldonita subteno por delegitoj kun varia nombro da parametroj;
  • Aldonita LIBC-profilo, kiu estas sinonima kun POSIX-profilo;
  • Plibonigita generacio en POSIX-profilreĝimo;
  • Aldonita la kapablo deklari variablojn kiuj povas havi nulan valoron kun tipa inferenco (var?);
  • Aldonita la kapablo deklari klasojn malpermesitaj por heredo (sigelita);
  • Aldonita sekura alirfunkciigisto al klaskampoj kiuj povas esti nulaj (a.?b.?c);
  • Permesita inicialigo de strukturenhavoj al nulo (konst Foo[] BARS = { { "bar", 42 }, null };);
  • La operacio resize() estas malpermesita por konstantaj tabeloj;
  • Aldonita averta eligo kiam oni provas ĵeti funkciovokon al void ((void)not_void_func(););
  • Forigita limigo sur GLib.Array-elementaj tipoj;
  • Riparita "unowned var" poseda heredo en foreach() deklaro;
  • Ligado al webkit2gtk-4.0 estis ĝisdatigita al versio 2.33.3;
  • Ligado al gstreamer estis ĝisdatigita al versio 1.19.0+ git master;
  • Ligado al gtk4 estis ĝisdatigita al versio 4.5.0~e681fdd9;
  • Ligado al gtk+-3.0 estis ĝisdatigita al versio 3.24.29+f9fe28ce
  • Ligado al gio-2.0,glib-2.0 estis ĝisdatigita al versio 2.69.0;
  • Por Linukso, ligoj al SocketCAN estis aldonitaj;
  • Korektoj en ligoj por 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- etendo-4.0, x11, zlib, gnutls;
  • Forigitaj gedit-2.20 kaj webkit-1.0 ligadoj;
  • Ĝisdatigitaj ligadoj bazitaj sur GIR;
  • La kapablo kontroli generitan C-kodon estis aldonita al la testa sistemo;
  • Plibonigita girparser, girwriter, valadoc, libvaladoc/girimporter;
  • La akumulitaj eraroj kaj mankoj de diversaj kompililoj estis riparitaj.

fonto: opennet.ru

Aldoni komenton