Tlhahiso ea puo ea Vala programming compiler 0.50.4

Phetolelo e ncha ea moqapi oa puo ea lenaneo la Vala 0.50.4 e lokollotsoe. Lekala la tšehetso ea nako e telele (LTS) Vala 0.48.14 (e phuthetsoeng bakeng sa Ubuntu 18.04) le lekala la liteko Vala 0.51.3 le tsona li ntlafalitsoe.

Puo ea Vala ke puo ea lenaneo e shebaneng le ntho e fanang ka syntax e ts'oanang le C # kapa Java. Gobject (Glib Object System) e sebelisoa e le mohlala oa ntho. Taolo ea memori e etsoa ke beng (lihokelo tse nang le thepa / tse sa reroang) kapa ka ho sebelisa ARC (phatlalatso ea ba senyang le litheolelo tsa likhakanyo tsa litšupiso tsa ntho sethaleng sa ho bokella).

Puo e na le ts'ehetso bakeng sa ho itlhahloba, mesebetsi ea lambda, li-interfaces, baemeli le ho koaloa, matšoao le libaka, mekhelo, thepa, mefuta e seng ea lefeela, tlhahiso ea mofuta bakeng sa mefuta-futa ea sebaka. Thepa e tla le palo e kholo ea litlamo ho lilaebrari tsa C (vala-girs, vala-extra-vapis). Mananeo a Vala a fetoleloa ho boemeli ba C 'me a ntan'o hlophisoa ke moqapi o tloaelehileng oa C. Hoa khoneha ho tsamaisa mananeo ka mokhoa oa script.

