Megjelent a Vala 0.50.4 programozási nyelv fordítójának új verziója. A Vala 0.48.14 (Ubuntu 18.04-hez csomagolva) hosszú távú támogatási (LTS) ág és a Vala 0.51.3 kísérleti ág is frissült.
A Vala nyelv egy objektum-orientált programozási nyelv, amely a C#-hoz vagy a Java-hoz hasonló szintaxist biztosít. A Gobject (Glib Object System) objektummodellként használatos. A memóriakezelést a tulajdonjog (tulajdonban lévő/nem birtokolt hivatkozások) vagy az ARC használatával (destruktorok helyettesítése és az objektumhivatkozás-számlálók csökkentése a fordítási szakaszban) hajtják végre.
A nyelv támogatja az introspekciót, a lambda-függvényeket, az interfészek, a delegáltak és a lezárások, a jelek és helyek, a kivételek, a tulajdonságok, a nem null típusok, a helyi változók típuskövetkeztetését. A készlet nagyszámú kötést tartalmaz C nyelvű könyvtárakhoz (vala-girs, vala-extra-vapis). A Vala programokat C reprezentációra fordítjuk, majd egy szabványos C fordító fordítja le.Lehetőség van a programok futtatására script módban.
Változások listája:
- További támogatás hozzáadva a params kulcsszóhoz a konstruktorokhoz class Foo{ public Foo(params string[] args){ foreach (var arg in args) print(arg); } }
- kód:
- Továbbfejlesztett támogatás a SimpleType struktúra konstruktorokhoz (például typedef uint32_t people_inside kötésére; C-ből) [SimpleType] [CCode (cname = "people_inside")] nyilvános struktúra PeopleInside : uint32 {}
- A „NoWrapper” attribútum továbbfejlesztett kezelése.
- A CCode.type_cname és a get_ccode_type_name() engedélyezett az osztályokhoz.
- A G_TYPE_INSTANCE_GET_CLASS/INTERFACE mindig a külső szimbólumokhoz használatos.
- A g_boxed_free a free-wrapperben használt GLib.Value kiosztásához a kupacban.
- Memóriaszivárgás javítása a GLib.Value (bármilyen típusú univerzális tároló) implicit kicsomagolása során.
- Memóriaszivárgás kijavítása egy halom-lefoglalt struktúra verembe való áthelyezésekor.
- A szülőstruktúra destruktorának öröklése biztosított
- A beágyazott öntött kifejezések symbol_reference helyes lekérése javítva lett.
- Eltávolította a CCodeCastExpression összes beágyazott előfordulását.
- Az alapértelmezett jelkezelő helytelen hívása leállt.
- Csatlakoztatva a "string.h"-hoz az strcmp()-hez (POSIX profil, mód, amelyben Vala kódot generál csak a szabványos C könyvtár használatával).
- Vala:
- A duplikált csomagforrásfájlok jobb észlelése.
- A GtkChild mezőket/tulajdonságokat nem kell nyilvánítani.
- A GtkChild mező/tulajdon újbóli hozzárendelése tilos.
- Szigorúbb feltételt alkalmaztak a lambdára a megbízás átadásakor.
- Egyszer használatos SimpleType szerkezetek használata tilos.
- A GLib.Value kicsomagolása biztosítja, hogy a nem birtokolt érték visszakerüljön.
- A GLib.Value nullázható struktúrába/egyszerű típusba öntése tilos.
- Típusargumentumok ellenőrzése hozzáadva az alaptípusok/osztályok/interfész előfeltételeihez.
- A va_list paraméterek/változók rögzítése tilos.
- A struktúrára mutató mutatót tartalmazó általánosakat a megfelelő típusba kell önteni, amikor hozzáférünk, hogy elkerüljük a C UB-t.
- Megvalósított típuskövetkeztetés az "in"-hez az enum-ban.
- Továbbfejlesztett kontextus-ellenőrzés az írható mezőhöz való hozzárendelésekhez.
- Tartalmazza az "stdlib.h" elemet az Enum.to_string() (POSIX) számára.
- A helyes forráshivatkozás a "this" és a "result" implicit változókhoz van beállítva
- Hibaüzenetet adott az unáris kifejezések érvénytelen belső operandusához.
- Сodewriter: A záró ";" hozzáadása leállt a törzs után WithStatement.
- Girparser:
- A virtuális módszerrel vagy jellel nem támogatott névtelen delegált feldolgozása biztosított.
- Alkalmazott "delegate_target" metaadatok a metódusokhoz és paraméterekhez
- Alkalmazza a „destroy_notify_cname” metaadatokat a mezőkre
- Alkalmazza a "type_get_function" metaadatokat az osztályokhoz és interfészekhez
- Állítsa be a CCode.type_cname értéket az osztályokhoz, ha nem az alapértelmezett.
- girwriter: Gondoskodik a példányparaméter-elemek írásáról.
- girwriter: Implementált alapértelmezett jelkezelő kimenet.
- libvaladoc/html: Eltávolítottuk a szerkezeti mezők rendezését, hogy az eredeti sorrendjüket hagyjuk meg a valadoc.org html dokumentáció generálásakor
- libvaladoc: Győződjön meg arról, hogy az Api.Class.is_compact értékei megfelelően lettek lekérve
- libvaladoc: Hozzáadott burkoló az "agedge" graphviz könyvtárhoz
- Kötések:
- Kisebb javítások a kötések generálásakor: 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+t-4. biztosíték, libxml-2.0
- gdk-pixbuf-2.0: Javítsa ki a Pixbuf.save_to_streamv_async()
- gio-2.0: PollableOutputStream.write*_nonblocking() kötési javítás
- gio-2.0,gtk+-3.0,gtk4: A va_list paraméterek explicit c-típusú attribútumait elveti
- gio-2.0: Hiányzó meghívó van kiválasztva egyes AppInfo/File.*() metódusokhoz
- glib-2.0: hozzáadva a GLib.[S]List.is_empty() kényelmi metódusokat nem nullához
- glib-2.0: Az assert_cmp* függvény összerendelése [#395]
- glib-2.0: Továbbfejlesztett OptionEntry.flags mezőtípus
- glib-2.0: A PtrArray mostantól a GenericArray alosztálya
- gstreamer-1.0: A MiniObject CCode.type_id értéke G_TYPE_BOXED [#1133]
- gtk+-2.0,javascriptcoregtk-4.0: A CCode.type_cname attribútum helyes használata
- gtk+-3.0,gtk4: Javítva néhány delegált visszatérési érték és paraméter
- gtk4: Frissítve a 4.0.2-es verzióra.
Forrás: opennet.ru