Vala forritunarmálsþýðanda uppfærsla 0.50.4

Ný útgáfa af þýðanda fyrir Völu forritunarmálið 0.50.4 er komin út. Langtímastuðningsútibúið (LTS) Vala 0.48.14 (pakkað fyrir Ubuntu 18.04) og tilraunaútibúið Vala 0.51.3 hefur einnig verið uppfært.

Vala tungumálið er hlutbundið forritunarmál sem veitir setningafræði svipað og C# eða Java. Gobject (Glib Object System) er notað sem hlutlíkan. Minnisstjórnun fer fram með eignarhaldi (eigin/óeigð hlekkur) eða með því að nota ARC (skipta um eyðingarbúnað og lækka tilvísunarteljara hluta á samantektarstigi).

Tungumálið hefur stuðning fyrir sjálfskoðun, lambda-aðgerðir, viðmót, fulltrúa og lokun, merki og raufar, undantekningar, eiginleika, tegundir sem ekki eru núll, tegundaályktun fyrir staðbundnar breytur. Settinu fylgir mikill fjöldi bindinga við bókasöfn í C (vala-girs, vala-extra-vapis). Vala forrit eru þýdd yfir í C ​​framsetningu og síðan sett saman af venjulegum C þýðanda Hægt er að keyra forrit í skriftuham.

Listi yfir breytingar:

  • Bætti við viðbótarstuðningi við params leitarorðið fyrir smiðaflokkinn Foo{ public Foo(params string[] args){ foreach (var arg í args) print(arg); } }
  • kóðageni:
    • Bættur stuðningur við SimpleType struct smiðir (til dæmis notað til að binda typedef uint32_t people_inside; frá C) [SimpleType] [CCode (cname = "people_inside")] public struct PeopleInside : uint32 {}
    • Bætt meðhöndlun á „NoWrapper“ eigindinni.
    • CCode.type_cname og get_ccode_type_name() eru leyfðar fyrir flokka.
    • G_TYPE_INSTANCE_GET_CLASS/INTERFACE er alltaf notað fyrir ytri tákn.
    • Notaði g_boxed_free í free-wrapper til að úthluta GLib.Value á hrúguna.
    • Lagaði minnisleka við óbeina afhólfun á GLib.Value (alhliða ílát af hvaða gildistegund sem er).
    • Lagaði minnisleka þegar hrúguúthlutað mannvirki var flutt í stafla.
    • Erfðir eyðileggjandi móðurbyggingarinnar eru tryggðir
    • Rétt endurheimt á symbol_reference á hreiðra steypusjáningum hefur verið bætt.
    • Fjarlægði öll hreiður tilvik af CCodeCastExpression.
    • Hætt var að hringja ranglega í sjálfgefna merkjameðferðarmanninn.
    • Tengdur "string.h" fyrir strcmp() (POSIX prófíl, ham þar sem Vala býr til kóða með því að nota aðeins staðlaða C bókasafnið).
  • Vala:
    • Bætt uppgötvun á tvíteknum upprunaskrám pakka.
    • GtkChild reitir/eignir verða að vera óeignar.
    • Það er bannað að endurúthluta GtkChild reitnum/eigninni.
    • Við framsal erindis hefur verið sett strangara skilyrði fyrir lambda.
    • Það er bannað að nota einnota SimpleType mannvirki.
    • GLib.Value unboxing tryggir að óeignarverðmæti sé skilað.
    • Það er bannað að steypa GLib.Value í nullable struct/einfalda gerð.
    • Bætt við athugun á tegundarrökum í grunntegundum/flokki/viðmótsskilyrðum.
    • Bannað er að fanga va_list færibreytur/breytur.
    • Almennar efni sem innihalda bendil á mannvirki verða að vera steyptar í rétta gerð þegar aðgangur er að þeim til að forðast C UB.
    • Útfærð tegundarályktun fyrir "inn" inni í enum.
    • Bætt samhengisathugun fyrir verkefnum á skrifanlega reitinn.
    • Innifalið „stdlib.h“ fyrir Enum.to_string() (POSIX).
    • Rétt upprunatilvísun er stillt fyrir óbeinu breyturnar "þetta" og "niðurstaða"
    • Gefið upp villuskilaboð fyrir ógilda innri operanda óbundinna segða.
  • Сodewriter: Hætti að bæta við aftan ";" á eftir meginmálinu WithStatement.
  • Girparser:
    • Vinnsla nafnlauss fulltrúa sem ekki er studd af sýndaraðferð eða merki er veitt.
    • Notuð „delegate_target“ lýsigögn fyrir aðferðir og færibreytur
    • Notaðu „destroy_notify_cname“ lýsigögn á reiti
    • Notaðu „type_get_function“ lýsigögn fyrir flokka og viðmót
    • Stilltu CCode.type_cname fyrir flokka ef ekki sjálfgefið.
  • girwriter: Tryggir að þættir tilviksfæribreytu séu skrifaðir.
  • girwriter: Innleitt sjálfgefið úttak merkishöndlara.
  • libvaladoc/html: Fjarlægði flokkun á uppbyggingareitum til að skilja eftir upprunalega röð þeirra þegar búið er til html skjöl valadoc.org
  • libvaladoc: Gakktu úr skugga um að gildi fyrir Api.Class.is_compact séu sótt rétt
  • libvaladoc: Bætti við umbúðum fyrir "agedge" graphviz bókasafn
  • Binding:
    • Minniháttar lagfæringar þegar búið er til bindingar: cairo, gobject-2.0, pango, goocanvas-2.0, curses, alsa, bzlib, sqlite3, libgvc, posix, gstreamer-1.0, gdk-3.0, gdk-x11-3.0, gtk+-3.0, gtk+-4, gtk öryggi, libxml-2.0
    • gdk-pixbuf-2.0: Lagaðu Pixbuf.save_to_streamv_async()
    • gio-2.0: PollableOutputStream.write*_nonblocking() bindandi lagfæring
    • gio-2.0,gtk+-3.0,gtk4: Skýrum c-gerð eiginleikum va_list breytum er hent
    • gio-2.0: Valinn invoker sem vantar fyrir sumar AppInfo/File.*() aðferðir
    • glib-2.0: Bætt við GLib.[S]List.is_empty() þægindaaðferðum fyrir ekki núll
    • glib-2.0: Binding assert_cmp* fallsins [#395]
    • glib-2.0: Bætt OptionEntry.flags svæðisgerð
    • glib-2.0: PtrArray er nú undirflokkur af GenericArray
    • gstreamer-1.0: CCode.type_id á MiniObject er stillt á G_TYPE_BOXED [#1133]
    • gtk+-2.0, javascriptcoregtk-4.0: Leiðrétt notkun á eigindinni CCode.type_cname
    • gtk+-3.0,gtk4: Lagaði nokkur fulltrúaskilagildi og færibreytur
    • gtk4: Uppfært í útgáfu 4.0.2.

Heimild: opennet.ru

Bæta við athugasemd