Lethathamo la liphetoho:

  • E kentse tšehetso e eketsehileng bakeng sa lentsoe la sehlooho la li-params bakeng sa bahahi ba sehlopha sa Foo{public Foo(params string[] args){foreach (var arg in args) print(arg); }}
  • khoutu:
    • Tšehetso e ntlafetseng bakeng sa lihahi tsa SimpleType (mohlala tse sebelisetsoang ho kopanya typedef uint32_t people_inside; ho tloha ho C) [SimpleType] [CCode (cname = "people_inside")] sebopeho sa sechaba PeopleInside : uint32 {}
    • Ts'ebetso e ntlafalitsoeng ea tšobotsi ea "NoWrapper".
    • CCode.type_cname le get_ccode_type_name() li lumelletsoe lihlopha.
    • G_TYPE_INSTANCE_GET_CLASS/INTERFACE e sebediswa kamehla bakeng sa matshwao a kantle.
    • E sebelisitsoe g_boxed_free ho free-wrapper ho fana ka GLib.Boleng bo bongata.
    • E lokisitse ho dutla ha memori nakong ya ha ho buuwa ha GLib.Value (setshelo sa bokahohle sa mofuta ofe kapa ofe wa boleng).
    • Lokisa ho dutla ha memori ha o isa sebopeho se abetsweng qubu ho sepakela.
    • Lefa la mohatelli oa sebopeho sa motsoali le tiisitsoe
    • Ho fumanwa hape ho nepahetseng ha symbol_reference of nested cast expressions ho ntlafalitsoe.
    • E tlositse liketsahalo tsohle tsa CCodeCastExpression.
    • E emisitse ka phoso sebatli sa lets'oao la kamehla.
    • E hoketsoe "string.h" bakeng sa strcmp() (POSIX profil, mode eo Vala e hlahisang khoutu ka eona e sebelisa laebrari e tloaelehileng ea C feela).
  • Vala:
    • Mokhoa o ntlafetseng oa ho fumana lifaele tsa mohloli oa sephutheloana.
    • Libaka/thepa ea GtkChild e tlameha ho phatlalatsoa hore ha e na thepa.
    • Ho abela bocha sebaka/thepa ea GtkChild ha ho lumelloe.
    • Ho sebelisitsoe boemo bo thata ho lambda ha e abela mosebetsi.
    • Ho thibetsoe ho sebelisa lisebelisoa tsa SimpleType tse sebelisoang hang feela.
    • GLib.Value unboxing e netefatsa hore boleng boo e seng ba motho bo khutlisitsoe.
    • Ho lahlela GLib.Boleng ba mofuta o felloang ke letho/mofuta o bonolo ha oa lumelloa.
    • Phehisano ea mofuta o kenyellelitsoeng ho hlahloba mefuta ea mantlha / maemo a pele a sebopeho.
    • Ho haneloa ho nka va_list parameters/variables.
    • Li-generic tse nang le sesupo sa sebopeho li tlameha ho etsoa mofuteng o nepahetseng ha li fumaneha ho qoba C UB.
    • Tlhahiso ea mofuta o kentsoeng bakeng sa "in" ka hare ho enum.
    • Ho hlahloba maemo a ntlafalitsoeng bakeng sa likabelo sebakeng se ngoloang.
    • E kenyelelitsoe "stdlib.h" bakeng sa Enum.to_string() (POSIX).
    • Mohloli o nepahetseng_reference o behiloe bakeng sa mefuta e sa tšoaneng "ena" le "sephetho"
    • E fane ka molaetsa oa phoso bakeng sa tšebetso e fosahetseng ea ka hare ea lipolelo tse sa tloaelehang.
  • Сodewriter: E emisitse ho eketsa trailing ";" ka mora mmele KaStatement.
  • Girparser:
    • Ts'ebetso ea moemeli ea sa tsejoeng e sa tšehetsoeng ke mokhoa oa sebele kapa lets'oao le fanoe.
    • Metadata ea "delegate_target" e sebelisitsoeng bakeng sa mekhoa le liparamente
    • Kenya "destroy_notify_cname" metadata libakeng
    • Kenya "type_get_function" metadata bakeng sa litlelase le likhokahano
    • Seta CCode.type_cname bakeng sa lihlopha haeba e se ea kamehla.
  • girwriter: E netefatsa hore likarolo tsa paramethara tsa mohlala lia ngoloa.
  • girwriter: E kentsoeng tšebetsong ea sesebelisoa sa lets'oao sa kamehla.
  • libvaladoc/html: Ho tlositsoe ho hlophisoa ha likarolo tsa sebopeho ho siea tatellano ea bona ea mantlha ha ho etsoa litokomane tsa html valadoc.org
  • libvaladoc: Netefatsa hore boleng ba Api.Class.is_compact bo nkiloe ka nepo
  • libvaladoc: Sekoahelo se kentsoeng bakeng sa laeborari ea "agedge" ea graphviz
  • Litlamo:
    • Litokiso tse nyane ha ho etsoa litlamo: cairo, gobject-2.0, pango, goocanvas-2.0, thohako, alsa, bzlib, sqlite3, libgvc, posix, gstreamer-1.0, gdk-3.0, gdk-x11-3.0, gtk+-3.0, gtk+-4, 2.0. fuse, libxml-XNUMX
    • gdk-pixbuf-2.0: Lokisa Pixbuf.save_to_streamv_async()
    • gio-2.0: PollableOutputStream.write*_nonblocking() tokiso e tlamang
    • gio-2.0,gtk+-3.0,gtk4: Litšobotsi tse hlakileng tsa mofuta oa c tsa li-parameter tsa va_list lia lahloa
    • gio-2.0: Ho khethiloe invoker e sieo bakeng sa mekhoa e meng ea AppInfo/File.*()
    • glib-2.0: E kentse GLib.[S]List.is_empty() mekhoa e bonolo bakeng sa non-null
    • glib-2.0: Tlama mosebetsi oa assert_cmp* [#395]
    • glib-2.0: Mofuta o ntlafetseng oa sebaka sa OptionEntry.flags
    • glib-2.0: PtrArray e se e le karoloana ea GenericArray
    • gstreamer-1.0: CCode.type_id ea MiniObject e hlophisitsoe ho G_TYPE_BOXED [#1133]
    • gtk+-2.0,javascriptcoregtk-4.0: Tšebeliso e nepahetseng ea tšobotsi ea CCode.type_cname
    • gtk+-3.0,gtk4: Lokisitse litekanyetso le liparamente tsa ho khutlisa baemeli
    • gtk4: E ntlafalitsoe ho mofuta oa 4.0.2.

Source: opennet.ru

Eketsa ka tlhaloso