Hoʻohou hou ʻia ka mea hoʻopili ʻōlelo hoʻonohonoho Vala 0.50.4

Ua hoʻokuʻu ʻia kahi mana hou o ka mea hōʻuluʻulu no ka ʻōlelo papahana Vala 0.50.4. ʻO ka lālā kākoʻo lōʻihi (LTS) ʻo Vala 0.48.14 (i hoʻopaʻa ʻia no Ubuntu 18.04) a me ka lālā hoʻokolohua Vala 0.51.3 ua hōʻano hou ʻia.

ʻO ka ʻōlelo Vala he ʻōlelo hoʻolālā e pili ana i nā mea e hāʻawi ana i kahi syntax e like me C# a i ʻole Java. Hoʻohana ʻia ʻo Gobject (Glib Object System) ma ke ʻano he kumu hoʻohālike. Hoʻohana ʻia ka hoʻokele hoʻomanaʻo e ka ʻona (nā loulou nona / ʻole ʻia) a i ʻole ka hoʻohana ʻana i ka ARC (ka hoʻololi ʻana i nā mea luku a me ka hoʻohaʻahaʻa ʻana i nā helu kuhikuhi mea i ka pae hōʻuluʻulu).

Loaʻa i ka ʻōlelo ke kākoʻo no ka nānā ʻana, nā hana lambda, nā pilina, nā ʻelele a me nā pani ʻana, nā hōʻailona a me nā slots, nā ʻokoʻa, nā waiwai, nā ʻano ʻole-null, type inference no nā ʻano hoʻololi kūloko. Hele mai ka pahu me ka nui o nā mea paʻa i nā hale waihona puke ma C (vala-girs, vala-extra-vapis). Ua unuhi ʻia nā polokalamu Vala i ka hōʻike C a laila hōʻuluʻulu ʻia e kahi mea hōʻuluʻulu maʻamau C. Hiki ke holo i nā papahana ma ke ʻano palapala.

