Verżjoni ġdida tal-kompilatur għal-lingwa ta' programmar Vala 0.50.4 ġiet rilaxxata. Il-fergħa tal-appoġġ fit-tul (LTS) Vala 0.48.14 (ippakkjat għal Ubuntu 18.04) u l-fergħa sperimentali Vala 0.51.3 ġew aġġornati wkoll.
Il-lingwa Vala hija lingwa ta 'programmar orjentata lejn l-oġġetti li tipprovdi sintassi simili għal C# jew Java. Gobject (Glib Object System) jintuża bħala mudell ta' oġġett. Il-ġestjoni tal-memorja titwettaq permezz ta 'sjieda (links ta' proprjetà/mhux proprjetà) jew bl-użu ta 'ARC (sostituzzjoni ta' distrutturi u tnaqqis ta' counters ta 'referenza ta' oġġetti fl-istadju tal-kumpilazzjoni).
Il-lingwa għandha appoġġ għal introspezzjoni, funzjonijiet lambda, interfaces, delegati u għeluq, sinjali u slots, eċċezzjonijiet, proprjetajiet, tipi mhux nulli, inferenza tat-tip għal varjabbli lokali. Il-kit jiġi ma 'numru kbir ta' rbit għal libreriji f'Ċ (vala-girs, vala-extra-vapis). Il-programmi Vala huma tradotti f'rappreżentazzjoni C u mbagħad ikkumpilati minn kompilatur standard C. Huwa possibbli li jitmexxew programmi fil-mod ta 'skript.
Lista ta' bidliet:
- Miżjud appoġġ addizzjonali għall-keyword params għall-kostrutturi klassi Foo{ public Foo(params string[] args){ foreach (var arg in args) print(arg); } }
- codegen:
- Appoġġ imtejjeb għall-kostrutturi tal-istrutturi SimpleType (per eżempju użat biex jorbot typedef uint32_t people_inside; minn C) [SimpleType] [CCode (cname = "people_inside")] public struct PeopleInside : uint32 {}
- Immaniġġjar imtejjeb tal-attribut "NoWrapper".
- CCode.type_cname u get_ccode_type_name() huma permessi għall-klassijiet.
- G_TYPE_INSTANCE_GET_CLASS/INTERFACE dejjem tintuża għal simboli esterni.
- Użat g_boxed_free fil-free-wrapper biex talloka GLib.Value fuq il-borġ.
- Iffissat tnixxija tal-memorja waqt unboxing impliċitu ta' GLib.Value (kontenitur universali ta' kwalunkwe tip ta' valur).
- Iffissat tnixxija tal-memorja meta ċaqlaq struttura allokata bil-munzell għal munzell.
- Il-wirt tad-distruttur tal-istruttura prinċipali huwa żgurat
- Ġie mtejjeb l-irkupru korrett ta' symbol_reference ta' espressjonijiet mitfugħa.
- Neħħew l-okkorrenzi ibdew kollha ta' CCodeCastExpression.
- Waqaf ssejjaħ b'mod żbaljat lill-handler tas-sinjali default.
- "string.h" konness għal strcmp() (profil POSIX, mod li fih Vala jiġġenera kodiċi billi juża biss il-librerija C standard).
- Vala:
- Sejbien mtejba ta 'fajls tas-sors tal-pakkett duplikati.
- L-oqsma/propjetajiet ta' GtkChild għandhom jiġu ddikjarati bħala mhux proprjetà.
- L-assenjazzjoni mill-ġdid tal-qasam/propjetà GtkChild hija pprojbita.
- Ġiet applikata kundizzjoni aktar stretta għal-lambda meta tiddelega assenjazzjoni.
- Huwa pprojbit li jintużaw strutturi SimpleType li jintużaw darba biss.
- GLib.Value unboxing jiżgura li l-valur mhux proprjetà jintbagħat lura.
- L-ikkastjar ta' GLib.Value għal struct/tip sempliċi nullable huwa pprojbit.
- Iċċekkjar tal-argument tat-tip miżjud fit-tipi bażi/klassi/prekundizzjonijiet tal-interface.
- Il-qbid ta' parametri/varjabbli va_list huwa pprojbit.
- Ġeneriċi li jkun fihom pointer għal struttura għandhom jiġu mitfugħa għat-tip korrett meta jiġu aċċessati biex jiġi evitat C UB.
- Inferenza tat-tip implimentata għal "in" ġewwa enum.
- Iċċekkjar tal-kuntest imtejjeb għall-assenjamenti fil-qasam li jista' jinkiteb.
- Inkluż "stdlib.h" għal Enum.to_string() (POSIX).
- Is-source_reference korretta hija ssettjata għall-varjabbli impliċiti "dan" u "riżultat"
- Ipprovda messaġġ ta' żball għal operand intern invalidu ta' espressjonijiet unarji.
- Сodewriter: Waqaf iżżid it-trailing ";" wara l-korp WithStatement.
- Girparser:
- Jiġi pprovdut l-ipproċessar ta' delegat anonimu mhux appoġġjat minn metodu jew sinjal virtwali.
- Metadata applikata "delegate_target" għall-metodi u l-parametri
- Applika metadata "destroy_notify_cname" għall-oqsma
- Applika metadata "type_get_function" għal klassijiet u interfaces
- Issettja CCode.type_cname għall-klassijiet jekk mhux il-default.
- girwriter: Jiżgura li l-elementi tal-parametru tal-istanza jkunu miktuba.
- girwriter: Output tal-handler tas-sinjal default implimentat.
- libvaladoc/html: Tneħħa l-għażla tal-oqsma tal-istruttura biex tħalli l-ordni oriġinali tagħhom meta tiġġenera dokumentazzjoni html valadoc.org
- libvaladoc: Żgura li l-valuri għal Api.Class.is_compact jiġu rkuprati b'mod korrett
- libvaladoc: Miżjud tgeżwir għal librerija graphviz "agedge".
- Irbit:
- Fixs minuri meta jiġġeneraw rbit: 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 fjus, libxml-4
- gdk-pixbuf-2.0: Waħħal Pixbuf.save_to_streamv_async ()
- gio-2.0: PollableOutputStream.write*_nonblocking() tiffissa vinkolanti
- gio-2.0,gtk+-3.0,gtk4: Attributi espliċiti tat-tip c tal-parametri va_list huma mormija
- gio-2.0: Invokatur nieqes magħżul għal xi metodi AppInfo/File.*()
- glib-2.0: Miżjud metodi ta' konvenjenza GLib.[S]List.is_empty() għal mhux null
- glib-2.0: L-irbit tal-funzjoni assert_cmp* [#395]
- glib-2.0: Tip ta' qasam OptionEntry.flags imtejjeb
- glib-2.0: PtrArray issa hija sottoklassi ta' GenericArray
- gstreamer-1.0: CCode.type_id tal-MiniObject huwa ssettjat għal G_TYPE_BOXED [#1133]
- gtk+-2.0,javascriptcoregtk-4.0: Użu korrett tal-attribut CCode.type_cname
- gtk+-3.0, gtk4: Ffissati xi valuri u parametri ta' ritorn delegati
- gtk4: Aġġornat għall-verżjoni 4.0.2.
Sors: opennet.ru