Kusintha kwa chilankhulo cha Vala programming 0.50.4

Mtundu watsopano wa compiler wa chinenero cha pulogalamu ya Vala 0.50.4 watulutsidwa. Thandizo la nthawi yayitali (LTS) nthambi ya Vala 0.48.14 (yopakidwa Ubuntu 18.04) ndi nthambi yoyesera Vala 0.51.3 zasinthidwanso.

Chilankhulo cha Vala ndi chilankhulo chokhazikitsidwa ndi chinthu chomwe chimapereka mawu ofanana ndi C # kapena Java. Gobject (Glib Object System) imagwiritsidwa ntchito ngati chitsanzo cha chinthu. Kuwongolera kukumbukira kumachitika ndi umwini (maulalo omwe ali nawo/osadziwika) kapena kugwiritsa ntchito ARC (m'malo mwa zowononga ndi kuchepetsa zowerengera zazinthu pakuphatikiza).

Chilankhulochi chili ndi chithandizo cha introspection, ntchito za lambda, malo olowera, nthumwi ndi kutseka, zizindikiro ndi malo otsetsereka, kupatulapo, katundu, mitundu yosakhala yopanda pake, kutanthauzira kwamtundu wamitundu yosiyanasiyana. Zidazi zimabwera ndi zomangira zambiri zama library ku C (vala-girs, vala-extra-vapis). Mapulogalamu a Vala amamasuliridwa ku chiwonetsero cha C ndiyeno amapangidwa ndi wokhazikika wa C. N'zotheka kuyendetsa mapulogalamu mu script mode.

Mndandanda wazosintha:

  • Anawonjezera thandizo la mawu osakira a params a gulu la omanga Foo{public Foo(params string[] args){ foreach (var arg in args) print(arg); }}
  • codegen:
    • Thandizo lowongolera la SimpleType struct constructors (mwachitsanzo amagwiritsidwa ntchito kumangirira typedef uint32_t people_inside; kuchokera ku C) [SimpleType] [CCode (cname = "people_inside")] gulu la anthu PeopleInside : uint32 {}
    • Kuwongolera kwabwino kwa "NoWrapper" mawonekedwe.
    • CCode.type_cname ndi get_ccode_type_name() ndizololedwa pamakalasi.
    • G_TYPE_INSTANCE_GET_CLASS/INTERFACE imagwiritsidwa ntchito ngati zizindikilo zakunja.
    • Gwiritsani ntchito g_boxed_free mu free-wrapper kuti mugawire GLib.Value pa mulu.
    • Konzani kudontha kwapamtima panthawi ya unboxing ya GLib.Value (chidebe chapadziko lonse chamtundu uliwonse wamtengo).
    • Konzani kutayikira kwa kukumbukira posuntha gawo lomwe lagawika mulu kupita nalo.
    • Cholowa cha wowononga dongosolo la makolo amatsimikiziridwa
    • Kubweza kolondola kwa chizindikiro_referensi ya mawu oponyedwa mu zisa kwawongoleredwa.
    • Yachotsa zochitika zonse za CCodeCastExpression.
    • Yayima molakwika kuyimba chothandizira chizindikiro.
    • Yolumikizidwa "string.h" ya strcmp() (POSIX mbiri, momwe Vala amapangira kachidindo pogwiritsa ntchito laibulale ya C yokha).
  • Vala:
    • Kuzindikirika kwabwino kwa mafayilo obwereza a phukusi.
    • Minda/zinthu za GtkChild ziyenera kulengezedwa kuti sizokhala zake.
    • Kupatsanso gawo/katundu wa GtkChild ndikoletsedwa.
    • Mkhalidwe wokhwima wagwiritsidwa ntchito kwa lambda pogawira ena ntchito.
    • Ndizoletsedwa kugwiritsa ntchito zida za SimpleType zokha.
    • GLib.Value unboxing imawonetsetsa kuti mtengo wosadziwika wabwezedwa.
    • Kuponya GLib.Kufunika kwa mtundu wosasinthika/wosavuta ndikoletsedwa.
    • Mkangano wowonjezera wowunika mitundu yoyambira/kalasi/mawonekedwe oyambira.
    • Kujambula va_list magawo/zosinthika ndikoletsedwa.
    • Ma generic okhala ndi cholozera pamapangidwe ayenera kuponyedwa mumtundu wolondola akapezeka kuti apewe C UB.
    • Kufotokozera kwamtundu wa "in" mkati mwa enum.
    • Kuwongolera mawu owunikira ntchito kugawo lolembedwa.
    • Mulinso "stdlib.h" ya Enum.to_string() (POSIX).
    • Source_reference yolondola imayikidwa pazosintha "izi" ndi "zotsatira"
    • Adapereka uthenga wolakwika pakugwiritsa ntchito mkati mwa mawu osavomerezeka.
  • Π‘odewriter: Anasiya kuwonjezera njira ";" pambuyo pa thupi WithStatement.
  • Girparser:
    • Kukonzekera kwa nthumwi yosadziwika popanda kuthandizidwa ndi njira yeniyeni kapena chizindikiro kumaperekedwa.
    • Metadata ya "delegate_target" yogwiritsidwa ntchito panjira ndi magawo
    • Ikani metadata ya "destroy_notify_cname" m'magawo
    • Ikani metadata ya "type_get_function" pamakalasi ndi zolumikizirana
    • Khazikitsani CCode.type_cname yamakalasi ngati sichosakhazikika.
  • girwriter: Imawonetsetsa kuti zinthu za parameter zalembedwa.
  • girwriter: Kutulutsa kwa chizindikiro chokhazikika.
  • libvaladoc/html: Kuchotsa masanjidwe amapangidwe kuti asiye dongosolo lawo loyambirira popanga zolemba za html valadoc.org
  • libvaladoc: Onetsetsani kuti mitengo ya Api.Class.is_compact yabwezedwa moyenera
  • libvaladoc: Chovala chowonjezera cha library ya "agedge" graphviz
  • Zomangira:
    • Zokonza zazing'ono popanga zomangira: cairo, gobject-2.0, pango, goocanvas-2.0, matemberero, alsa, bzlib, sqlite3, libgvc, posix, gstreamer-1.0, gdk-3.0, gdk-x11-3.0, gtk+tk3.0, gtk+-4, 2.0. fuse, libxml-XNUMX
    • gdk-pixbuf-2.0: Konzani Pixbuf.save_to_streamv_async()
    • gio-2.0: PollableOutputStream.write*_nonblocking() kukonza zomanga
    • gio-2.0,gtk+-3.0,gtk4: Mawonekedwe amtundu wa c wamtundu wa va_list amatayidwa
    • gio-2.0: Osankhidwa omwe akusowa njira zina za AppInfo/Fayilo.*()
    • glib-2.0: Yowonjezera GLib.[S]List.is_empty() njira zosavuta za non-null
    • glib-2.0: Kumanga ntchito ya assert_cmp* [#395]
    • glib-2.0: Mtundu wamunda wa OptionEntry.flags Wotukuka
    • glib-2.0: PtrArray tsopano ndi gulu laling'ono la GenericArray
    • gstreamer-1.0: CCode.type_id ya MiniObject yakhazikitsidwa ku G_TYPE_BOXED [#1133]
    • gtk+-2.0,javascriptcoregtk-4.0: Kugwiritsa ntchito koyenera kwa CCode.type_cname
    • gtk+-3.0,gtk4: Kukhazikitsa mikhalidwe yobwerera kwa nthumwi ndi magawo
    • gtk4: Yasinthidwa kukhala 4.0.2.

Source: opennet.ru

Kuwonjezera ndemanga