Ծրագրավորման լեզվի թարգմանիչ Vala 0.54.0-ի թողարկում

Թողարկվել է Vala 0.54.0 ծրագրավորման լեզվի թարգմանչի նոր տարբերակը։ Vala լեզուն օբյեկտի վրա հիմնված ծրագրավորման լեզու է, որն ապահովում է C#-ի կամ Java-ի նման շարահյուսություն: Vala կոդը թարգմանվում է C ծրագրի, որն, իր հերթին, կոմպիլյացիայի է ենթարկվում ստանդարտ C կոմպիլյատորի կողմից երկուական ֆայլի մեջ և կատարվում է թիրախային հարթակի օբյեկտի կոդի մեջ կազմված հավելվածի արագությամբ: Հնարավոր է ծրագրեր գործարկել սցենարի ռեժիմում։ Լեզուն մշակվում է GNOME նախագծի հովանու ներքո: Gobject (Glib Object System) օգտագործվում է որպես օբյեկտի մոդել։ Կազմողի կոդը տարածվում է LGPLv2.1 լիցենզիայի ներքո:

Լեզուն ունի ներդաշնակություն, լամբդա ֆունկցիաներ, միջերեսներ, պատվիրակներ և փակումներ, ազդանշաններ և սլոտներ, բացառություններ, հատկություններ, ոչ զրոյական տիպեր, տեղական փոփոխականների տիպի եզրակացություն (var): Հիշողության կառավարումն իրականացվում է հղումների հաշվարկի հիման վրա: Լեզվի համար մշակվել է ընդհանրացված ծրագրավորման գրադարան libgee, որը հնարավորություն է տալիս ստեղծել հավաքածուներ հատուկ տվյալների տեսակների համար: Աջակցվում է հավաքագրման տարրերի թվարկումը, օգտագործելով foreach հայտարարությունը: Գրաֆիկական ծրագրերի ծրագրավորումն իրականացվում է GTK գրաֆիկական գրադարանի միջոցով:

Կոմպլեկտը գալիս է C լեզվով գրադարանների հետ կապված մեծ թվով կապանքներով: Vala թարգմանիչը աջակցություն է տրամադրում Genie լեզվին, որն ապահովում է նմանատիպ հնարավորություններ, սակայն Python ծրագրավորման լեզվով ներշնչված շարահյուսությամբ: Նման ծրագրերը, ինչպիսիք են Geary էլփոստի հաճախորդը, Budgie գրաֆիկական վահանակը, Shotwell ֆոտո և վիդեո ֆայլերի կազմակերպման ծրագիրը և այլն, գրված են Vala լեզվով: Լեզուն ակտիվորեն օգտագործվում է Elementary OS բաշխման մշակման մեջ:

Հիմնական նորամուծությունները.

  • Ավելացված աջակցություն պատվիրակների համար՝ փոփոխական թվով պարամետրերով.
  • Ավելացվեց LIBC պրոֆիլը, որը հոմանիշ է POSIX պրոֆիլի հետ;
  • Բարելավված արտադրություն POSIX պրոֆիլի ռեժիմում;
  • Ավելացվեց փոփոխականներ հայտարարելու հնարավորություն, որոնք կարող են զրոյական արժեք ունենալ տիպի եզրակացությամբ (var?);
  • Ավելացրել է ժառանգության համար արգելված դասերը (կնքված) հայտարարելու հնարավորությունը.
  • Ավելացվել է անվտանգ մուտքի օպերատոր դասի դաշտերում, որոնք կարող են լինել զրոյական (a.?b.?c);
  • Կառուցվածքի բովանդակության սկզբնավորումը թույլատրված է զրոյական (const Foo[] BARS = { { "bar", 42 }, null };);
  • Resize() գործողությունն արգելված է մշտական ​​զանգվածների համար;
  • Ավելացվել է նախազգուշացման ելք, երբ փորձում եք ֆունկցիան կանչել void ((void)not_void_func(););
  • Հեռացվել է սահմանափակումը GLib.Array տարրերի տեսակների վրա;
  • Foreach() հայտարարության մեջ ամրագրված է «անտիրական var» սեփականության ժառանգությունը;
  • Webkit2gtk-4.0-ին կապելը թարմացվել է 2.33.3 տարբերակին;
  • Gstreamer-ին կապելը թարմացվել է 1.19.0+ git master տարբերակին;
  • gtk4-ին կապելը թարմացվել է 4.5.0~e681fdd9 տարբերակին;
  • gtk+-3.0-ի համար պարտադիր կապը թարմացվել է 3.24.29+f9fe28ce տարբերակին
  • Binding gio-2.0,glib-2.0-ին թարմացվել է 2.69.0 տարբերակին;
  • Linux-ի համար ավելացվել են կապեր SocketCAN-ին.
  • Ամրագրվում է 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, webkit2gt-ի համար: ընդլայնում-4.0, x11, zlib, gnutls;
  • Հեռացված gedit-2.20 և webkit-1.0 կապերը;
  • Թարմացված կապեր՝ հիմնված GIR-ի վրա;
  • Թեստավորման համակարգին ավելացվել է գեներացված C կոդը ստուգելու հնարավորությունը.
  • Բարելավված girparser, girwriter, valadoc, libvaladoc/girimporter;
  • Կոմպիլյատորի տարբեր բաղադրիչների կուտակված սխալներն ու թերությունները շտկվել են։

Source: opennet.ru

Добавить комментарий