Programlama dili Vala 0.54.0 çevirmeninin piyasaya sürülmesi

Programlama dili çevirmeni Vala 0.54.0'ın 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. Vala kodu bir C programına çevrilir, bu da standart bir C derleyicisi tarafından ikili bir dosyaya derlenir ve hedef platformun nesne koduna derlenen bir uygulamanın hızında yürütülür. Programları komut dosyası modunda çalıştırmak mümkündür. Dil, GNOME projesinin himayesinde geliştirilmektedir. Nesne modeli olarak Gobject (Glib Object System) kullanılmaktadır. Derleyici kodu LGPLv2.1 lisansı altında dağıtılmaktadır.

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 (var) için tür çıkarımı desteği vardır. Bellek yönetimi referans sayımına dayalı olarak gerçekleştirilir. 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 ifadesi kullanılarak numaralandırılması desteklenir. Grafik programlarının programlanması GTK grafik kütüphanesi kullanılarak gerçekleştirilir.

Kit, C dilindeki kütüphanelere çok sayıda bağlamayla birlikte gelir. Vala tercümanı, benzer yetenekler sağlayan ancak Python programlama dilinden ilham alan bir sözdizimiyle Genie dili için destek sağlar. Geary e-posta istemcisi, Budgie grafik kabuğu, Shotwell fotoğraf ve video dosyası düzenleme programı ve diğerleri gibi programlar Vala dilinde yazılmıştır. Dil, Temel İşletim Sistemi dağıtımının geliştirilmesinde aktif olarak kullanılmaktadır.

Ana yenilikler:

  • Değişken sayıda parametreye sahip delegeler için destek eklendi;
  • POSIX profiliyle eşanlamlı olan LIBC profili eklendi;
  • POSIX profil modunda geliştirilmiş oluşturma;
  • Tür çıkarımı (var?) ile boş değere sahip olabilecek değişkenleri bildirme yeteneği eklendi;
  • Kalıtım için yasaklanmış (mühürlü) sınıfları bildirme yeteneği eklendi;
  • Boş olabilecek sınıf alanlarına güvenli erişim operatörü eklendi (a.?b.?c);
  • Yapı içeriklerinin null olarak başlatılmasına izin verildi (const Foo[] BARS = { { "bar", 42 }, null };);
  • Sabit diziler için resize() işlemi yasaktır;
  • void ((void)not_void_func();); işlevine bir işlev çağrısı yapılmaya çalışıldığında uyarı çıktısı eklendi.
  • GLib.Array öğe türlerindeki kısıtlama kaldırıldı;
  • foreach() ifadesindeki "sahip olmayan var" sahipliğinin devralınması düzeltildi;
  • webkit2gtk-4.0'a bağlanma 2.33.3 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.5.0~e681fdd9 sürümüne güncellendi;
  • GTK+-3.0 bağlaması 3.24.29+f9fe28ce sürümüne güncellendi
  • Gio-2.0,glib-2.0'a bağlanma 2.69.0 sürümüne güncellendi;
  • Linux için SocketCAN'a bağlantılar eklendi;
  • 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- için bağlamalardaki düzeltmeler extension-4.0, x11, zlib, gnutls;
  • gedit-2.20 ve webkit-1.0 bağlamaları kaldırıldı;
  • GIR'a göre güncellenmiş bağlamalar;
  • Oluşturulan C kodunu kontrol etme özelliği test sistemine eklendi;
  • Geliştirilmiş girparser, girwriter, valadoc, libvaladoc/girimporter;
  • Çeşitli derleyici bileşenlerinde biriken hatalar ve eksiklikler giderildi.

Kaynak: opennet.ru

Yorum ekle