Papa inoa o nā hoʻololi:

  • Hoʻohui ʻia ke kākoʻo hou no ka huaʻōlelo params no ka papa kūkulu hale Foo{ public Foo(params string[] args){ foreach (var arg in args) print(arg); } }
  • codegen:
    • Kākoʻo i hoʻomaikaʻi ʻia no nā mea kūkulu hale SimpleType (no ka laʻana i hoʻohana ʻia no ka hoʻopaʻa ʻana i ka typedef uint32_t people_inside; mai C) [SimpleType] [CCode (cname = "people_inside")] lehulehu struct PeopleInside : uint32 {}
    • Hoʻomaikaʻi i ka lawelawe ʻana i ka ʻano "NoWrapper".
    • ʻAe ʻia ka CCode.type_cname a me get_ccode_type_name() no nā papa.
    • Hoʻohana mau ʻia ʻo G_TYPE_INSTANCE_GET_CLASS/INTERFACE no nā hōʻailona waho.
    • Hoʻohana ʻia ka g_boxed_free i ka wrapper manuahi e hoʻokaʻawale iā GLib.Value ma ka puʻu.
    • Hoʻopaʻa i kahi leka hoʻomanaʻo i ka wā o ka wehe ʻole ʻana i ka pahu o GLib.Value (kahi pahu ākea o kēlā me kēia ʻano waiwai).
    • Hoʻopaʻa i kahi leak hoʻomanaʻo i ka wā e neʻe ai i kahi hale i hoʻokaʻawale ʻia i kahi pūʻulu.
    • Hoʻoili ʻia ka hoʻoilina o ka mea luku o ka hale makua
    • Ua hoʻomaikaʻi ʻia ka hoʻihoʻi pololei ʻana i ka symbol_reference o nā hōʻike hoʻolele pūnana.
    • Wehe ʻia nā hanana pūnana a pau o CCodeCastExpression.
    • Ua hooki hewa ke kelepona ʻana i ka mea hoʻohana hōʻailona paʻamau.
    • Hoʻohui ʻia "string.h" no strcmp() (profile POSIX, ke ʻano e hana ai ʻo Vala i nā code me ka hoʻohana ʻana i ka waihona C maʻamau).
  • Vala:
    • Ua hoʻomaikaʻi ʻia ka ʻike ʻana i nā faila kumu pūʻolo pālua.
    • Pono e haʻi ʻia ʻaʻohe kuleana o GtkChild kahua/waiwai.
    • ʻAʻole ʻae ʻia ke kau hou ʻana i ke kahua GtkChild / waiwai.
    • Ua hoʻohana ʻia kahi kūlana koʻikoʻi i ka lambda i ka wā e hāʻawi ana i kahi hana.
    • ʻAʻole ʻae ʻia ka hoʻohana ʻana i nā hoʻolālā SimpleType hoʻohana hoʻokahi.
    • ʻO ka unboxing ʻo GLib.Value e hōʻoia i ka hoʻihoʻi ʻia o ka waiwai ʻole.
    • Kāpae ʻia ka hoʻolei ʻana iā GLib.Value i kahi ʻano hana nullable/ʻano maʻalahi.
    • Hoʻohui ʻia ka hoʻopaʻapaʻa ʻano hoʻopaʻapaʻa i nā ʻano kumu kumu/papa/apono mua.
    • ʻAʻole ʻae ʻia ka hopu ʻana i nā ʻāpana va_list/variable.
    • Pono e hoʻolei ʻia nā mea maʻamau i loaʻa kahi kuhikuhi i kahi hale i ke ʻano kūpono ke komo ʻia e pale iā C UB.
    • Hoʻokomo ʻia ka ʻano inference no "in" i loko o ka enum.
    • Hoʻomaikaʻi ʻia ka nānā ʻana i ka pōʻaiapili no nā haʻawina i ke kahua hiki ke kākau.
    • Hoʻokomo ʻia ka "stdlib.h" no Enum.to_string() (POSIX).
    • Hoʻonohonoho ʻia ka source_reference kūpono no nā ʻano like ʻole "kēia" a me "hopena"
    • Hāʻawi ʻia kahi memo hewa no kahi operand kūloko kūpono ʻole o nā ʻōlelo unary.
  • Сodewriter: Ua ho'ōki i ka hoʻohui ʻana i ka ʻaoʻao ";" ma hope o ke kino WithStatement.
  • Mea hoʻokani pila:
    • Hāʻawi ʻia ke kaʻina hana o kahi ʻelele inoa ʻole i kākoʻo ʻia e kahi ala virtual a hōʻailona paha.
    • Hoʻohana ʻia ka metadata "delegate_target" no nā ʻano a me nā ʻāpana
    • E hoʻopili i ka metadata "destroy_notify_cname" i nā kahua
    • E noi i ka metadata "type_get_function" no nā papa a me nā pilina
    • E hoʻonoho iā CCode.type_cname no nā papa inā ʻaʻole ka paʻamau.
  • girwriter: E hōʻoia i ka kākau ʻia ʻana o nā mea hoʻohālikelike.
  • girwriter: Hoʻokomo ʻia ka mea lawe hōʻailona paʻamau.
  • libvaladoc/html: Wehe ʻia ka hoʻokaʻawale ʻana o nā kahua kūkulu e waiho i kā lākou kauoha kumu i ka wā e hana ana i nā palapala html valadoc.org
  • libvaladoc: E hōʻoia e kiʻi pololei ʻia nā waiwai no Api.Class.is_compact
  • libvaladoc: Hoʻohui ʻia ka mea hoʻopili no ka waihona "agedge" graphviz
  • Nā hoʻopaʻa ʻana:
    • Hoʻoponopono liʻiliʻi i ka wā e hana ai i nā mea paʻa: cairo, gobject-2.0, pango, goocanvas-2.0, hōʻino, alsa, bzlib, sqlite3, libgvc, posix, gstreamer-1.0, gdk-3.0, gdk-x11-3.0, gtk+-3.0, gtk4 fuse, libxml-2.0
    • gdk-pixbuf-2.0: Hoʻoponopono iā Pixbuf.save_to_streamv_async()
    • gio-2.0: PollableOutputStream.write*_nonblocking() hoʻoponopono paʻa
    • gio-2.0,gtk+-3.0,gtk4: Hoʻolei ʻia nā ʻano ʻano c-like o nā ʻāpana va_list
    • gio-2.0: Ua koho ʻia ka mea hoʻopiʻi nalo no kekahi mau ala AppInfo/File.*().
    • glib-2.0: Hoʻohui ʻia ʻo GLib.[S]List.is_empty() ʻano maʻalahi no ka non-null
    • glib-2.0: Hoʻopaʻa i ka hana assert_cmp* [#395]
    • glib-2.0: Improved OptionEntry.flags field type
    • glib-2.0: ʻO PtrArray kahi subclass o GenericArray
    • gstreamer-1.0: Ua hoʻonohonoho ʻia ʻo CCode.type_id o ka MiniObject iā G_TYPE_BOXED [#1133]
    • gtk+-2.0,javascriptcoregtk-4.0: Hoʻohana pololei ʻia ka ʻano CCode.type_cname
    • gtk + -3.0, gtk4: Hoʻoponopono i kekahi mau ʻelele hoʻihoʻi waiwai a me nā ʻāpana
    • gtk4: Hoʻouka hou ʻia i ka mana 4.0.2.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka