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 котормочусу Genie тилин колдоону камсыз кылат, ал окшош мүмкүнчүлүктөрдү камсыз кылат, бирок Python программалоо тилинен шыктанган синтаксис менен. Geary электрондук почта кардары, Budgie графикалык кабыкчасы, Shotwell фото жана видео файлдарды уюштуруу программасы жана башкалар Vala тилинде жазылган. Бул тил Elementary OS бөлүштүрүүнү иштеп чыгууда активдүү колдонулат.

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

  • Параметрлердин өзгөрүлмө саны менен делегаттар үчүн кошумча колдоо;
  • POSIX профилинин синоними болгон LIBC профили кошулду;
  • POSIX профиль режиминде жакшыртылган муун;
  • Типтүү жыйынтык (var?) менен нөлдүк мааниге ээ боло турган өзгөрмөлөрдү жарыялоо мүмкүнчүлүгү кошулду;
  • Мурастоого тыюу салынган класстарды жарыялоо мүмкүнчүлүгү кошулду (мөөр басылган);
  • Класс талааларына коопсуз кирүү оператору кошулду, алар нөл болушу мүмкүн (a.?b.?c);
  • Түзүмдүн мазмунун нөлгө инициализациялоого уруксат берилген (const Foo[] BARS = { { "bar", 42 }, null };);
  • resize() операциясы туруктуу массивдер үчүн тыюу салынган;
  • Функция чакырыгын жокко чыгарууга аракет кылганда кошумча эскертүү чыгаруусу ((void)not_void_func();
  • GLib.Array элементтеринин түрлөрүнө чектөө алынып салынды;
  • foreach() билдирүүсүндөгү "ээликсиз var" менчик мурасы оңдолду;
  • webkit2gtk-4.0 менен байланышуу 2.33.3 версиясына жаңыртылган;
  • gstreamer менен байланыштыруу 1.19.0+ git master версиясына жаңыртылган;
  • 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, web-webk-2-t үчүн байланыштар оңдолду. кеңейтүү-4.0, x11, zlib, gnutls;
  • gedit-2.20 жана webkit-1.0 байланыштары алынып салынды;
  • GIR негизинде жаңыланган байланыштар;
  • Түзүлгөн С кодун текшерүү мүмкүнчүлүгү тестирлөө системасына кошулду;
  • Жакшыртылган girparser, girwriter, valadoc, libvaladoc/girimporter;
  • Ар кандай компилятордун компоненттеринин топтолгон каталары жана кемчиликтери оңдолду.

Source: opennet.ru

Комментарий кошуу