Aġġornament tal-kompilatur tal-lingwa ta' programmar Vala 0.50.4

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

Żid kumment