Vala-programmeertaalsamesteller-opdatering 0.50.4

'n Nuwe weergawe van die samesteller vir die Vala-programmeertaal 0.50.4 is vrygestel. Die langtermyn ondersteuning (LTS) tak Vala 0.48.14 (verpak vir Ubuntu 18.04) en die eksperimentele tak Vala 0.51.3 is ook opgedateer.

Die Vala-taal is 'n objekgeoriënteerde programmeertaal wat 'n sintaksis soortgelyk aan C# of Java verskaf. Gobject (Glib Object System) word as 'n objekmodel gebruik. Geheuebestuur word uitgevoer deur eienaarskap (skakels wat besit/nie besit) of deur gebruik te maak van ARC (vervanging van vernietigers en afname van voorwerpverwysingstellers in die samestellingstadium).

Die taal het ondersteuning vir introspeksie, lambda-funksies, koppelvlakke, afgevaardigdes en sluitings, seine en gleuwe, uitsonderings, eienskappe, nie-nul tipes, tipe inferensie vir plaaslike veranderlikes. Die kit kom met 'n groot aantal bindings aan biblioteke in C (vala-girs, vala-extra-vapis). Vala-programme word in C-voorstelling vertaal en dan saamgestel deur 'n standaard C-samesteller Dit is moontlik om programme in script-modus te laat loop.

Lys van veranderinge:

  • Bykomende ondersteuning bygevoeg vir die params-sleutelwoord vir konstrukteursklas Foo{ publieke Foo(params-string[] args){foreach (var arg in args) print(arg); } }
  • kodegen:
    • Verbeterde ondersteuning vir SimpleType-struktuurkonstrukteurs (byvoorbeeld gebruik om typedef uint32_t people_inside te bind; vanaf C) [SimpleType] [CCode (cname = "people_inside")] publieke struktuur PeopleInside : uint32 {}
    • Verbeterde hantering van die "NoWrapper"-kenmerk.
    • CCode.type_cname en get_ccode_type_name() word toegelaat vir klasse.
    • G_TYPE_INSTANCE_GET_CLASS/INTERFACE word altyd vir eksterne simbole gebruik.
    • Gebruik g_boxed_free in free-wrapper om GLib.Value op die hoop toe te ken.
    • 'n Geheuelek reggestel tydens die implisiete uitpak van GLib.Value ('n universele houer van enige waardetipe).
    • 'n Geheuelek reggestel wanneer 'n hoop-toegewysde struktuur na 'n stapel geskuif word.
    • Oorerwing van die vernietiger van die ouerstruktuur word verseker
    • Korrekte herwinning van simbol_verwysing van geneste cast uitdrukkings is verbeter.
    • Het alle geneste voorkomste van CCodeCastExpression verwyder.
    • Het opgehou om die verstekseinhanteerder verkeerd te bel.
    • Gekoppelde "string.h" vir strcmp() (POSIX-profiel, modus waarin Vala kode genereer deur slegs die standaard C-biblioteek te gebruik).
  • Vala:
    • Verbeterde opsporing van duplikaatpakketbronlêers.
    • GtkChild-velde/eiendomme moet onbesit verklaar word.
    • Die hertoewysing van die GtkChild-veld/eiendom is verbode.
    • 'n Strenger voorwaarde is op die lambda toegepas wanneer 'n opdrag gedelegeer word.
    • Dit is verbode om eenmalige SimpleType-strukture te gebruik.
    • GLib.Value unboxing verseker dat die onbesitwaarde teruggestuur word.
    • Dit is verbode om GLib.Value na 'n nulbare struktuur/eenvoudige tipe te gooi.
    • Bygevoeg tipe argument kontrolering in basis tipes/klas/koppelvlakvoorwaardes.
    • Die vaslegging van va_list parameters/veranderlikes is verbode.
    • Generieke wat 'n wyser na 'n struktuur bevat, moet na die korrekte tipe gegiet word wanneer toegang verkry word om C UB te vermy.
    • Geïmplementeerde tipe afleiding vir "in" binne enum.
    • Verbeterde kontekskontrolering vir opdragte in die skryfbare veld.
    • Ingesluit "stdlib.h" vir Enum.to_string() (POSIX).
    • Die korrekte bronverwysing is gestel vir die implisiete veranderlikes "hierdie" en "resultaat"
    • Verskaf 'n foutboodskap vir 'n ongeldige interne operand van unêre uitdrukkings.
  • Сodewriter: Opgehou om die agterste ";" by te voeg na die liggaam WithStatement.
  • Girparser:
    • Verwerking van 'n anonieme afgevaardigde wat nie deur 'n virtuele metode of sein gerugsteun word nie, word verskaf.
    • Toegepaste "delegate_target"-metadata vir metodes en parameters
    • Pas "destroy_notify_cname"-metadata toe op velde
    • Pas "type_get_function" metadata vir klasse en koppelvlakke toe
    • Stel CCode.type_cname vir klasse indien nie die verstek nie.
  • girwriter: Verseker instansie parameter elemente word geskryf.
  • girwriter: Geïmplementeerde verstek sein hanteerder uitset.
  • libvaladoc/html: Verwyder sortering van struktuurvelde om hul oorspronklike volgorde te verlaat wanneer html-dokumentasie gegenereer word valadoc.org
  • libvaladoc: Maak seker dat waardes vir Api.Class.is_compact korrek opgespoor word
  • libvaladoc: Omhulsel bygevoeg vir "agedge" graphviz-biblioteek
  • Bindings:
    • Klein regstellings wanneer bindings gegenereer word: 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 lont, libxml-2.0
    • gdk-pixbuf-2.0: Maak Pixbuf.save_to_streamv_async() reg
    • gio-2.0: PollableOutputStream.write*_nonblocking() binding fix
    • gio-2.0,gtk+-3.0,gtk4: Eksplisiete c-tipe eienskappe van va_list parameters word weggegooi
    • gio-2.0: Geselekteerde ontbrekende aanroeper vir sommige AppInfo/File.*()-metodes
    • glib-2.0: Bygevoeg GLib.[S]List.is_empty() geriefsmetodes vir nie-nul
    • glib-2.0: Binding van die assert_cmp*-funksie [#395]
    • glib-2.0: Verbeterde OptionEntry.flags-veldtipe
    • glib-2.0: PtrArray is nou 'n subklas van GenericArray
    • gstreamer-1.0: CCode.type_id van die MiniObject is ingestel op G_TYPE_BOXED [#1133]
    • gtk+-2.0, javascriptcoregtk-4.0: Korrigeer gebruik van die CCode.type_cname kenmerk
    • gtk+-3.0,gtk4: 'n paar waardes en parameters vir afgevaardigdes is reggestel
    • gtk4: Opgedateer na weergawe 4.0.2.

Bron: opennet.ru

Voeg 'n opmerking