Vala ist ein Open-Source-Programmier- und Softwareprojekt, das frei von Programmiersprachen und Software entwickelt wurde, um GNOME-Entwicklern neue Programmierfunktionen zu bieten. Es ist ein Compiler für das GObject-System, mit dem GNOME-Entwickler erstaunliche Apps erstellen können.
Funktionen auf einen Blick
Zu den wichtigsten Features gehören Schnittstellen, Eigenschaften, Signale, foreach, Lambda-Ausdrücke, Typinferenz für lokale Variablen, Generics, Nicht-Null-Typen, unterstütztes Speichermanagement, Ausnahmebehandlung sowie Typmodule für Plug-Ins.
Schreiben Sie mühelos komplexen objektorientierten Code
Mit dem Vala-Compiler können Sie als Entwickler mühelos komplexen objektorientierten Code schreiben und gleichzeitig die Speicheranforderungen gering halten sowie einen Standard-C ABI und eine Standard-API beibehalten.
Ermöglicht den Zugriff auf vorhandene C-Bibliotheken
Das Projekt wurde so konzipiert, dass es ohne Laufzeitbindungen auf vorhandene C-Bibliotheken, insbesondere auf GObject-basierte Bibliotheken zugreifen kann.
Es ist perfekt für GTK + und GNOME
Vala ist ein Befehlszeilencompiler und Programmiersprachen. Entwickler, die mit GTK + und GNOME arbeiten, können mit Vala den Code schreiben und kompilieren.
Es wird von C ++, C, C #, Python, D und Java beeinflusst
Die Programmiersprache Vala wurde von den bekannten und weit verbreiteten Programmiersprachen C, C ++, D, Python, C # und Java beeinflusst. Es ist eine plattformübergreifende Software, die problemlos auf andere Betriebssysteme portiert werden kann.
Es wird von einer Vielzahl von IDE-Programmen unterstützt
Ein weiteres interessantes Merkmal ist die Kompatibilität mit verschiedenen IDE (Integrated Development Environment) -Programmen, einschließlich Anjuta, Valencia, Geany, Emacs, MonoDevelop, NetBeans, Val (a) IDE, Sublime Text, Vim, Vala Toys für Gedit, Euclide, RedCar, TextMate und Valama.
Verfügbarkeit und unterstützte Architekturen
Vala wird nur als Quellarchiv verteilt. Dies bedeutet, dass der Benutzer den Code vor der Installation konfigurieren und kompilieren muss. Natürlich kann es auch einfach auf einer beliebigen GNU / Linux-Distribution von den Standard-Software-Repositories installiert werden. Sowohl die 32-Bit- als auch die 64-Bit-Architektur werden zu diesem Zeitpunkt unterstützt.
Was ist neu in dieser Version :
- Verschiedene Fehlerbehebungen:
- codegen: Rufen Sie ref_sink für Objekte auf, die an den generischen Typ [# 655] übergeben wurden
- codegen: Freigeben von Fehlern nach dem Zurückgeben von ihnen in GDBusMethodInvocation [# 657]
- girparser: Löse type-Argumente, um sie bei Bedarf zu boxen
- vala: Fügen Sie cests / methods zum Abrufen und Überprüfen der Bibliotheksversion hinzu [# 304]
- Bindungen:
- glib-2.0: Fügen Sie den Array.remove * () -Wrapper hinzu, um das Lecken von generischen Elementen zu vermeiden
- glib-2.0: Fügen Sie (u) long.parse / try_parse () [# 649] hinzu
- gstreamer: Update von 1.15+ git master
- gtk + -3.0: Update auf 3.23.2 + 6b6e53fd
- gtk + -4.0: Update auf 3.94.0 + 4e868584
Was ist neu in Version 0.40.7:
- Verschiedene Verbesserungen und Fehlerkorrekturen:
- Aktualisieren Sie Bugtracker-Links zu https://gitlab.gnome.org/GNOME/vala/issues
- codegen:
- Handle delegate_target Attribut von Feldern [# 520]
- Kostenlose generische Elemente von glib-Sammlungen [# 694765]
- Fix Warnung für source_funcs Parameter von g_source_new ()
- Behandle GLib.Source eigentlich als Kompaktklasse
- Benutzerdefinierte abstrakte Methoden von GLib.Quelle werden anders gehandhabt [# 641]
- Verwenden Sie gpointer für Delegatziele konsistent
- Vereinigen Sie einige delegentypische Prüfmuster
- Verwenden Sie default_init anstelle von base_init beim Registrieren von Schnittstellen [# 699550]
- girparser: Fügen Sie Unterstützung für bool delegate_target [# 520] hinzu
- girwriter:
- Ausgabe veraltet = "1"
- Nur-Konstrukt-Eigenschaften haben keine Setter-Methode
- Schreiben Sie keine benutzerdefinierten Attribute [# 608]
- valadoc: Repariere TreeBuilder.create_array () für gestapelte Arrays
- Bindungen:
- glib-2.0:
- Markieren Sie keine einfachen Out-Parameter als nullable [# 634]
- Machen Sie Source.attach () verwenden Sie standardmäßig den Standard-MainContext
- Make Bytes.slice () verwendet die speichereffiziente Bytes.from_bytes () [# 638]
- Fix Bytes.with_free_func ()
- gio-2.0:
- Markieren Sie ActionEntry.parameter_type / state fields als nullable [# 632]
- Delegiertenfelder von DBus * VTable haben keine impliziten Zielfelder
- Wenden Sie delemate_target = false auf ActionEntry-Callbacks an und machen Sie sie schwach [# 630]
- Fügen Sie allen io_priority-Parametern den Standardwert hinzu
- gstreamer: Cherry-Pick einige Korrekturen von 0.42, fügen Sie gst-editing-services-1.0 hinzu
- gtk + -3.0: Update auf 3.22.30 + 9ac7f906
- gtk + -4.0: Update auf 3.93.0 + 29fee2e8
- webkit2gtk-4.0: Update auf 2.21.4
- Aktualisieren von GIR-basierten Bindungen
Was ist neu in der Version:
- Verschiedene Fehlerbehebungen:
- Behebt Kettenregeneration mit echten Nicht-Null-Strukturparametern [# 791785]
- Geben Sie nach der Verwendung von [# 712694] Verweise auf CodeContext frei und halten Sie benutzerdefinierte Aufrufe von parse_file () für möglich [# 791936]
- Parser: Akzeptiere durch Komma getrennte Liste in case-Anweisungen von switches [# 614015]
- Bindungen:
- Entfernen Sie Bindungen, die einige Jahre stromaufwärts transportiert werden
- gedit 3 [# 776021], libgnome-keyring [# 776022],
- gtksourceview-3.0 [# 776023], libgdata [# 776024], librsvg-2.0 [# 776025]
- glib-2.0: Fügen Sie GLib.OPTION_REMAINING und GLib.OptionFlags.NONE hinzu
- gstreamer-1.0: Update von 1.13+ git master
- gtk + -2.0: Markieren Sie den MessageDialog-Konstruktorparameter message_format als nullable [# 791570]
- gtk + -4.0: Update auf 3.93.0 + 6aeae2c8
- webkit2gtk-4.0: Update auf 2.19.3
Was ist neu in Version 0.39.1:
- Highlights
- Melden Sie eine Warnung, wenn der Eigenschaftstyp nicht mit GLib.Object [# 693932] kompatibel ist
- Lassen Sie kompatible Delegaten an signal.connect () übergeben [) [# 787521]
- Unscoped-Enum-Werte möglichst zulassen
- Vermeiden Sie die Verwendung von temp-var für einige Callables, die ValueType zurückgeben und auf / ref-Parameter zugreifen [# 789071]
- Generierte Quellendeklarationen und Definitionen für bessere Lesbarkeit neu formatieren [# 688447]
- Verschiedene Fehlerbehebungen:
- Verwenden Sie array_length_cexpr, um feste Arrays für Rückgabewerte zu unterstützen [# 784691]
- Analysieren Sie Argumente für den vala interpeter-Modus [# 663070]
- Erzwingen Sie name-length & gt; = 3 für Strukturen mit GType [# 764041]
- Fehler bei fehlendem Typ-Parameter für umschließenden Typ gemeldet [# 587905]
- Add boolean "use_inplace" ccode-Attribut für Methoden [# 750840]
- Verbessern Sie die Handhabung von eigenen / eigenen Keyword-Vorkommen
- Methoden müssen einen kompatiblen Fehler auslösen, wenn der Zieldelegate einen auslöst
- Entdecken Sie den ungültigen Mitgliedszugriff auf das Instanzfeld [# 790903]
- Verbesserte Fehlerausgabe von nicht übereinstimmenden überschreibenden Methoden
- Valadoc
- Bestätigen Sie mögliche Eigenschaften in Strukturen [# 784705]
- Behebe einen tödlichen Tippfehler in GtkdocRenderer.visit_symbol_link () [# 790266]
- Bindungen:
- glib-2.0: Verwenden Sie type-id / marshaller-type für (u) int16 / (u) kurz von (u) int32 [# 693932]
- glib-2.0: Fügen Sie den optionalen Parameter 'unparsed' zu * .try_parse () [# 774124] hinzu
- gobject-2.0: Fügen Sie einige fehlende Symbole hinzu
- gstreamer-1.0: Bindet GST_TIME_ARGS, GST_STIME_ARGS Makros [# 750840]
- gstreamer-1.0: Bindet GST_DEBUG_BIN_TO_DOT_FILE / * _ WITH_TS [# 785215]
- gstreamer-1.0: Update von 1.13+ git master
- gtk + -3.0: Update auf 3.22.26 + 9ce824d3
- gtk + -4.0: Split Gsk.RenderNode in mehrere Klassen
- gtk + -4.0: Update auf 3.93.0 + 2d797dd8
- webkit2gtk-4.0: Update auf 2.19.2
Was ist neu in Version 0.38.3:
- Verschiedene Fehlerbehebungen:
- codegen: Priorisieren Sie "array_length = true" gegenüber "array_null_terminated = true" [# 788775]
- codegen: Vermeide mögliche Konflikte mit internen Eigenschaften / Signaldefinitionen [# 788964]
- Bindungen:
- gio-2.0: Expose g_task_get_source_object als Task.get_unowned_source_object
- gstreamer-1.0: Update von 1.13+ git master
- gtk + -4.0: Update auf 3.92.1
- libxml-2.0: Fügen Sie DTD-Methoden hinzu [# 789442]
Was ist neu in Version 0.38.2:
- Verschiedene Bindungsaktualisierungen:
- gstreamer-1.0, gtk + -3.0, gtk + -4.0: Aktualisierung von git master
- gnutls: Fix free_function ccode-Attribut des Zertifikats [# 788181]
Was ist neu in Version 0.38.1:
- Verschiedene Fehlerbehebungen:
- valadoc: Verwenden Sie nicht 'stderr' als Variablennamen [# 787305]
- codegen: Versuchen Sie, eine eindeutigere interne Definition für Eigenschaften zu verwenden [# 787436]
- vala: Liste der verwendeten Attribute aktualisieren
- Methode: Verwenden Sie eine Prototyp-Zeichenfolge für Fehlerberichte von Fehlertypen vom Typ Rückgabetyp
- Bindungen:
- glib-2.0: Fix MainContext.check (), OptionEntry [] Parameter sind nullterminiert, Bind g_convert_with_fallback () und g_convert_with_iconv ()
Was ist neu in Version 0.37.1:
- Höhepunkte:
- Warnen Sie nicht vor veralteten Symbolen, wenn installed_version älter ist
- Hinzufügen --gresourcesdir Option [# 783133]
- Verschiedene Fehlerbehebungen:
- gdbus: Keine geschachtelte HashTable bei der Deserialisierung ausliefern [# 782719]
- Fix schließlich blockiert mit asynchronen Renditen [# 741929]
- Behandelt in zusammenwachsendem Ausdruck nicht-null [# 611223]
- Machen Sie das task_complete Flag für & lt; 2.44 mehr Ähnlichkeit mit & gt; = 2.44 [# 783543]
- Nullable ValueType erfordert POINTER als Marshaller-Signatur [# 783897]
- NoAccessorMethod-Attribut ist nur für gobject-properties zulässig
- girparser: Repariere Parsing von Delegaten-Alias ohne Ziel
- -Compiler: Verwenden Sie API_VERSION anstelle des Entfernens von PACKAGE_SUFFIX
- girwriter: Schreibe length-Parameter von Arrays mit Rang & gt; 1 [# 758019]
- Bindungen:
- gio-2.0: Verwenden Sie den Standardwert 'length = null' für DataInputStream.read_line_utf8 * [# 783351]
- gobject-2.0: Fügen Sie GLib.ParamSpecPointer hinzu
- poppler-glib: Aktualisierung auf 0.54.0
- gstreamer-1.0: Verschiedene verbindliche Korrekturen
Was ist neu in Version 0.36.3:
- Verschiedene Fehlerbehebungen:
- scanner: Fix Berechnung der Spaltenwert für Token nach mehrzeiligen Kommentar [# 652899]
- codegen: Unref GLib.AsyncResult auf nicht erfasste Fehler in Koroutinen [# 641171]
- Initialisiere die Ergebnisvariable für Strukturkonstruktoren [# 782056]
Was ist neu in Version 0.36.1:
- Verschiedene Fehlerbehebungen:
- Betrachte immer eine Methode, die mit sich selbst kompatibel ist [# 773135]
- Führen Sie Argumente aus - überprüfen Sie dies anhand der tatsächlichen .end () - Methodensignatur [# 684208]
- Verbessern Sie geringfügig den lamdba-Ausdruck-Fehler bei nicht übereinstimmenden Zieltypen
- Fixiere den Delegateninitialisierer für Instanzfelder [# 683925]
- Verlieren Sie keine Zielreferenz, wenn Sie eigene Delegierte übertragen / zuweisen [# 780426]
- GIR Parser und Autor:
- girparser: Fügen Sie das Argument destroy für Metadaten hinzu [# 750838]
- vapigen: Fügen Sie die Option --nostdpkg wie in valac hinzu
- Bindungen:
- gstreamer-1.0: Fix Pad.set _ * _ function () Bindungen [# 750838]
- glib-2.0: Fügen Sie fehlende Versionsmakros und Konstanten hinzu, unichar.to_string gibt null nicht zurück
- gtk + -2.0, gtk + -3.0: Markiere den Schnittpunkt von Widget.intersect () als out
- gtk + -4.0: Update auf 3.90.0
Kommentare nicht gefunden