'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