Vala 0.54.0 dasturlash tili tarjimonining chiqarilishi

Vala 0.54.0 dasturlash tili tarjimonining yangi versiyasi chiqdi. Vala tili ob'ektga yo'naltirilgan dasturlash tili bo'lib, u C# yoki Java ga o'xshash sintaksisni ta'minlaydi. Vala kodi C dasturiga tarjima qilinadi, u o'z navbatida standart C kompilyatori tomonidan ikkilik faylga kompilyatsiya qilinadi va maqsadli platformaning ob'ekt kodiga kompilyatsiya qilingan dastur tezligida bajariladi. Dasturlarni skript rejimida ishga tushirish mumkin. Til GNOME loyihasi homiyligida ishlab chiqilmoqda. Ob'ekt modeli sifatida Gobject (Glib Object System) ishlatiladi. Kompilyator kodi LGPLv2.1 litsenziyasi ostida tarqatiladi.

Bu tilda introspeksiya, lambda funktsiyalari, interfeyslar, delegatlar va yopishlar, signallar va uyalar, istisnolar, xususiyatlar, null bo'lmagan turlar, mahalliy o'zgaruvchilar uchun turdagi xulosalar mavjud (var). Xotirani boshqarish ma'lumotnomalarni hisoblash asosida amalga oshiriladi. Til uchun umumiy dasturlash kutubxonasi libgee ishlab chiqilgan bo'lib, u maxsus ma'lumotlar turlari uchun to'plamlarni yaratish imkoniyatini beradi. Foreach bayonotidan foydalangan holda to'plam elementlarini sanab o'tish qo'llab-quvvatlanadi. Grafik dasturlarni dasturlash GTK grafik kutubxonasi yordamida amalga oshiriladi.

To'plam C tilidagi kutubxonalarga juda ko'p bog'lanishlar bilan birga keladi.Vala tarjimoni Genie tilini qo'llab-quvvatlaydi, bu shunga o'xshash imkoniyatlarni ta'minlaydi, lekin Python dasturlash tilidan ilhomlangan sintaksis bilan. Geary elektron pochta mijozi, Budgie grafik qobig'i, Shotwell foto va video fayllarni tashkil qilish dasturi va boshqalar Vala tilida yozilgan. Bu til Elementary OS distributivini ishlab chiqishda faol foydalanilmoqda.

Asosiy innovatsiyalar:

  • O'zgaruvchan sonli parametrlarga ega delegatlar uchun qo'shimcha yordam;
  • POSIX profilining sinonimi bo'lgan LIBC profili qo'shildi;
  • POSIX profil rejimida ishlab chiqarish yaxshilandi;
  • Turi xulosasi (var?) bilan null qiymatga ega bo'lishi mumkin bo'lgan o'zgaruvchilarni e'lon qilish qobiliyati qo'shildi;
  • Meros uchun taqiqlangan sinflarni e'lon qilish imkoniyati qo'shildi (muhrlangan);
  • Nol bo'lishi mumkin bo'lgan sinf maydonlariga xavfsiz kirish operatori qo'shildi (a.?b.?c);
  • Tuzilish mazmunini nullga ishga tushirishga ruxsat berilgan (const Foo[] BARS = { { "bar", 42 }, null };);
  • resize() operatsiyasi doimiy massivlar uchun taqiqlangan;
  • Funktsiya chaqiruvini bekor qilishga urinayotganda ogohlantirish chiqishi qo'shildi ((void)not_void_func();
  • GLib.Array element turlariga cheklov olib tashlandi;
  • foreach() bayonotida "egasiz var" egalik merosi tuzatildi;
  • webkit2gtk-4.0 ga ulanish 2.33.3 versiyasiga yangilandi;
  • Gstreamer-ga ulanish git masterning 1.19.0+ versiyasiga yangilandi;
  • gtk4 ga ulanish 4.5.0~e681fdd9 versiyasiga yangilandi;
  • Gtk+-3.0 uchun ulanish 3.24.29+f9fe28ce versiyasiga yangilandi
  • gio-2.0, glib-2.0 ga ulanish 2.69.0 versiyasiga yangilandi;
  • Linux uchun SocketCAN ga ulanishlar qo'shilgan;
  • 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, webkit2k-t uchun bogΚ»lanishlar tuzatildi. kengaytma-4.0, x11, zlib, gnutls;
  • gedit-2.20 va webkit-1.0 ulanishlari olib tashlandi;
  • GIR asosida yangilangan bog'lashlar;
  • Yaratilgan C kodini tekshirish imkoniyati test tizimiga qo'shildi;
  • Yaxshilangan girparser, girwriter, valadoc, libvaladoc/girimporter;
  • Turli kompilyator komponentlarining to'plangan xatolari va kamchiliklari tuzatildi.

Manba: opennet.ru

a Izoh qo'shish