Vala 0.54.0 бағдарламалау тілінің аудармашысының шығарылымы

Vala 0.54.0 бағдарламалау тілінің аудармашысының жаңа нұсқасы шығарылды. Vala тілі – C# немесе Java тілдеріне ұқсас синтаксисті қамтамасыз ететін объектіге бағытталған бағдарламалау тілі. Vala коды C бағдарламасына аударылады, ол өз кезегінде стандартты C компиляторымен екілік файлға құрастырылады және мақсатты платформаның объектілік кодына құрастырылған қолданба жылдамдығымен орындалады. Бағдарламаларды сценарий режимінде іске қосуға болады. Тіл GNOME жобасының демеушілігімен әзірленуде. Объектілік модель ретінде Gobject (Glib Object System) пайдаланылады. Компилятор коды LGPLv2.1 лицензиясы бойынша таратылады.

Тілде интроспекцияға, лямбда функцияларына, интерфейстерге, делегаттар мен жабуларға, сигналдар мен ұяшықтарға, ерекшеліктерге, сипаттарға, нөлдік емес түрлерге, жергілікті айнымалылар үшін типті қорытындыға қолдау көрсетіледі (var). Жадты басқару анықтамалық санау негізінде жүзеге асырылады. Тіл үшін жалпыланған бағдарламалау кітапханасы libgee әзірленді, ол реттелетін деректер түрлері үшін жинақтарды жасау мүмкіндігін береді. Foreach мәлімдемесін қолданатын жинақ элементтерін санауға қолдау көрсетіледі. Графикалық бағдарламаларды бағдарламалау GTK графикалық кітапханасының көмегімен жүзеге асырылады.

Жинақ Си тіліндегі кітапханаларға байланыстырулардың үлкен санымен келеді.Vala аудармашысы ұқсас мүмкіндіктерді қамтамасыз ететін, бірақ Python бағдарламалау тілінен шабыттанған синтаксиспен Genie тілін қолдауды қамтамасыз етеді. Geary электрондық пошта клиенті, Budgie графикалық қабығы, Shotwell фото және бейне файлдарын ұйымдастыру бағдарламасы және басқалары сияқты бағдарламалар Vala тілінде жазылған. Бұл тіл Elementary OS дистрибутивін әзірлеуде белсенді түрде қолданылады.

Негізгі инновациялар:

  • Параметрлердің айнымалы саны бар делегаттарға қолдау қосылды;
  • POSIX профилімен синоним болатын LIBC профилі қосылды;
  • POSIX профиль режимінде жақсартылған генерация;
  • Түрлі қорытынды (var?) бар нөлдік мәнге ие болатын айнымалыларды жариялау мүмкіндігі қосылды;
  • Мұрагерлікке (мөрмен) тыйым салынған сыныптарды жариялау мүмкіндігі қосылды;
  • Нөл болуы мүмкін класс өрістеріне қауіпсіз қатынас операторы қосылды (a.?b.?c);
  • Құрылым мазмұнын нөлге инициализациялауға рұқсат етілген (const Foo[] BARS = { { "bar", 42 }, null };);
  • resize() операциясына тұрақты массивтер үшін тыйым салынады;
  • Функция шақыруын void ((void)not_void_func();
  • GLib.Array элемент түрлеріне шектеу жойылды;
  • foreach() операторындағы бекітілген "иеленбейтін var" иелік мұрасы;
  • webkit2gtk-4.0-ге байланыстыру 2.33.3 нұсқасына жаңартылды;
  • gstreamer-ге байланыстыру git master 1.19.0+ нұсқасына жаңартылды;
  • gtk4-ке байланыстыру 4.5.0~e681fdd9 нұсқасына жаңартылды;
  • gtk+-3.0 үшін байланыстыру 3.24.29+f9fe28ce нұсқасына жаңартылды
  • Gio-2.0,glib-2.0 үшін байланыстыру 2.69.0 нұсқасына жаңартылды;
  • Linux үшін SocketCAN байланыстары қосылды;
  • 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, webkitbk-t үшін байланыстырулар түзетілді. кеңейтім-2, x4.0, zlib, gnutls;
  • gedit-2.20 және webkit-1.0 байланыстырулары жойылды;
  • GIR негізінде жаңартылған байлаулар;
  • Тестілеу жүйесіне құрылған C кодын тексеру мүмкіндігі қосылды;
  • Жақсартылған girparser, girwriter, valadoc, libvaladoc/girimporter;
  • Әртүрлі компилятор компоненттерінің жинақталған қателері мен кемшіліктері түзетілді.

Ақпарат көзі: opennet.ru

пікір қалдыру