Byla vydána nová verze překladače programovacího jazyka Vala, verze 0.51.1. Vala je objektově orientovaný programovací jazyk se syntaxí podobnou jazyku C# nebo Javě. Jako objektový model používá Gobject (Glib Object System). Správa paměti je založena na počítání referencí.
Jazyk podporuje introspekci, lambda funkce, rozhraní, delegáty a uzávěry, signály a sloty, výjimky, vlastnosti, typy bez hodnoty null a odvozování typů pro lokální proměnné (var). Jazyk obsahuje generickou programovací knihovnu libgee, která umožňuje vytváření kolekcí pro uživatelem definované datové typy. Výčet prvků kolekce je podporován pomocí příkazu foreach. Grafické programování se provádí pomocí grafické knihovny GTK+. Součástí je velké množství vazeb na knihovny jazyka C.
Programy ve Vala jsou přeloženy do jazyka C a poté kompilovány pomocí vestavěného kompilátoru jazyka C. Programy lze spouštět ve skriptovém režimu. Kompilátor Vala podporuje jazyk Genie, který nabízí podobné funkce, ale se syntaxí inspirovanou programovacím jazykem Python.
Jazyk Vala je vyvíjen pod záštitou projektu GNOME. Vala je základem programů, jako je e-mailový klient Geary, desktopové prostředí Budgie, správce sbírek fotografií a videí Shotwell a další. Vala se aktivně používá při vývoji komponent. Linux-Elementární distribuce OS.
V nové verzi:
- Přidána podpora pro automatické zúžení typů ve výrazech; if (x is Foo){ x.SomeFooField // není třeba explicitně přetypovat "x" na "Foo" }
- Přidána podpora pro volání konstruktorových řetězců pro šablony;
- Přidána kontrola verze libvala během spuštění;
- Přidána podpora pro neprůhledné kompaktní třídy;
- Rozšířená podpora pro parametry polí v konstruktorech;
- Girparser nyní zpracovává anonymní delegáty, které nejsou podporovány virtuálními metodami nebo signály;
- Opraveny chyby ve valadoc, libvaladoc a girwriter;
- Přidána vazba k SDL 2.x, ukončena podpora vazby SDL 1.x;
- Přidána vazba do Enchantu 2.x;
- Opraven únik paměti při explicitním kopírování polí, použití Glib.Value a přesunutí struktury alokované z haldy do zásobníku;
- Vazba na gdk-pixbuf-2.0 aktualizována na verzi 2.42.3;
- Přidána vazba pro funkci getopt_long() a několik dalších GNU funkcí;
- Přidána vazba na libunwind-generic;
- Opraveny vazby na knihovny 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, gtk4, fuse, libxml-2.0;
- Vazba na gio-2.0 byla aktualizována na verzi 2.67.3;
- Vazba na gobject-2.0 aktualizována na verzi 2.68;
- Vazba na gstreamer byla aktualizována na verzi 1.19.0+ git master;
- Vazba na gtk4 byla aktualizována na verzi 4.1.0+2712f536;
- Přidány vazby k regulárnímu výrazovému API pro POSIX, GNU a BSD;
- Vazba na webkit2gtk-4.0 byla aktualizována na verzi 2.31.1;
- Nahromaděné chyby a nedostatky kompilátoru byly opraveny.
Zdroj: opennet.ru
