Proqramlaşdırma dili tərcüməçisinin buraxılışı Vala 0.54.0

Vala 0.54.0 proqramlaşdırma dili tərcüməçisinin yeni versiyası buraxıldı. Vala dili C# və ya Java ilə oxşar sintaksisi təmin edən obyekt yönümlü proqramlaşdırma dilidir. Vala kodu C proqramına tərcümə olunur ki, bu da öz növbəsində standart C kompilyatoru tərəfindən ikili faylda tərtib edilir və hədəf platformanın obyekt koduna yığılmış proqram sürətində icra olunur. Proqramları skript rejimində işlətmək mümkündür. Dil GNOME layihəsinin himayəsi altında hazırlanır. Obyekt modeli kimi Gobject (Glib Object System) istifadə olunur. Kompilyator kodu LGPLv2.1 lisenziyası altında paylanır.

Bu dil introspeksiya, lambda funksiyaları, interfeyslər, nümayəndələr və qapaqlar, siqnallar və yuvalar, istisnalar, xassələr, qeyri-null tiplər, yerli dəyişənlər üçün tip nəticəsinə malikdir (var). Yaddaşın idarə edilməsi istinadların hesablanması əsasında həyata keçirilir. Dil üçün ümumiləşdirilmiş proqramlaşdırma kitabxanası libgee hazırlanmışdır ki, bu da xüsusi məlumat növləri üçün kolleksiyalar yaratmaq imkanı verir. Foreach ifadəsindən istifadə edərək kolleksiya elementlərinin sadalanması dəstəklənir. Qrafik proqramların proqramlaşdırılması GTK qrafik kitabxanasından istifadə etməklə həyata keçirilir.

Kit C dilindəki kitabxanalara çoxlu sayda bağlama ilə gəlir.Vala tərcüməçisi oxşar imkanları təmin edən, lakin Python proqramlaşdırma dilindən ilhamlanmış sintaksislə Genie dilini dəstəkləyir. Geary e-poçt müştərisi, Budgie qrafik qabığı, Shotwell foto və video fayllarının təşkili proqramı və digər proqramlar Vala dilində yazılmışdır. Dil Elementary OS paylanmasının inkişafında fəal şəkildə istifadə olunur.

Əsas yeniliklər:

  • Dəyişən sayda parametrləri olan nümayəndələr üçün əlavə dəstək;
  • POSIX profili ilə sinonim olan LIBC profili əlavə edildi;
  • POSIX profil rejimində təkmilləşdirilmiş nəsil;
  • Növ nəticəsi (var?) ilə null dəyəri ola bilən dəyişənləri elan etmək imkanı əlavə edildi;
  • Vərəsəlik üçün qadağan olunmuş sinifləri elan etmək imkanı əlavə edildi (möhürlənmiş);
  • Sinif sahələrinə sıfır ola bilən təhlükəsiz giriş operatoru əlavə edildi (a.?b.?c);
  • Struktur məzmununun sıfıra sıfırlanmasına icazə verilir (const Foo[] BARS = { { "bar", 42 }, null };);
  • resize() əməliyyatı daimi massivlər üçün qadağandır;
  • Funksiya çağırışını ləğv etməyə çalışarkən əlavə xəbərdarlıq çıxışı ((void)not_void_func();
  • GLib.Array element növləri üzrə məhdudiyyət silindi;
  • foreach() ifadəsində "sahibi olmayan var" mülkiyyət mirası düzəldildi;
  • webkit2gtk-4.0 ilə əlaqə 2.33.3 versiyasına yeniləndi;
  • gstreamer-ə bağlama 1.19.0+ git master versiyasına yeniləndi;
  • gtk4-ə bağlama 4.5.0~e681fdd9 versiyasına yeniləndi;
  • gtk+-3.0 üçün bağlama 3.24.29+f9fe28ce versiyasına yeniləndi
  • gio-2.0, glib-2.0-a bağlama 2.69.0 versiyasına yeniləndi;
  • Linux üçün SocketCAN-a bağlamalar əlavə edilmişdir;
  • 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, web-webbk-t üçün bağlamalarda düzəlişlər genişləndirmə-2, x4.0, zlib, gnutls;
  • gedit-2.20 və webkit-1.0 bağlamaları silindi;
  • GIR əsasında yenilənmiş bağlamalar;
  • Yaradılmış C kodunu yoxlamaq imkanı test sisteminə əlavə edilmişdir;
  • Təkmilləşdirilmiş girparser, girwriter, valadoc, libvaladoc/girimporter;
  • Müxtəlif kompilyator komponentlərinin yığılmış səhvləri və çatışmazlıqları aradan qaldırıldı.

Mənbə: opennet.ru

Добавить комментарий