Vala este un program open source, limbaj de programare gratuit și modern și proiect software conceput de la offset pentru a aduce noi caracteristici de programare dezvoltatorilor GNOME. Este un compilator pentru sistemul tip GObject, permițând dezvoltatorilor GNOME să creeze aplicații uimitoare.
Caracteristici dintr-o privire
Caracteristicile cheie includ interfețe, proprietăți, semnale, foreach, expresii lambda, inferențe de tip pentru variabilele locale, generice, tipuri non-null, gestionarea memoriei asistate, manipularea excepțiilor, precum și module de tip a.k.a.
Faceți cu ușurință un cod complex orientat spre obiect
Cu compilatorul Vala, în calitate de dezvoltator, veți putea scrie fără efort un cod complex orientat pe obiecte, menținând în același timp cerințele de memorie scăzute și menținând standardul C ABI și API.
Permite accesul la bibliotecile C existente
Proiectul a fost conceput astfel încât să permită accesul la bibliotecile C existente, în special bibliotecile GObject, fără a fi nevoie de legături de rulare.
Este perfect pentru GTK + și GNOME
Vala este un compilator de linii de comandă și limbi de programare. Dezvoltatorii care lucrează cu GTK + și GNOME vor putea să utilizeze Vala pentru a scrie codul și pentru al compila.
Acesta este influențat de C ++, C, C #, Python, D și Java
Limba de programare Vala a fost influențată de limbile de programare C, C ++, D, Python, C # și Java bine cunoscute și utilizate pe scară largă. Acesta este un software de tip cross-platform care poate fi ușor ported pe alte sisteme de operare.
Este susținută de o gamă largă de programe IDE
O altă caracteristică interesantă este compatibilitatea cu diferite programe IDE (Anjuta, Valencia, Geany, Emacs, MonoDevelop, NetBeans, Val (a) IDE, Sublime Text, Vim, RedCar, TextMate și Valama.
Disponibilitatea și arhitecturile acceptate
Vala este distribuită doar ca arhivă sursă. Aceasta înseamnă că utilizatorul trebuie să configureze și să compileze codul înainte de instalare. Desigur, poate fi ușor instalat pe orice distribuție GNU / Linux din depozitele de software implicite. Atât arhitecturile pe 32 de biți cât și cele pe 64 de biți sunt acceptate în acest moment.
Ce este nou în această ediție:
- Diferite corecții de erori:
- codegen: Apelați ref_sink pe obiecte transmise tipului generic [# 655]
- codegen: erori libere după returnarea acestora pe GDBusMethodInvocation [# 657]
- girparser: Rezolvați, de fapt, argumentele de tip pentru a le putea include dacă este necesar
- vala: adăugați metode consts / metode pentru a prelua și a verifica versiunea bibliotecii [# 304]
- Bindings:
- glib-2.0: Adăugați elementul Array.remove * () pentru a evita scurgerea elementelor generice
- glib-2.0: Adăugați (u) long.parse / try_parse () [# 649]
- gstreamer: Actualizați de la 1.15+ master git
- gtk + -3.0: Actualizare la 3.23.2 + 6b6e53fd
- gtk + -4.0: Actualizare la 3.94.0 + 4e868584
Ce este nou în versiunea 0.40.7:
- Diferite îmbunătățiri și corecții de erori:
- Actualizați linkurile bugtracker la https://gitlab.gnome.org/GNOME/vala/issues
- Codegen:
- Gestionați atributul delegate_target al câmpurilor [# 520]
- Elemente generice gratuite de colecții de glib [# 694765]
- Fixați avertismentul pentru parametrul source_funcs din g_source_new ()
- Tratați GLib.Source ca clasă compactă
- Metodele personalizate abstracte ale GLib.Source sunt tratate diferit [# 641]
- Utilizați în mod constant gpointer pentru țintele delegate
- Unificați anumite modele de verificare de tip delegat
- Utilizați funcția default_init în loc de base_init la înregistrarea interfețelor [# 699550]
- girparser: Adăugați suport pentru bool delegate_target [# 520]
- girwriter:
- Ieșirea depreciată = "1"
- Proprietățile numai pentru construcție nu au o metodă de setare
- Nu scrieți atribute personalizate [# 608]
- valadoc: Fix TreeBuilder.create_array () pentru Arrays stacked
- Bindings:
- volubile-2.0:
- Nu marcați parametrii de ieșire de tip simplu ca fiind nulibili [# 634]
- Faceți Source.attach () să utilizați implicit MainContext implicit
- Face Bytes.slice () să utilizeze Bytes.from_bytes () [# 638] eficientă din memorie
- Fixați Bytes.with_free_func ()
- gio-2.0:
- Marcați câmpurile ActionEntry.parameter_type / state ca nullable [# 632]
- Câmpurile delegate ale DBus * VTable nu au câmpuri țintă implicite
- Aplicați delegate_target = false la callback-urile ActionEntry și le faceți slabe [# 630]
- Adăugați implicit la toți parametrii io_priority
- gstreamer: Cherry - alegeți câteva corecții de la 0.42, adăugați gst-editing-services-1.0
- gtk + -3.0: Actualizare la 3.22.30 + 9ac7f906
- gtk + -4.0: Actualizare la 3.93.0 + 29fee2e8
- webkit2gtk-4.0: Actualizare la 2.21.4
- Actualizați legările bazate pe GIR
Ce este nou în versiune:
- Diverse remedii ale erorilor:
- Fixați regresia de reîncărcare cu parametri reali de structură non-null [# 791785]
- Eliberați referințele preluate la CodeContext după ce ați utilizat [# 712694] și păstrați invocările personalizate ale parse_file () posibil [# 791936]
- parser: acceptați lista separată prin virgulă în declarațiile de caz ale comutatoarelor [# 614015]
- Bindings:
- Îndepărtați legăturile livrate în amonte timp de câțiva ani
- gedit 3 [# 776021], libgnome-cheie [# 776022],
- gtksource-3.0 [# 776023], libgdata [# 776024], librsvg-2.0 [# 776025]
- glib-2.0: Adăugați GLib.OPTION_REMAINING și GLib.OptionFlags.NONE
- gstreamer-1.0: Actualizare de la 1.13+ master git
- gtk + -2.0: Marcați parametrul constructorului MessageDialog, message_format, ca nullable [# 791570]
- gtk + -4.0: Actualizare la 3.93.0 + 6aeae2c8
- webkit2gtk-4.0: Actualizare la 2.19.3
Ce este nou în versiunea 0.39.1:
- Repere
- Raportați avertizarea dacă tipul de proprietate nu este compatibil cu GLib.Object [# 693932]
- Permiteți delegarea delegatelor compatibile la signal.connect () [# 787521]
- Permiteți valorile enumerate nesolicitate acolo unde este posibil
- Evitați utilizarea temp-var pentru anumite persoane care se întorc în ValueType și pentru a accesa parametrii / ref [# 789071]
- Reformați declarațiile sursă generate și definițiile pentru o mai bună citire [# 688447]
- Diverse remedii ale erorilor:
- Utilizați array_length_cexpr pentru a sprijini matrice fixe pentru valori returnate [# 784691]
- Parsează corect argumentele pentru modul interpeter vala [# 663070]
- Impune lungimea numelui & gt; = 3 pentru structuri folosind GType [# 764041]
- Raportați eroarea pentru tipul de parametru lipsit pe tipul de închidere [# 587905]
- Adăugați ccode-attribute boolean "use_inplace" pentru metode [# 750840]
- Îmbunătățiți manevrarea aparițiilor de cuvinte cheie nefolosite / deținute
- Metodele trebuie să arunce eroare compatibilă dacă delegatul țintă aruncă unul
- Descoperă accesul membru nevalid la câmpul de instanță [# 790903]
- Îmbunătățiți ieșirea de eroare a metodelor de incompatibilitate
- Valadoc
- Recunoașteți posibilele proprietăți în structurile [# 784705]
- Fixați tipo fatal în GtkdocRenderer.visit_symbol_link () [# 790266]
- Bindings:
- glib-2.0: Utilizați tipul-id / marshaller pentru int16 / (u) scurt de la (u) int32 [# 693932]
- glib-2.0: adăugați parametrul optional "nepartiționat" în * .try_parse () [# 774124]
- gobject-2.0: Adăugați câteva simboluri lipsă
- gstreamer-1.0: Bind GST_TIME_ARGS, GST_STIME_ARGS macro-uri [# 750840]
- gstreamer-1.0: Legați GST_DEBUG_BIN_TO_DOT_FILE / * _ WITH_TS [# 785215]
- gstreamer-1.0: Actualizare de la 1.13+ master git
- gtk + -3.0: Actualizare la 3.22.26 + 9ce824d3
- gtk + -4.0: Split Gsk.RenderNode în mai multe clase
- gtk + -4.0: Actualizare la 3.93.0 + 2d797dd8
- webkit2gtk-4.0: Actualizare la 2.19.2
Ce este nou în versiunea 0.38.3:
- Diverse remedii ale erorilor:
- codegen: Prioritizează "array_length = true" peste "array_null_terminated = true" [# 788775]
- codegen: Evitați posibilele conflicte cu proprietatea / semnalul intern definește [# 788964]
- Bindings:
- gio-2.0: Expuneți g_task_get_source_object ca Task.get_unowned_source_object
- gstreamer-1.0: Actualizare de la 1.13+ master git
- gtk + -4.0: Actualizare la 3.92.1
- libxml-2.0: Adăugați metode DTD [# 789442]
Ce este nou în versiunea 0.38.2:
- Actualizări diferite de legare:
- gstreamer-1.0, gtk + -3.0, gtk + -4.0: Actualizare de la git master
- gnutls: Fixarea funcției free_function ccode-of Certificate [# 788181]
Ce este nou în versiunea 0.38.1:
- Diverse remedii ale erorilor:
- valadoc: Nu folosiți "stderr" ca nume de variabilă [# 787305]
- codegen: Încercați să utilizați o definiție internă mai unică pentru proprietăți [# 787436]
- vala: Actualizați lista atributelor utilizate
- : utilizați șirul de prototipuri pentru rapoartele de eroare privind neconcordanțele tipurilor de returnare
- Bindings:
- glib-2.0: Fixarea parolelor MainContext.check (), OptionEntry [] este terminată null, Bind g_convert_with_fallback () și g_convert_with_iconv ()
Metoda
Ce este nou în versiunea 0.37.1:
- Repere:
- Nu avertizați asupra simbolurilor depreciate dacă versiunea_instalată este mai veche
- Adăugați opțiunea --gresourcesdir [# 783133]
- Diverse remedii ale erorilor:
- gdbus: Nu scurgeți HashTable imbricate pe deserializare [# 782719]
- Fixați în cele din urmă blocurile cu randamente asincronice [# 741929]
- Manipulați non-null în expresia coalescing [# 611223]
- Faceți flagul task_complete pentru & lt; 2,44 mai mult similar cu> 2,44 [# 783543]
- ValueType Nullable necesită POINTER ca semnătura marshaller [# 783897]
- Atributul NoAccessorMethod este permis doar pentru proprietățile gobiect
- girparser: Fixați parsarea delegatului-alias fără țintă
- compilator: Utilizați API_VERSION în loc să desfaceți PACKAGE_SUFFIX
- girwriter: Scrieți lungimea parametrilor de tablouri cu rang> 1 [# 758019]
- Bindings:
- gio-2.0: Utilizați implicit 'length = null' pentru DataInputStream.read_line_utf8 * [# 783351]
- gobject-2.0: Adăugați GLib.ParamSpecPointer
- poppler-glib: Actualizare la 0.54.0
- gstreamer-1.0: Diferite remedii obligatorii
Ce este nou în versiunea 0.36.3:
- Diverse remedii ale erorilor:
- scanner: Fix calculul valorii coloanei pentru jetoanele după comentariul multiline [# 652899]
- codegen: Unref GLib.AsyncResult privind erorile necorespunzătoare în corutine [# 641171]
- Păstrați inițializarea variabilei de rezultat pentru constructorii structului [# 782056]
Ce este nou în versiunea 0.36.1:
- Diverse remedii ale erorilor:
- Luați întotdeauna în considerare o metodă compatibilă cu ea însăși [# 773135]
- Efectuați argumente-verificați metoda actuală .end () [# 684208]
- Îmbunătățiți ușor eroarea lamdba-expression în cazul neconcordanței de tip țintă
- Fixați inițializatorul delegatului pentru câmpurile de exemplu [# 683925]
- Nu scurgeți referința țintă la distribuirea / atribuirea delegațiilor deținute [# 780426]
- parser și scriitor GIR:
- girparser: Adăugați argumentul de distrugere pentru metadatele [# 750838]
- vapigen: adăugați opțiunea -nostdpkg ca în valac
- Bindings:
- gstreamer-1.0: Legături fix Pad.set _ * _ legături [# 750838]
- glib-2.0: adăugați macro și constante de versiune lipsă, unichar.to_string nu se întoarce null
- gtk + -2.0, gtk + -3.0: Marchează paramul "intersecție" al lui Widget.intersect () ca fiind
- gtk + -4.0: Actualizare la 3.90.0
Comentariile nu a fost găsit