Vala programazio-lengoaia konpiladorearen eguneratzea 0.50.4

Vala 0.50.4 programazio-lengoaiaren konpilatzailearen bertsio berri bat kaleratu da. Epe luzerako euskarria (LTS) Vala 0.48.14 adarra (Ubuntu 18.04-rako paketatuta) eta Vala 0.51.3 adar esperimentala ere eguneratu dira.

Vala lengoaia C# edo Java-ren antzeko sintaxia eskaintzen duen objektuetara zuzendutako programazio-lengoaia da. Gobject (Glib Object System) objektu eredu gisa erabiltzen da. Memoriaren kudeaketa jabetzaren bidez egiten da (jabetzako/jabetasunik gabeko estekak) edo ARC erabiliz (suntsitzaileen ordezkapena eta objektuen erreferentzia-kontagailuen dekrementazioa konpilazio fasean).

Hizkuntzak introspekzioa, lambda funtzioak, interfazeak, delegatuak eta itxierak, seinaleak eta zirrikituak, salbuespenak, propietateak, mota ez-nulak, aldagai lokaletarako inferentzia motarako euskarria ditu. Kitak C-ko liburutegietarako lotura ugari ditu (vala-girs, vala-extra-vapis). Vala programak C irudikapenera itzultzen dira eta gero C konpilatzaile estandar batek konpilatzen ditu. Posible da programak script moduan exekutatu.

Aldaketen zerrenda:

  • Eraikitzaileen klaserako params gako-hitzerako laguntza gehigarria gehitu da Foo{ public Foo(params string[] args){ foreach (var arg in args) print(arg); }}
  • codegen:
    • SimpleType egitura-eraikitzaileentzako laguntza hobetua (adibidez, typedef uint32_t people_inside lotzeko erabiltzen da; C-tik) [SimpleType] [CCode (cname = "people_inside")] herri struct PeopleInside : uint32 {}
    • "NoWrapper" atributuaren kudeaketa hobetu da.
    • CCode.type_cname eta get_ccode_type_name() onartzen dira klaseetarako.
    • G_TYPE_INSTANCE_GET_CLASS/INTERFACE kanpoko sinboloetarako erabiltzen da beti.
    • G_boxed_free free-wrapper-ean erabili da GLib.Value pila batean esleitzeko.
    • GLib.Value-ren (edozein balio motatako edukiontzi unibertsala) deskargatze inplizituan memoria-ihes bat konpondu da.
    • Memoria-ihes bat konpondu da pila batean esleitutako egitura bat pila batera mugitzean.
    • Guraso-egituraren suntsitzailearen herentzia bermatzen da
    • Habiaratutako cast-adierazpenen symbol_reference-ren berreskurapen zuzena hobetu da.
    • CCodeCastExpression-en habiaraturiko agerraldi guztiak kendu ditu.
    • Seinale-kudeatzaile lehenetsiari gaizki deitzeari utzi dio.
    • Strcmp()-rako "string.h" konektatuta (POSIX profila, Valak kodea C liburutegi estandarra soilik erabiliz sortzen duen modua).
  • Vala:
    • Bikoiztutako paketeen iturburu-fitxategien detekzioa hobetu da.
    • GtkChild eremuak/propietateak jabegabetzat jo behar dira.
    • Debekatuta dago GtkChild eremua/jabetza berriro esleitzea.
    • Baldintza zorrotzagoa ezarri zaio lambdari esleipen bat eskuordetzean.
    • Debekatuta dago erabilera bakarreko SimpleType egiturak erabiltzea.
    • GLib.Value unboxing-ek jabetzarik gabeko balioa itzultzen dela ziurtatzen du.
    • Debekatuta dago GLib.Value egitura/mota sinple batera igortzea.
    • Motaren argumentuaren egiaztapena gehitu da oinarrizko mota/klase/interfazearen aurrebaldintzetan.
    • Debekatuta dago va_list parametro/aldagaiak harrapatzea.
    • Egitura baten erakuslea duten generikoak mota egokian sartu behar dira C UB saihesteko.
    • Enum barruan "in" motako inferentzia inplementatu da.
    • Testuinguruaren egiaztapena hobetu da idazteko eremurako esleipenak.
    • "stdlib.h" sartu da Enum.to_string() (POSIX).
    • Iturburu_erreferentzia zuzena ezarrita dago "hau" eta "emaitza" aldagai inplizituetarako
    • Errore-mezu bat eman du adierazpen unarioen barne-eragile baliogabe baterako.
  • Π‘odewriter: amaierako ";" gehitzeari utzi dio WithStatement gorputzaren ondoren.
  • Girparser:
    • Metodo edo seinale birtual batek babesten ez duen ordezkari anonimo baten prozesamendua eskaintzen da.
    • Metodoetarako eta parametroetarako "delegate_target" metadatuak aplikatu dira
    • Aplikatu "destroy_notify_cname" metadatuak eremuetan
    • Aplikatu "type_get_function" metadatuak klase eta interfazeetarako
    • Ezarri CCode.type_cname klaseetarako lehenetsia ez bada.
  • girwriter: instantzia-parametroko elementuak idatzita daudela ziurtatzen du.
  • girwriter: seinale-kudeatzailearen irteera lehenetsia ezarri da.
  • libvaladoc/html: egitura-eremuen ordenazioa kendu da jatorrizko ordena uzteko html dokumentazioa sortzerakoan valadoc.org
  • libvaladoc: Ziurtatu Api.Class.is_compact-en balioak behar bezala berreskuratzen direla
  • libvaladoc: "agedge" graphviz liburutegirako bilgarria gehitu da
  • Loturak:
    • Loturak sortzean konponketa txikiak: 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, gtk4. metxa, libxml-2.0
    • gdk-pixbuf-2.0: konpondu Pixbuf.save_to_streamv_async ()
    • gio-2.0: PollableOutputStream.write*_nonblocking() lotura-konponketa
    • gio-2.0,gtk+-3.0,gtk4: va_list parametroen c motako atributu esplizituak baztertzen dira
    • gio-2.0: AppInfo/File.*() metodo batzuetarako falta den deitzaile hautatu da
    • glib-2.0: GLib.[S]List.is_empty() erosotasun metodoak gehitu dira nuluak ez direnentzat
    • glib-2.0: assert_cmp* funtzioa lotzea [#395]
    • glib-2.0: OptionEntry.flags eremu mota hobetua
    • glib-2.0: PtrArray GenericArray-ren azpiklase bat da orain
    • gstreamer-1.0: MiniObject-en CCode.type_id G_TYPE_BOXED [#1133] ezarrita dago
    • gtk+-2.0,javascriptcoregtk-4.0: CCode.type_cname atributuaren erabilera zuzendua
    • gtk+-3.0,gtk4: delegatu itzultzeko balio eta parametro batzuk konpondu dira
    • gtk4: 4.0.2 bertsiora eguneratua.

Iturria: opennet.ru

Gehitu iruzkin berria