Vala 0.56.0 dasturlash tili tarjimonining chiqarilishi

Vala 0.56.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:

  • Asinxron main() funktsiyasi uchun qo'shimcha qo'llab-quvvatlash;
  • Ichki funktsiyalar uchun qo'shimcha yordam;
  • Kompilyatsiya paytida ogohlantirishlar va xatolarni ko'rsatish formati o'zgartirildi;
  • Signallarni dinamik ravishda chaqirish imkoniyati taqdim etiladi;
  • Qisman sinflar uchun qo'shimcha yordam - mazmuni bir nechta manba fayllarida joylashgan sinflar;
  • Bog'lash uchun massiv uzunligi turlarini belgilash imkoniyati qo'shildi. Ilgari faqat 32 bitli butun son turiga ruxsat berilgan;
  • Glib.Sequence va Glib.Array turlari uchun foreach operatorini qo'llab-quvvatlash qo'shildi;
  • libsoup, linux-media uchun yangi ulanishlar qo'shildi;
  • Portlash jarayonida gnome-desktop kutubxonasi gnome-desktop-4, gnome-rr-4 va gnome-bg-4 ga bo'lingan.
  • GNOME dasturlash qo'llanmalari Vala tilidagi misollar bilan kengaytirilgan.
  • Markdown belgilash tilida nashr yozuvlari qo'shildi.
  • Yangilangan ulanishlar:
    • gtk4 4.6.0+06ec4ec1 versiyasigacha;
    • gstreamer 1.21.0+ git master versiyasigacha;
    • gio-2.0 2.72 versiyasigacha;
    • glib-2.0 2.72 versiyasidan oldin;
    • gobject-2.0 2.72 versiyasidan oldin;
    • webkit2gtk-*.0 2.35.1 versiyasidan oldin.

Manba: opennet.ru

a Izoh qo'shish