Ang paglabas ng tagasalin ng programming language na Vala 0.54.0

Isang bagong bersyon ng tagasalin ng programming language na Vala 0.54.0 ang inilabas. Ang wika ng Vala ay isang object-oriented programming language na nagbibigay ng syntax na katulad ng C# o Java. Ang Vala code ay isinalin sa isang C program, na kung saan, ay pinagsama-sama ng isang karaniwang C compiler sa isang binary file at naisakatuparan sa bilis ng isang application na pinagsama-sama sa object code ng target na platform. Posibleng magpatakbo ng mga programa sa script mode. Ang wika ay binuo sa ilalim ng tangkilik ng proyekto ng GNOME. Ginagamit ang Gobject (Glib Object System) bilang object model. Ang compiler code ay ipinamahagi sa ilalim ng LGPLv2.1 na lisensya.

Ang wika ay may suporta para sa pagsisiyasat ng sarili, mga function ng lambda, mga interface, mga delegado at pagsasara, mga signal at mga puwang, mga pagbubukod, mga katangian, mga hindi null na uri, uri ng inference para sa mga lokal na variable (var). Ang pamamahala ng memorya ay isinasagawa batay sa pagbibilang ng sanggunian. Ang isang pangkalahatang programming library libgee ay binuo para sa wika, na nagbibigay ng kakayahang lumikha ng mga koleksyon para sa mga custom na uri ng data. Ang enumerasyon ng mga elemento ng koleksyon gamit ang foreach statement ay sinusuportahan. Ang pag-program ng mga programa ng graphics ay isinasagawa gamit ang GTK graphics library.

Ang kit ay may kasamang malaking bilang ng mga binding sa mga aklatan sa wikang C. Ang tagapagsalin ng Vala ay nagbibigay ng suporta para sa wikang Genie, na nagbibigay ng mga katulad na kakayahan, ngunit may isang syntax na inspirasyon ng Python programming language. Ang mga programa tulad ng Geary email client, ang Budgie graphical shell, ang Shotwell photo at video file organization program, at iba pa ay nakasulat sa wikang Vala. Ang wika ay aktibong ginagamit sa pagbuo ng pamamahagi ng Elementary OS.

Mga pangunahing inobasyon:

  • Nagdagdag ng suporta para sa mga delegado na may variable na bilang ng mga parameter;
  • Idinagdag ang profile ng LIBC, na kasingkahulugan ng profile ng POSIX;
  • Pinahusay na henerasyon sa POSIX profile mode;
  • Nagdagdag ng kakayahang magdeklara ng mga variable na maaaring magkaroon ng null value na may uri ng inference (var?);
  • Idinagdag ang kakayahang magdeklara ng mga klase na ipinagbabawal para sa mana (sealed);
  • Nagdagdag ng ligtas na access operator sa mga field ng klase na maaaring null (a.?b.?c);
  • Pinapayagan ang pagsisimula ng mga nilalaman ng istraktura sa null (const Foo[] BARS = { { "bar", 42 }, null };);
  • Ang resize() na operasyon ay ipinagbabawal para sa patuloy na mga arrays;
  • Nagdagdag ng output ng babala kapag sinusubukang i-cast ang isang function na tawag sa void ((void)not_void_func();
  • Inalis ang paghihigpit sa mga uri ng elemento ng GLib.Array;
  • Inayos ang "unowned var" na mana ng pagmamay-ari sa foreach() statement;
  • Ang pagbubuklod sa webkit2gtk-4.0 ay na-update sa bersyon 2.33.3;
  • Ang pagbubuklod sa gstreamer ay na-update sa bersyon 1.19.0+ git master;
  • Ang pagbubuklod sa gtk4 ay na-update sa bersyon 4.5.0~e681fdd9;
  • Ang binding para sa gtk+-3.0 ay na-update sa bersyon 3.24.29+f9fe28ce
  • Ang pagbubuklod sa gio-2.0,glib-2.0 ay na-update sa bersyon 2.69.0;
  • Para sa linux, naidagdag ang mga binding sa SocketCAN;
  • Mga pag-aayos sa mga binding para sa 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;
  • Inalis ang gedit-2.20 at webkit-1.0 bindings;
  • Na-update na mga binding batay sa GIR;
  • Ang kakayahang suriin ang nabuong C code ay naidagdag sa sistema ng pagsubok;
  • Pinahusay na girparser, girwriter, valadoc, libvaladoc/giriimporter;
  • Naayos na ang mga naipon na error at pagkukulang ng iba't ibang bahagi ng compiler.

Pinagmulan: opennet.ru

Magdagdag ng komento