Нусхаи нави компилятор барои забони барномасозии Vala, версияи 0.50.4, бароварда шуд. Шохаи дастгирии дарозмуддат (LTS)-и Vala 0.48.14 низ навсозӣ шудааст (бастабандишуда барои... Ubuntu 18.04) ва шохаи таҷрибавии Vala 0.51.3.
Vala як забони барномасозии объектӣ мебошад, ки синтаксиси он ба C# ё Java монанд аст. Он ҳамчун модели объектии худ аз Gobject (Glib Object System) истифода мебарад. Идоракунии хотира аз ҷониби моликият (истиноди моликият/бе моликият) ё аз ҷониби ARC (деструктори вақти компилятсия ва коҳиши шумораи истинод) анҷом дода мешавад.
Ин забон таҳлили худ, функсияҳои лямбда, интерфейсҳо, намояндагон ва басташавӣ, сигналҳо ва слотҳо, истисноҳо, хосиятҳо, намудҳои ғайринуллӣ ва истинод ба намудҳои тағйирёбандаҳои маҳаллиро дастгирӣ мекунад. Шумораи зиёди пайвастшавӣ ба китобхонаҳои C (vala-girs, vala-extra-vapis) дохил карда шудаанд. Барномаҳои Vala ба намояндагии C тарҷума карда мешаванд ва сипас аз ҷониби компилятори дарунсохти C тартиб дода мешаванд. Барномаҳоро метавон дар ҳолати скрипт иҷро кард.
Рӯйхати тағйирот:
- Дастгирии иловагӣ барои калимаи калидии params барои конструкторҳо илова карда шуд class Foo{ public Foo(params string[] args){ foreach (var arg in args) print(arg); } }
- кодген:
- Дастгирии беҳтаршуда барои созандагони сохтори SimpleType (масалан, барои пайваст кардани typedef uint32_t people_inside; аз C истифода мешавад) [SimpleType] [CCode (cname = "people_inside")] public struct PeopleInside : uint32 {}
- Коркарди беҳтаршудаи атрибути "NoWrapper".
- Барои синфҳо, CCode.type_cname ва get_ccode_type_name() иҷозат дода шудаанд.
- Ҳамеша барои аломатҳои беруна аз G_TYPE_INSTANCE_GET_CLASS/INTERFACE истифода баред.
- Барои ҷудо кардани GLib.Value дар тӯда аз g_boxed_free дар free-wrapper истифода шуд.
- Ислоҳи ихроҷи хотира ҳангоми кушодани пинҳонии GLib.Value (контейнери универсалии ҳама гуна арзиш).
- Ҳангоми интиқол додани сохтори ҷудошудаи тӯда ба стек, ихроҷи хотира ислоҳ карда шуд.
- Меросгирии деструктори сохтори волидайнро таъмин мекунад
- Бозёфти дурусти symbol_reference-и ифодаҳои партофташудаи дохилӣ ислоҳ карда шуд.
- Ҳамаи рӯйдодҳои дохилии CCodeCastExpression нест карда шуданд.
- Даъвати нодурусти коркардкунандаи сигнали пешфарз ислоҳ карда шуд.
- Пайвастшавии "string.h" барои strcmp() (профили POSIX, режиме, ки дар он Vala рамзро танҳо бо истифода аз китобхонаи стандартии C тавлид мекунад).
- Вала:
- Ошкоркунии беҳтаршудаи файлҳои такрории сарчашмаи бастаҳо.
- Майдонҳо/хусусиятҳои GtkChild бояд ҳамчун моликияти ғайриманқул эълон карда шаванд.
- Аз нав таъин кардани майдон/хусусияти GtkChild манъ аст.
- Ҳангоми супоридани супориш ба лямбда шарти сахттар татбиқ шудааст.
- Истифодаи сохторҳои якдафъаинаи SimpleType манъ аст.
- Дар қуттии кушодани GLib.Value, арзиши бегона баргардонида мешавад.
- Пахш кардани GLib.Value ба як навъи сохтори nullable/simple манъ аст.
- Санҷиши аргументҳои навъ дар шартҳои пешшарти намудҳои асосӣ/синф/интерфейс илова карда шуд.
- Сабти параметрҳо/тағйирёбандаҳои va_list манъ аст.
- Файлҳои генерикӣ, ки нишондиҳанда ба сохтор доранд, ҳангоми дастрасӣ бояд ба намуди дуруст партофта шаванд, то аз C UB канорагирӣ кунанд.
- Иҷрои хулосаи навъи "дар" дар дохили enum.
- Санҷиши беҳтаршудаи контекст ҳангоми таъин кардан ба майдони навишташаванда.
- "stdlib.h" барои Enum.to_string() (POSIX) пайваст карда шуд.
- Барои тағирёбандаҳои норавшани "this" ва "result" source_reference-и дурустро муқаррар кунед
- Барои операнди дохилии нодурусти ифодаҳои яктарафа паёми хатогӣ бароварда шуд.
- Рамзнавис: Илова кардани аломати ";" пас аз бадани WithStatement қатъ карда шуд.
- Гирпарсер:
- Коркарди намояндаи беном, ки бо усули виртуалӣ ё сигнал дастгирӣ намешавад, таъмин карда шудааст.
- Метамаълумоти "delegate_target" ба усулҳо ва параметрҳо татбиқ карда шудааст.
- Метамаълумоти "destroy_notify_cname"-ро ба майдонҳо татбиқ кард
- Метамаълумоти "type_get_function" ба синфҳо ва интерфейсҳо татбиқ карда шудааст.
- Агар CCode.type_cname-ро барои синфҳо муқаррар кунед, агар он бо арзиши пешфарз мувофиқат накунад.
- girwriter: Навиштани унсурҳои параметрҳои мисолро таъмин мекунад.
- girwriter: Натиҷаи коркардкунандаи сигнали пешфарз амалӣ карда шуд.
- libvaladoc/html: Ҷобаҷогузории майдонҳои сохторӣ барои нигоҳ доштани тартиби аслии онҳо ҳангоми тавлиди ҳуҷҷатҳои HTML барои valadoc.org хориҷ карда шуд
- libvaladoc: Боварӣ ҳосил карда шуд, ки арзишҳо барои Api.Class.is_compact дуруст гирифта шудаанд
- libvaladoc: Печонидани китобхонаи graphviz "agedge" илова карда шуд
- Пайвандҳо:
- Ислоҳи ночиз барои тавлиди ҳатмӣ: cairo, gobject-2.0, pango, goocanvas-2.0, лаънатҳо, alsa, bzlib, sqlite3, libgvc, posix, gstreamer-1.0, gdk-3.0, gdk-x11-3.0, gtk-x4-3.0, gtk+-t2.0.use, f-tlib.
- gdk-pixbuf-2.0: Ислоҳи Pixbuf.save_to_streamv_async()
- gio-2.0: Ислоҳи PollableOutputStream.write*_nonblocking() пайвастшавӣ
- gio-2.0,gtk+-3.0,gtk4: Атрибутҳои возеҳи навъи c-и параметрҳои va_list партофта шуданд
- gio-2.0: Даъвогари гумшуда барои баъзе усулҳои AppInfo/File.*() интихоб шудааст
- glib-2.0: Усулҳои қулайи GLib.[S]List.is_empty() барои ғайри сифр илова карда шуданд
- glib-2.0: Пайвасткунии функсияи assert_cmp* [#395]
- glib-2.0: Навъи майдони OptionEntry.flags-и беҳтаршуда
- glib-2.0: PtrArray ҳоло зерсинфи GenericArray аст
- gstreamer-1.0: CCode.type_id-и MiniObject ба G_TYPE_BOXED муқаррар шудааст [#1133]
- gtk+-2.0,javascriptcoregtk-4.0: Истифодаи ислоҳшудаи атрибути CCode.type_cname
- gtk+-3.0,gtk4: Баъзе арзишҳо ва параметрҳои баргардонидани намояндагон ислоҳ карда шуданд
- gtk4: Ба версияи 4.0.2 навсозӣ карда шуд.
Манбаъ: opennet.ru
