Vydání překladače programovacího jazyka Vala 0.54.0

Byla vydána nová verze překladače programovacích jazyků Vala 0.54.0. Jazyk Vala je objektově orientovaný programovací jazyk, který poskytuje syntaxi podobnou C# nebo Javě. Vala kód je přeložen do C programu, který je zase zkompilován standardním C kompilátorem do binárního souboru a spuštěn rychlostí aplikace zkompilované do objektového kódu cílové platformy. Programy je možné spouštět v režimu skriptu. Jazyk je vyvíjen pod záštitou projektu GNOME. Jako objektový model se používá Gobject (Glib Object System). Kód kompilátoru je distribuován pod licencí LGPLv2.1.

Jazyk má podporu pro introspekci, lambda funkce, rozhraní, delegáty a uzávěry, signály a sloty, výjimky, vlastnosti, nenulové typy, odvození typu pro lokální proměnné (var). Správa paměti se provádí na základě počítání referencí. Pro jazyk byla vyvinuta zobecněná programovací knihovna libgee, která poskytuje možnost vytvářet kolekce pro vlastní datové typy. Výčet prvků kolekce pomocí příkazu foreach je podporován. Programování grafických programů se provádí pomocí grafické knihovny GTK.

Sada je dodávána s velkým množstvím vazeb na knihovny v jazyce C. Překladač Vala poskytuje podporu pro jazyk Genie, který poskytuje podobné možnosti, ale se syntaxí inspirovanou programovacím jazykem Python. Takové programy jako e-mailový klient Geary, grafický shell Budgie, program pro organizaci souborů fotografií a videí Shotwell a další jsou napsány v jazyce Vala. Jazyk se aktivně používá při vývoji distribuce Elementary OS.

Hlavní inovace:

  • Přidána podpora pro delegáty s proměnným počtem parametrů;
  • Přidán profil LIBC, který je synonymem pro profil POSIX;
  • Vylepšené generování v režimu profilu POSIX;
  • Přidána možnost deklarovat proměnné, které mohou mít hodnotu null s odvozením typu (var?);
  • Přidána možnost prohlásit třídy za zakázané pro dědění (zapečetěné);
  • Do polí třídy přidán operátor bezpečného přístupu, který může mít hodnotu null (a.?b.?c);
  • Povolena inicializace obsahu struktury na null (const Foo[] BARS = { { "bar", 42 }, null };);
  • Operace resize() je pro konstantní pole zakázána;
  • Přidán varovný výstup při pokusu o přetypování volání funkce na void ((void)not_void_func(););
  • Odstraněno omezení na typy prvků GLib.Array;
  • Opraveno dědění vlastnictví "unowned var" v příkazu foreach();
  • Vazba na webkit2gtk-4.0 byla aktualizována na verzi 2.33.3;
  • Vazba na gstreamer byla aktualizována na verzi 1.19.0+ git master;
  • Vazba na gtk4 byla aktualizována na verzi 4.5.0~e681fdd9;
  • Vazba pro gtk+-3.0 byla aktualizována na verzi 3.24.29+f9fe28ce
  • Vazba na gio-2.0, glib-2.0 byla aktualizována na verzi 2.69.0;
  • Pro linux byly přidány vazby na SocketCAN;
  • Opravy ve vazbách pro glib-2.0, gio-2.0, gstreamer-rtp-1.0, javascriptcoregtk-4.0, gobject-2.0, pango, linux, gsl, rest-0.7, libusb, libusb-1.0, pixman-1, webkit2gtk-web- prodloužení-4.0, x11, zlib, gnutls;
  • Odstraněny vazby gedit-2.20 a webkit-1.0;
  • Aktualizované vazby založené na GIR;
  • Do testovacího systému byla přidána možnost kontrolovat vygenerovaný C kód;
  • Vylepšený girparser, girwriter, valadoc, libvaladoc/girimporter;
  • Nahromaděné chyby a nedostatky různých komponent kompilátoru byly opraveny.

Zdroj: opennet.ru

Přidat komentář