Навсозии компилятори забони барномасозии Vala 0.50.4

Версияи нави компилятор барои забони барномасозии Vala 0.50.4 бароварда шуд. Филиали дастгирии дарозмуддат (LTS) Vala 0.48.14 (барои Ubuntu 18.04 бастабандишуда) ва филиали таҷрибавии Vala 0.51.3 низ нав карда шуданд.

Забони Vala забони барномасозии ба объект нигаронидашуда мебошад, ки синтаксиси шабеҳро ба C# ё Java таъмин мекунад. Gobject (System Object Glib) ҳамчун модели объект истифода мешавад. Идоракунии хотира аз ҷониби моликият (пайвандҳои соҳибӣ/беасос) ё бо истифода аз ARC (ҷойгузинии вайронкунандагон ва коҳиши ҳисобкунакҳои объекти истинод дар марҳилаи ҷамъоварӣ) амалӣ карда мешавад.

Забон барои интроспекция, функсияҳои ламбда, интерфейсҳо, вакилон ва пӯшиданҳо, сигналҳо ва слотҳо, истисноҳо, хосиятҳо, намудҳои ғайринул, хулосаи навъи тағирёбандаҳои маҳаллӣ дастгирӣ мекунад. Маҷмӯа бо шумораи зиёди пайвандҳо ба китобхонаҳои C (vala-girs, vala-extra-vapis) меояд. Барномаҳои Vala ба муаррифии Си тарҷума ва баъд аз ҷониби як компилятори стандартии C тартиб дода мешаванд.Ин имкон дорад, ки барномаҳоро дар реҷаи скрипт иҷро кунед.

Рӯйхати тағйирот:

  • Дастгирии иловагӣ барои калимаи калидии params барои созандагони синфи 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")] struct public PeopleInside : uint32 {}
    • Муносибати беҳтари атрибути "NoWrapper".
    • CCode.type_cname ва get_ccode_type_name() барои дарсҳо иҷозат дода шудаанд.
    • G_TYPE_INSTANCE_GET_CLASS/INTERFACE ҳамеша барои рамзҳои беруна истифода мешавад.
    • Барои ҷудо кардани GLib.Value дар теппа истифода бурда мешавад g_boxed_free.
    • Ихроҷи хотира ҳангоми кушодани ғайримустақими GLib.Value (контейнери универсалии ҳама гуна намуди арзиш) ислоҳ карда шуд.
    • Ҳангоми интиқоли сохтори аз теппа ҷудошуда ба стек ихроҷи хотира ислоҳ карда шуд.
    • Мероси вайронкунандаи сохтори волидайн таъмин карда мешавад
    • Ҷустуҷӯи дурусти symbol_reference аз ифодаҳои андӯхташуда такмил дода шуд.
    • Ҳама рӯйдодҳои дохилии CCodeCastExpression хориҷ карда шуданд.
    • Даъвати нодуруст ба коркардкунандаи сигнали пешфарз қатъ карда шуд.
    • Пайваст "string.h" барои strcmp () (профили POSIX, ҳолати дар он Vala тавлид коди танҳо бо истифода аз китобхонаи стандартии C).
  • Вала:
    • Муайянсозии мукаммали файлҳои сарчашмаи бастаи такрорӣ.
    • Майдонҳо/хосиятҳои GtkChild бояд бе моликият эълон карда шаванд.
    • Аз нав таъин кардани майдон/амволи GtkChild манъ аст.
    • Ҳангоми додани супориш ба ламбда шарти сахттар ҷорӣ карда шудааст.
    • Истифодаи сохторҳои SimpleType якдафъаина манъ аст.
    • Кушодани GLib.Value кафолат медиҳад, ки арзиши беасос баргардонида мешавад.
    • Гузаронидани GLib.Value ба сохтори беэътибор/намуди оддӣ манъ аст.
    • Тафтиши навъи аргумент дар шартҳои пешакии намудҳо/синфҳо/интерфейсҳо.
    • Гирифтани параметрҳо/тағйирёбандаҳои va_list манъ аст.
    • Ҷумлаҳои дорои нишоннамои сохтор бояд ҳангоми дастрас шудан ба намуди дуруст интиқол дода шаванд, то аз C UB канорагирӣ кунанд.
    • Натиҷаи навъи "дар" дар дохили enum амалӣ карда шуд.
    • Тафтиши контексти мукаммал барои супоришҳо ба майдони навишташаванда.
    • Дохил "stdlib.h" барои Enum.to_string() (POSIX).
    • 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, curses, alsa, bzlib, sqlite3, libgvc, posix, gstreamer-1.0, gdk-3.0, gdk-x11-3.0, gtk.3.0, gtk+ fuse, libxml-4
    • 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

Илова Эзоҳ