Sasisho la mkusanyaji wa lugha ya programu ya Vala 0.50.4

Toleo jipya la kikusanyaji cha lugha ya programu ya Vala, toleo la 0.50.4, limetolewa. Tawi la usaidizi wa muda mrefu (LTS) la Vala 0.48.14 pia limesasishwa (limefungashwa kwa ajili ya Ubuntu 18.04) na tawi la majaribio la Vala 0.51.3.

Vala ni lugha ya programu inayolengwa na kitu na sintaksia sawa na C# au Java. Inatumia Gobject (Glib Object System) kama kielelezo cha kitu chake. Udhibiti wa kumbukumbu unafanywa na umiliki (marejeleo yanayomilikiwa/yasiyomilikiwa) au na ARC (kiharibifu cha muda wa kukusanya na kupunguza idadi ya marejeleo).

Lugha inaauni uchunguzi, utendakazi wa lambda, violesura, wajumbe na kufungwa, ishara na nafasi, vighairi, sifa, aina zisizobatilika, na makisio ya aina kwa vigeu vya ndani. Idadi kubwa ya vifungo kwa maktaba za C (vala-girs, vala-extra-vapis) imejumuishwa. Programu za Vala hutafsiriwa katika uwakilishi wa C na kisha kukusanywa na mkusanyaji wa C aliyejengewa ndani. Programu zinaweza kuendeshwa katika hali ya hati.

