Programlama dili çevirmeni Vala 0.51.1'in yeni bir sürümü yayınlandı. Vala dili, C# veya Java'ya benzer bir sözdizimi sağlayan nesne yönelimli bir programlama dilidir. Nesne modeli olarak Gobject (Glib Object System) kullanılmaktadır. Bellek yönetimi referans sayımına dayalı olarak gerçekleştirilir.
Dilin iç gözlem, lambda işlevleri, arayüzler, delegeler ve kapanışlar, sinyaller ve yuvalar, istisnalar, özellikler, boş olmayan türler, yerel değişkenler için tür çıkarımı (var) desteği vardır. Dil için özel veri türleri için koleksiyonlar oluşturma yeteneği sağlayan genelleştirilmiş bir programlama kütüphanesi libgee geliştirilmiştir. Koleksiyon öğelerinin foreach deyimi kullanılarak numaralandırılması desteklenir. Grafik programlarının programlanması GTK+ grafik kütüphanesi kullanılarak gerçekleştirilir. Kit, C dilindeki kitaplıklara yönelik çok sayıda bağlamayla birlikte gelir.
Vala programları C gösterimine çevrilir ve ardından standart bir C derleyicisi tarafından derlenir. Programları komut dosyası modunda çalıştırmak mümkündür. Vala tercümanı, benzer yetenekler sağlayan ancak Python programlama dilinden ilham alan bir sözdizimine sahip olan Genie dili için destek sağlar.
Vala dili GNOME projesinin himayesinde geliştirildi. Vala, Geary e-posta istemcisi, Budgie grafik kabuğu, Shotwell fotoğraf ve video koleksiyonu yönetim programı ve diğerleri gibi programları yazmak için kullanılır. Vala, Linux dağıtımı Elementary OS bileşenlerinin geliştirilmesinde aktif olarak kullanılmaktadır.
Yeni sürümde:
- İfadelerde otomatik tür daraltma desteği eklendi; if (x is Foo){ x.SomeFooField // "x"i açıkça "Foo"ya dönüştürmeye gerek yok }
- Şablonlar için yapıcı zincirlerinin çağrılması desteği eklendi;
- Çalışma zamanında libvala sürüm kontrolü eklendi;
- Opak kompakt sınıflar için destek eklendi;
- Yapıcılardaki dizi parametreleri için genişletilmiş destek;
- Girparser'a sanal yöntemler veya sinyaller tarafından desteklenmeyen anonim delegelerin işlenmesi eklendi;
- Valadoc, libvaladoc ve girwriter'daki hatalar düzeltildi;
- SDL 2.x'e bağlanma eklendi, SDL 1.x bağlama desteği durduruldu;
- Enchant 2.x'e bağlama eklendi;
- Dizileri açıkça kopyalarken, Glib.Value kullanarak veya Heap'te tahsis edilen bir yapıyı yığına taşırken meydana gelen bellek sızıntısı düzeltildi;
- gdk-pixbuf-2.0'a bağlanma 2.42.3 sürümüne güncellendi;
- getopt_long() işlevinin ve diğer bazı GNU işlevlerinin bağlanması eklendi;
- Libunwind-generic'e bağlama eklendi;
- Cairo, gobject-2.0, pango, goocanvas-2.0, küfürler, alsa, bzlib, sqlite3, libgvc, posix, gstreamer-1.0, gdk-3.0, gdk-x11-3.0, gtk+-3.0, gtk4, sigorta, libxml için sabit bağlamalar -2.0;
- Gio-2.0'a bağlanma 2.67.3 sürümüne güncellendi;
- gobject-2.0'a bağlanma 2.68 sürümüne güncellendi;
- Gstreamer'a bağlanma 1.19.0+ git master sürümüne güncellendi;
- GTK4'e bağlanma 4.1.0+2712f536 sürümüne güncellendi;
- POSIX, GNU ve BSD için normal ifade API'sine bağlamalar eklendi;
- webkit2gtk-4.0'a bağlanma 2.31.1 sürümüne güncellendi;
- Derleyicinin birikmiş hataları ve eksiklikleri giderildi.
Kaynak: opennet.ru
