Vala Programméiersprooch Compiler Update 0.50.4

Eng nei Versioun vum Compiler fir d'Vala Programmiersprache 0.50.4 gouf verëffentlecht. Déi laangfristeg Ënnerstëtzung (LTS) Branche Vala 0.48.14 (verpackt fir Ubuntu 18.04) an déi experimentell Branche Vala 0.51.3 sinn och aktualiséiert ginn.

D'Vala Sprooch ass eng objektorientéiert Programméierungssprooch déi eng Syntax ähnlech wéi C # oder Java ubitt. Gobject (Glib Object System) gëtt als Objektmodell benotzt. Erënnerung Gestioun gëtt duerch Eegentum duerchgefouert (Besëtz / unowned Linken) oder benotzt ARC (Auswiesselung vun destructors an decrements vun Objet Referenz Konter op der Kompiléierung Etapp).

D'Sprooch huet Ënnerstëtzung fir Introspektioun, Lambda Funktiounen, Schnëttplazen, Delegéierten a Schließungen, Signaler a Slots, Ausnahmen, Eegeschaften, Net-null Typen, Typinferenz fir lokal Variablen. De Kit kënnt mat enger grousser Zuel vu Bindungen zu Bibliothéiken am C (vala-girs, vala-extra-vapis). Vala Programmer ginn an C Representatioun iwwersat an dann vun engem Standard C Compiler kompiléiert. Et ass méiglech Programmer am Skriptmodus ze lafen.

Lëscht vun den Ännerungen:

  • Zousätzlech Ënnerstëtzung fir d'Params Schlësselwuert bäigefüügt fir Konstruktoren Klass Foo {ëffentlech Foo (params string [] args) {foreach (var arg an args) print (arg); } }
  • codegen:
    • Verbesserte Ënnerstëtzung fir SimpleType Strukturkonstruktoren (zum Beispill benotzt fir typedef uint32_t people_inside ze binden; vun C) [SimpleType] [CCode (cname = "people_inside")] ëffentlech Struktur PeopleInside: uint32 {}
    • Verbesserte Handhabung vum "NoWrapper" Attribut.
    • CCode.type_cname an get_ccode_type_name () si fir Klassen erlaabt.
    • G_TYPE_INSTANCE_GET_CLASS/INTERFACE gëtt ëmmer fir extern Symboler benotzt.
    • Benotzt g_boxed_free am gratis-Wrapper fir GLib.Wäert op der Koup ze verdeelen.
    • Fixéiert e Gedächtnisleck wärend der implizit Unboxing vum GLib.Value (en Universalbehälter vun all Wäerttyp).
    • E Gedächtnisleck fixéiert wann Dir eng Heap-allokéiert Struktur op e Stack bewegt.
    • D'Ierfschaft vum Zerstéierer vun der Elterenstruktur ass gesuergt
    • Korrekt Erhuelung vun symbol_reference vun nested Goss Ausdréck gouf verbessert.
    • Ewechzehuelen all nested Optriede vun CCodeCastExpression.
    • Gestoppt falsch ruffen de Standard Signal Handler.
    • Verbonne "string.h" fir strcmp () (POSIX Profil, Modus an deem Vala Code generéiert nëmmen de Standard C Bibliothéik benotzt).
  • Vala:
    • Verbesserte Detektioun vun duplizéierte Package Quelldateien.
    • GtkChild Felder/Eegeschafte mussen als onbesëtz deklaréiert ginn.
    • D'GtkChild Feld / Immobilie nei zouzeschreiwen ass verbueden.
    • Eng méi streng Konditioun gouf fir d'Lambda applizéiert wann Dir eng Aufgab delegéiert.
    • Et ass verbueden Single-Use SimpleType Strukturen ze benotzen.
    • GLib.Value Unboxing suergt dofir datt den onbesëtzte Wäert zréckgeet.
    • Casting GLib.Value zu engem nullable struct / einfachen Typ ass verbueden.
    • Dobäi Typ Argument Iwwerpréiwung an Basis Zorte / Klass / Interface Viraussetzunge.
    • Va_list Parameteren / Variablen erfaassen ass verbueden.
    • Generik mat engem Zeigefanger op eng Struktur mussen op déi richteg Aart gegoss ginn wann se zougänglech sinn fir C UB ze vermeiden.
    • Ëmgesat Typ Inferenz fir "an" bannen enum.
    • Verbesserte Kontextprüfung fir Uerderen op dat schreiwenbare Feld.
    • Abegraff "stdlib.h" fir Enum.to_string () (POSIX).
    • Déi richteg Quell_Referenz ass fir déi implizit Variabelen "dëst" a "Resultat" gesat
    • Gitt eng Fehlermeldung fir en ongëlteg internen Operand vun unären Ausdréck.
  • Сodewriter: Gestoppt derbäizeféieren ";" nom Kierper WithStatement.
  • Girparser:
    • Veraarbechtung vun engem anonyme Delegéierten net ënnerstëtzt vun enger virtueller Method oder Signal gëtt zur Verfügung gestallt.
    • Applizéiert "delegate_target" Metadaten fir Methoden a Parameteren
    • Gëlle "destroy_notify_cname" Metadaten op Felder
    • Benotzt "type_get_function" Metadaten fir Klassen an Interfaces
    • Set CCode.type_cname fir Klassen wann net de Standard.
  • girwriter: Garantéiert Instanz Parameter Elementer geschriwen.
  • girwriter: Ëmgesat Standard Signal Handler Ausgang.
  • libvaladoc/html: Geläscht Sortéierung vu Strukturfelder fir hir ursprénglech Uerdnung ze verloossen beim Generéiere vun HTML Dokumentatioun valadoc.org
  • libvaladoc: Vergewëssert Iech datt Wäerter fir Api.Class.is_compact richteg erëmfonnt ginn
  • libvaladoc: Dobäi Wrapper fir "Alter" graphviz Bibliothéik
  • Bindungen:
    • Kleng Fixer beim Generéiere vu Bindungen: Kairo, gobject-2.0, pango, goocanvas-2.0, Fluchen, 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: Explizit c-Typ Attributer vu va_list Parameteren ginn verworf
    • gio-2.0: Ausgewielt vermësst Invoker fir e puer AppInfo/File.*() Methoden
    • glib-2.0: Added GLib.[S]List.is_empty() Komfortmethoden fir Net-null
    • glib-2.0: Bindung vun der assert_cmp* Funktioun [#395]
    • glib-2.0: Verbessert OptionEntry.flags Feld Typ
    • glib-2.0: PtrArray ass elo eng Ënnerklass vum GenericArray
    • gstreamer-1.0: CCode.type_id vum MiniObject ass op G_TYPE_BOXED gesat [#1133]
    • gtk+-2.0,javascriptcoregtk-4.0: Korrigéiert Notzung vum CCode.type_cname Attribut
    • gtk +-3.0, gtk4: E puer Delegéierte Retour Wäerter a Parameter fixéiert
    • gtk4: Aktualiséiert op Versioun 4.0.2.

Source: opennet.ru

Setzt e Commentaire