Orodha ya mabadiliko:

  • Imeongeza usaidizi wa ziada wa neno kuu la params kwa wajenzi darasa Foo{ public Foo(params string[] args){ foreach (var arg in args) print(arg); }}
  • kodejeni:
    • Usaidizi ulioboreshwa kwa waundaji wa miundo ya SimpleType (k.m. inayotumika kuunganisha typedef uint32_t people_inside; kutoka C) [SimpleType] [CCode (cname = "people_inside")] muundo wa umma PeopleInside : uint32 {}
    • Utunzaji ulioboreshwa wa sifa ya "NoWrapper".
    • Kwa madarasa, CCode.type_cname na get_ccode_type_name() zinaruhusiwa.
    • Tumia G_TYPE_INSTANCE_GET_CLASS/INTERFACE kila wakati kwa alama za nje.
    • Imetumia g_boxed_free katika free-wrapper kutenga GLib.Thamani kwenye lundo.
    • Imerekebisha uvujaji wa kumbukumbu wakati wa uondoaji kikasha kwa uwazi wa GLib.Value (kontena zima la aina yoyote ya thamani).
    • Imerekebisha uvujaji wa kumbukumbu wakati wa kuhamisha muundo uliotengwa kwa lundo kwenye rafu.
    • Hutoa urithi wa kiharibu muundo wa mzazi
    • Urejeshaji sahihi wa alama_marejeleo ya vielelezo vya kutupwa vilivyowekwa kwenye kiota vimerekebishwa.
    • Matukio yote yaliyowekwa kwenye CCodeCastExpression yameondolewa.
    • Imerekebisha ombi lisilo sahihi la kidhibiti chaguo-msingi cha mawimbi.
    • "string.h" imeunganishwa kwa strcmp() (wasifu wa POSIX, hali ambayo Vala hutengeneza msimbo kwa kutumia maktaba ya kawaida ya C pekee).
  • Vala:
    • Ugunduzi ulioboreshwa wa faili mbili za chanzo cha kifurushi.
    • Sehemu/sifa za GtkChild lazima zitangazwe kuwa hazimilikiwi.
    • Kukabidhi upya sehemu/mali ya GtkChild ni marufuku.
    • Sharti kali zaidi limetumika kwa lambda wakati wa kukabidhi kazi.
    • Utumiaji wa miundo ya kutumia SimpleType ni marufuku.
    • Katika GLib.Value unboxing, thamani isiyomilikiwa inarudishwa.
    • Kutuma GLib.Thamani kwa muundo/aina rahisi inayoweza kubatilika hairuhusiwi.
    • Imeongeza ukaguzi wa hoja za aina katika aina za msingi/masharti ya awali ya kiolesura.
    • Kunasa vigezo/vigeu vya va_list ni marufuku.
    • Jenetiki zilizo na kielekezi kwa muundo lazima zitupwe kwa aina sahihi zinapofikiwa ili kuepuka C UB.
    • Uelekezaji wa aina uliotekelezwa wa "in" ndani ya enum.
    • Ukaguaji muktadha ulioboreshwa wakati wa kukabidhi sehemu inayoweza kuandikwa.
    • Imeunganishwa "stdlib.h" kwa Enum.to_string() (POSIX).
    • Weka rejeleo sahihi la chanzo_kwa vigeu visivyo wazi "hii" na "matokeo"
    • Imetoa pato la ujumbe wa hitilafu kwa uendeshaji batili wa ndani wa misemo isiyo ya kawaida.
  • Mwandishi wa msimbo: Aliacha kuongeza wimbo ";" baada ya shirika la WithStatement.
  • Girparser:
    • Zinazotolewa kushughulikia mjumbe ambaye jina lake halijaungwa mkono na mbinu au mawimbi ya mtandaoni.
    • Metadata ya "delegate_target" imetumika kwa mbinu na vigezo.
    • Metadata iliyotumiwa "destroy_notify_cname" kwenye sehemu
    • Metadata ya "type_get_function" imetumika kwa madarasa na violesura.
    • Weka CCode.type_cname kwa madarasa ikiwa hailingani na thamani chaguo-msingi.
  • girwriter: Hutoa uandishi wa vipengele vya parameta ya mfano.
  • girwriter: Toleo lililotekelezwa la kidhibiti chaguo-msingi cha mawimbi.
  • libvaladoc/html: Imeondoa upangaji wa sehemu za muundo ili kuhifadhi mpangilio wao wa asili wakati wa kutengeneza hati za HTML za valadoc.org
  • libvaladoc: Imehakikisha kuwa thamani za Api.Class.is_compact zimerejeshwa ipasavyo
  • libvaladoc: Karatasi iliyoongezwa ya maktaba ya graphviz ya "agedge".
  • Vifungo:
    • Marekebisho madogo kwa ajili ya kizazi kinachofunga: cairo, gobject-2.0, pango, goocanvas-2.0, laana, alsa, bzlib, sqlite3, libgvc, posix, gstreamer-1.0, gdk-3.0, gdk-x11-3.0, gtk+-4,0m, gt li.
    • gdk-pixbuf-2.0: Rekebisha Pixbuf.save_to_streamv_async()
    • gio-2.0: Rekebisha PollableOutputStream.write*_nonblocking() binding
    • gio-2.0,gtk+-3.0,gtk4: Imeacha sifa dhalimu za aina ya c za vigezo vya va_list
    • gio-2.0: Kichochezi hakipo kilichochaguliwa kwa baadhi ya mbinu za AppInfo/File.*()
    • glib-2.0: Imeongezwa GLib.[S]List.is_empty() mbinu za urahisi za zisizo batili
    • glib-2.0: Kitendaji cha kumfunga assert_cmp* [#395]
    • glib-2.0: Aina ya uga ya OptionEntry.flags iliyoboreshwa
    • glib-2.0: PtrArray sasa ni aina ndogo ya GenericArray
    • gstreamer-1.0: CCode.type_id ya MiniObject imewekwa kuwa G_TYPE_BOXED [#1133]
    • gtk+-2.0,javascriptcoregtk-4.0: Matumizi sahihi ya sifa ya CCode.type_cname
    • gtk+-3.0,gtk4: Imerekebisha maadili na vigezo vya kurudi kwa mjumbe
    • gtk4: Imesasishwa hadi toleo la 4.0.2.

Chanzo: opennet.ru

Nunua upangishaji wa kuaminika wa tovuti zilizo na ulinzi wa DDoS, seva za VPS VDS 🔥 Nunua upangishaji wa tovuti unaoaminika kwa ulinzi wa DDoS, seva za VPS VDS | ProHoster