Vala programmeartaal kompilator update 0.50.4

In nije ferzje fan 'e kompilator foar de Vala-programmearringstaal 0.50.4 is frijlitten. De lange-termyn stipe (LTS) branch Vala 0.48.14 (ferpakt foar Ubuntu 18.04) en de eksperimintele branch Vala 0.51.3 binne ek bywurke.

De Vala-taal is in objekt-rjochte programmeartaal dy't in syntaksis leveret dy't fergelykber is mei C # of Java. Gobject (Glib Object System) wurdt brûkt as objektmodel. Unthâldbehear wurdt útfierd troch eigendom (eigendom / unowned keppelings) of mei help fan ARC (ferfanging fan destructors en decrements fan objekten referinsje tellers by de kompilaasje stadium).

De taal hat stipe foar yntrospection, lambda funksjes, ynterfaces, ôffurdigen en sluten, sinjalen en slots, útsûnderings, eigenskippen, non-null types, type konklúzje foar lokale fariabelen. De kit komt mei in grut oantal binings oan biblioteken yn C (vala-girs, vala-ekstra-vapis). Vala-programma's wurde oerset yn C-fertsjintwurdiging en dan kompilearre troch in standert C-kompilator. It is mooglik om programma's yn skriptmodus út te fieren.

List fan wizigingen:

  • Added ekstra stipe foar de params kaaiwurd foar constructors klasse Foo {publike Foo (params string [] args) {foreach (var arg yn args) print (arg); } }
  • codegen:
    • Ferbettere stipe foar SimpleType struct constructors (bygelyks brûkt om typedef uint32_t people_inside te binen; fan C) [SimpleType] [CCode (cname = "people_inside")] iepenbiere struct PeopleInside: uint32 {}
    • Ferbettere ôfhanneling fan it "NoWrapper" attribút.
    • CCode.type_cname en get_ccode_type_name () binne tastien foar klassen.
    • G_TYPE_INSTANCE_GET_CLASS/INTERFACE wurdt altyd brûkt foar eksterne symboalen.
    • Brûkte g_boxed_free yn free-wrapper om GLib.Value op 'e heap te allocearjen.
    • In ûnthâldlek reparearre by ymplisite unboxing fan GLib.Value (in universele kontener fan elk weardetype).
    • In ûnthâldlek reparearre by it ferpleatsen fan in heap-allokearre struktuer nei in stapel.
    • Erfskip fan 'e destruktor fan' e âlderstruktuer wurdt garandearre
    • Korrekte opheljen fan symbol_reference fan nestede cast-útdrukkingen is ferbettere.
    • Fuortsmite alle geneste foarfallen fan CCodeCastExpression.
    • Stoppe ferkeard ropt de standert sinjaal handler.
    • Ferbûn "string.h" foar strcmp () (POSIX profyl, modus wêryn Vala generearret koade mei help fan allinnich de standert C bibleteek).
  • Vala:
    • Ferbettere deteksje fan dûbele pakketboarnebestannen.
    • GtkChild fjilden / eigenskippen moatte wurde ferklearre uneigendom.
    • It werjaan fan it fjild/eigendom GtkChild is ferbean.
    • By it delegearjen fan in opdracht is oan de lambda in strangere betingst steld.
    • It is ferbean om ienmalige SimpleType-struktueren te brûken.
    • GLib.Value unboxing soarget derfoar dat de unowned wearde wurdt weromjûn.
    • Casting GLib.Value nei in nullable struct / simpel type is ferbean.
    • Tafoege type argumint kontrôle yn basis typen / klasse / ynterface betingsten.
    • It fêstlizzen fan va_list parameters / fariabelen is ferbean.
    • Generika dy't in oanwizer nei in struktuer befetsje moatte wurde cast nei it juste type as se tagong krije om C UB te foarkommen.
    • Implementearre type konklúzje foar "yn" binnen enum.
    • Ferbettere kontekstkontrôle foar opdrachten oan it skriuwbere fjild.
    • Opnommen "stdlib.h" foar Enum.to_string () (POSIX).
    • De juste boarne_referinsje is ynsteld foar de ymplisite fariabelen "dit" en "resultaat"
    • In flaterberjocht levere foar in ûnjildige ynterne operand fan unêre útdrukkingen.
  • Сodewriter: Stoppe mei it tafoegjen fan it folgjende ";" nei it lichem WithStatement.
  • Girparser:
    • Ferwurking fan in anonime ôffurdige net stipe troch in firtuele metoade of sinjaal wurdt levere.
    • Tapassing "delegate_target" metadata foar metoaden en parameters
    • Tapasse "destroy_notify_cname" metadata op fjilden
    • Tapasse "type_get_function" metadata foar klassen en ynterfaces
    • Set CCode.type_cname foar klassen as net de standert.
  • girwriter: Soarget foar eksimplaar parameter eleminten wurde skreaun.
  • girwriter: Implementearre standert sinjaalhandler útfier.
  • libvaladoc/html: sortearring fan struktuerfjilden fuortsmiten om harren oarspronklike folchoarder te ferlitten by it generearjen fan html-dokumintaasje valadoc.org
  • libvaladoc: Soargje derfoar dat wearden foar Api.Class.is_compact korrekt wurde ophelle
  • libvaladoc: Wrapper tafoege foar "agedge" graphviz bibleteek
  • Bindingen:
    • Lytse reparaasjes by it generearjen fan bindingen: 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+-4, gtk fuse, libxml-2.0
    • gdk-pixbuf-2.0: Fix Pixbuf.save_to_streamv_async()
    • gio-2.0: PollableOutputStream.write*_nonblocking() binding fix
    • gio-2.0,gtk+-3.0,gtk4: Eksplisite c-type attributen fan parameters va_list wurde wegere
    • gio-2.0: Selektearre ûntbrekkende invoker foar guon AppInfo/File.*() metoaden
    • glib-2.0: Glib.[S]List.is_empty()-gemaksmetoaden tafoege foar net-nul
    • glib-2.0: Bining fan de assert_cmp*-funksje [#395]
    • glib-2.0: Ferbettere OptionEntry.flags fjildtype
    • glib-2.0: PtrArray is no in subklasse fan GenericArray
    • gstreamer-1.0: CCode.type_id fan it MiniObject is ynsteld op G_TYPE_BOXED [#1133]
    • gtk+-2.0, javascriptcoregtk-4.0: Korrizjearre gebrûk fan it attribút CCode.type_cname
    • gtk +-3.0, gtk4: Fixearre wat wearden en parameters foar weromkommende delegaten
    • gtk4: Bywurke nei ferzje 4.0.2.

Boarne: opennet.ru

Add a comment