Vala programming language compiler update 0.50.4

Usa ka bag-ong bersyon sa compiler alang sa Vala programming language 0.50.4 ang gipagawas. Ang long-term support (LTS) branch Vala 0.48.14 (packaged for Ubuntu 18.04) ug ang experimental branch Vala 0.51.3 gi-update usab.

Ang Vala nga pinulongan kay usa ka object-oriented programming language nga naghatag ug syntax nga susama sa C# o Java. Ang Gobject (Glib Object System) gigamit isip modelo sa butang. Ang pagdumala sa memorya gihimo pinaagi sa pagpanag-iya (gipanag-iya / wala'y gipanag-iya nga mga link) o paggamit sa ARC (pagpuli sa mga destructors ug pagkunhod sa mga counter reference sa butang sa yugto sa pagtipon).

Ang pinulongan adunay suporta alang sa introspection, lambda functions, interface, delegates ug closures, signal ug slots, exceptions, properties, non-null type, type inference para sa local variables. Ang kit adunay daghang gidaghanon sa mga binding sa mga librarya sa C (vala-girs, vala-extra-vapis). Ang mga programa sa Vala gihubad ngadto sa representasyon sa C ug dayon gihugpong sa usa ka standard C compiler. Posible nga modagan ang mga programa sa script mode.

Listahan sa mga kausaban:

  • Gidugang ang dugang nga suporta alang sa params keyword para sa mga konstruktor nga klase nga Foo{publikong Foo(params string[] args){foreach (var arg sa args) print(arg); }}
  • codegen:
    • Gipauswag nga suporta alang sa SimpleType struct constructors (pananglitan gigamit sa paggapos sa typedef uint32_t people_inside; gikan sa C) [SimpleType] [CCode (cname = "people_inside")] public struct PeopleInside : uint32 {}
    • Gipauswag nga pagdumala sa hiyas nga "NoWrapper".
    • Ang CCode.type_cname ug get_ccode_type_name() gitugotan para sa mga klase.
    • Ang G_TYPE_INSTANCE_GET_CLASS/INTERFACE kanunay nga gigamit alang sa gawas nga mga simbolo.
    • Gigamit ang g_boxed_free sa free-wrapper aron igahin ang GLib.Value sa heap.
    • Giayo ang usa ka pagtulo sa panumduman sa panahon sa implicit nga pag-unbox sa GLib.Value (usa ka unibersal nga sulud sa bisan unsang klase nga kantidad).
    • Giayo ang usa ka pagtulo sa memorya kung gibalhin ang usa ka istruktura nga gigahin nga pundok sa usa ka stack.
    • Gipaneguro ang kabilin sa tigguba sa istruktura sa ginikanan
    • Ang husto nga pagkuha sa simbolo_reference sa mga nested cast nga mga ekspresyon gipauswag.
    • Gitangtang ang tanang nested nga panghitabo sa CCodeCastExpression.
    • Mihunong sa sayop nga pagtawag sa default signal handler.
    • Konektado nga "string.h" para sa strcmp() (POSIX profile, mode diin ang Vala nagmugna og code gamit lamang ang standard C library).
  • Vala:
    • Gipauswag nga pag-ila sa mga duplicate nga package source files.
    • Ang mga uma/properties sa GtkChild kinahanglang ideklarar nga dili gipanag-iya.
    • Gidili ang pag-reassign sa field/property sa GtkChild.
    • Ang usa ka mas estrikto nga kondisyon gipadapat sa lambda sa dihang nagdelegar og assignment.
    • Gidili ang paggamit sa usa ka gamit nga SimpleType nga istruktura.
    • Ang GLib.Value unboxing nagsiguro nga ang wala gipanag-iya nga bili ibalik.
    • Gidili ang pag-cast sa GLib.Value sa usa ka nullable struct/simple nga tipo.
    • Gidugang nga tipo nga pagsusi sa argumento sa mga sukaranan nga tipo/klase/interface preconditions.
    • Gidili ang pagkuha sa mga parameter/variable sa va_list.
    • Ang mga generic nga adunay usa ka pointer sa usa ka istruktura kinahanglan nga ihulog sa husto nga tipo kung ma-access aron malikayan ang C UB.
    • Gipatuman nga tipo nga inference para sa "in" sulod sa enum.
    • Gipauswag nga pagsusi sa konteksto alang sa mga buluhaton sa natad nga mahimo’g isulat.
    • Apil ang "stdlib.h" para sa Enum.to_string() (POSIX).
    • Ang husto nga source_reference kay gitakda para sa implicit variables "kini" ug "resulta"
    • Naghatag usa ka mensahe sa sayup alang sa usa ka dili balido nga internal operand sa unary nga mga ekspresyon.
  • Π‘odewriter: Mihunong sa pagdugang sa trailing ";" human sa lawas WithStatement.
  • Girparser:
    • Ang pagproseso sa usa ka wala mailhi nga delegado nga wala gisuportahan sa usa ka virtual nga pamaagi o signal gihatag.
    • Gipadapat ang "delegate_target" metadata para sa mga pamaagi ug mga parametro
    • Ibutang ang "destroy_notify_cname" metadata sa mga uma
    • Ibutang ang "type_get_function" metadata para sa mga klase ug interface
    • Ibutang ang CCode.type_cname para sa mga klase kung dili ang default.
  • girwriter: Gisiguro nga ang mga elemento sa parameter sa pananglitan gisulat.
  • girwriter: Gipatuman ang default signal handler output.
  • libvaladoc/html: Gitangtang ang paghan-ay sa mga natad sa istruktura aron mabiyaan ang ilang orihinal nga pagkasunud kung maghimo html dokumentasyon valadoc.org
  • libvaladoc: Siguruha nga ang mga kantidad alang sa Api.Class.is_compact makuha sa husto
  • libvaladoc: Gidugang nga wrapper para sa "agedge" graphviz library
  • Mga pagbugkos:
    • Ang mga menor de edad nga pag-ayo kung maghimo mga binding: cairo, gobject-2.0, pango, goocanvas-2.0, mga tunglo, 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: Ayuhon ang Pixbuf.save_to_streamv_async()
    • gio-2.0: PollableOutputStream.write*_nonblocking() binding fix
    • gio-2.0,gtk+-3.0,gtk4: Ang klaro nga c-type nga mga hiyas sa mga parameter sa va_list gilabay
    • gio-2.0: Pinili nga nawala nga tigtawag alang sa pipila ka AppInfo/File.*() mga pamaagi
    • glib-2.0: Gidugang ang GLib.[S]List.is_empty() mga paagi sa kasayon ​​​​alang sa dili null
    • glib-2.0: Pagbugkos sa assert_cmp* function [#395]
    • glib-2.0: Gipalambo nga OptionEntry.flags field type
    • glib-2.0: Ang PtrArray usa na ka subclass sa GenericArray
    • gstreamer-1.0: CCode.type_id sa MiniObject gitakda sa G_TYPE_BOXED [#1133]
    • gtk+-2.0,javascriptcoregtk-4.0: Gitul-id nga paggamit sa CCode.type_cname attribute
    • gtk + -3.0, gtk4: Giayo ang pipila ka mga delegado nga mga kantidad sa pagbalik ug mga parameter
    • gtk4: Gi-update sa bersyon 4.0.2.

Source: opennet.ru

Idugang sa usa ka comment