Обновление компилятора языка программирования Vala 0.50.4
Автор
Сообщение
news_bot ®
Стаж: 7 лет 2 месяца
Сообщений: 27286
Вышла новая версия компилятора для языка программирования Vala 0.50.4.
Также была обновлена ветка с долгосрочной поддержкой (LTS) Vala 0.48.14 (упаковывается для Ubuntu 18.04) и экспериментальная ветка Vala 0.51.3.
Язык Vala является объектно-ориентированным языком программирования, предоставляет синтаксис, подобный языкам C# или Java. В качестве объектной модели используется Gobject (Glib Object System). Управление памятью осуществляется по владению (owned/unowned ссылки) либо с помощью 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);
}
}
- codegen:
- Улучшена поддержка конструкторов SimpleType struct (например используется чтобы забиндить 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 для внешних символов.
- Использован g_boxed_free в free-wrapper для размещения GLib.Value в куче.
- Исправлена утечка памяти во время неявного анбоксинга GLib.Value (универсальный контейнер любого value типа).
- Исправлена утечка памяти во время перемещения heap-allocated структуры в stack.
- Обеспечено наследование деструктора родительской структуры
- Налажено правильное получение symbol_reference вложенных cast-выражений.
- Удалены все вложенные вхождения CCodeCastExpression.
- Прекращён некорректный вызов обработчика сигналов по умолчанию.
- Подключен "string.h" для strcmp() (POSIX профайл, режим при котором Vala генерирует код используя только стандартную С библитотеку).
- Vala:
- Улучшено обнаружение дубликатов исходных файлов пакетов.
- Поля/свойства GtkChild должны быть объявлены как unowned.
- Запрещено переназначения поля/свойства GtkChild.
- Применено более строгое условие для лямбды при делегировании назначения.
- Запрещено применеине одноразовых структур SimpleType.
- В GLib.Value unboxing обеспечен возврат unowned-зничения.
- Запрещено приведение GLib.Value к типу nullable struct/simple.
- Добавлена проверка аргументов типа в базовых типах/предусловий класса/интерфейса.
- Запрещён захват параметров/переменных va_list.
- Дженерики, содержащие указатель на структуру, должны быть приведены к нужному типу при доступе для избежания С UB.
- Реализован вывод типов для "in" внутри enum.
- Улучшена проверка контекста при присвоениях в поле writeable.
- Подключён "stdlib.h" для Enum.to_string() (POSIX).
- Установлен правильный source_reference для неявных переменных "this" и "result"
- Обеспечен вывод сообщения об ошибке для недопустимого внутреннего операнда унарных выражений.
- Сodewriter: Прекращено добавление завершающего ";" после тела WithStatement.
- Girparser:
- Обеспечена оработка анонимного делегата, не подкрепленного виртуальным методом или сигналом.
- Применены метаданные "delegate_target" для методов и параметров
- Применены метаданные "destroy_notify_cname" для полей
- Применены метаданные "type_get_function" для классов и интерфейсов
- Установлен CCode.type_cname для классов, если он не соответствует значению по умолчанию.
- girwriter: Обеспечена запись элементов параметров экземпляра.
- girwriter: Реализован вывод обработчика сигналов по умолчанию.
- libvaladoc/html: Убрана сортировка полей структур чтобы оставить их оригинальный порядок при генерации html документации valadoc.org
- libvaladoc: Обеспечено правильное получение значений для Api.Class.is_compact
- libvaladoc: Добавлен врапер для "agedge" библиотеки graphviz
- Биндинги:
- Мелкие исправления при генерации привязок:
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, gtk4,
fuse, libxml-2.0
- 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: Выбран отсутствующий invoker для некоторых методов AppInfo/File.*()
- glib-2.0: Добавлен GLib.[S]List.is_empty() convenience methods for non-null
- 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
===========
Похожие новости
Похожие новости:
- Выпуск экспериментальной версии транслятора языка программирования Vala 0.51.1
- Выпуск компилятора для языка программирования Vala 0.50.0
- Выпуск компилятора для языка программирования Vala 0.49.1
- Выпуск оконного менеджера i3wm 4.18 и панели LavaLauncher 1.6
- [Высокая производительность, Java, Софт] Пример реализации универсального REST сервиса (Avalanche — application framework for Java)
- [Высокая производительность, Java, Софт] Модель приложения (Avalanche — application framework for Java)
- [Высокая производительность, Java, Софт] Первое приложение (Avalanche — application framework for Java)
- [Rocksteady Studios | Batman: Arkham Knight] [NetherRealm Studios | Mortal Kombat XL] [Avalanche Studios | Mad Max] [Monolith | Middle-earth: Shadow of Mordor] [Supergiant Games | Bastion] [Supergiant Games | Transistor] [Supergiant Games | Pyre] [Namco Bandai Games | Tekken 7] [Infinity Ward | Call of Duty: Ghosts] [Infinity Ward | Call of Duty: Modern Warfare Remastered] [Sledgehammer Games | Call of Duty: Advanced Warfare] [High Moon Studios | Deadpool] [Mimimi Productions | Shadow Tactics: Blades of the Shogun] [Mandragora | Skyhill] [Irrational Games | System Shock 2] [Daedalic Entertainment | Deponia] [Iguana Entertainment | Turok: Dinosaur Hunter] Главные скидки недели: Batman: Arkham Knight, Tekken 7, Pyre, Mad Max и другие
- [Ninja Theory | Hellblade: Senua's Sacrifice] [Vicarious Visions | Crash Bandicoot N. Sane Trilogy] [IllFonic | Friday the 13th: The Game] [Guerrilla | Horizon: Zero Dawn] [EA DICE | Battlefield 1] [Rocksteady Studios | Batman: Arkham VR] [EA Sports | FIFA 17] [Ubisoft Montreal | Tom Clancy's Rainbow Six Siege] [Avalanche Studios | Just Cause 3] [EA DICE, Uprise | Star Wars: Battlefront (2015)] [Beenox, Treyarch, Mercenary Technology | Call of Duty: Black Ops III] [Psyonix, Inc. | Rocket League] [CD Projekt RED, CD Projekt RED Kraków | The Witcher 3: Wild Hunt] [Gearbox Software | Borderlands: The Handsome Collection] [Monolith Productions, Inc., Feral Interactive (Mac), Feral Interactive (Linux) | Middle-earth: Shadow of Mordor] [MachineGames | Wolfenstein: The New Order] [Rockstar North, Rockstar San Diego, Rockstar Leeds | Grand Theft Auto V] [Naughty Dog | The Last of Us] [Mojang, Markus (aka Notch) Persson, 4J Studios | Minecraft] Хлоя и Надин не стали самыми популярными девочками PlayStation Store в августе
- [Valve Corporation | Half-Life] [Valve Corporation | Half-Life 2] [Mehsoft | The Underground Man] [Nival Interactive | Блицкриг 2: возмездие] [Headfirst Productions | Call of Cthulhu: Dark Corners of the Earth] [Avalanche Studios | Mad Max] [Volition | Saints Row] [Kojima Productions | Metal Gear Solid 5: The Phantom Pain] [Omega Force | Warriors All-Stars] Прогулять первый звонок: великолепная семёрка игр, вышедших 1 сентября
Теги для поиска: #_vala
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 07-Май 01:19
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 7 лет 2 месяца |
|
Вышла новая версия компилятора для языка программирования Vala 0.50.4. Также была обновлена ветка с долгосрочной поддержкой (LTS) Vala 0.48.14 (упаковывается для Ubuntu 18.04) и экспериментальная ветка Vala 0.51.3. Язык Vala является объектно-ориентированным языком программирования, предоставляет синтаксис, подобный языкам C# или Java. В качестве объектной модели используется Gobject (Glib Object System). Управление памятью осуществляется по владению (owned/unowned ссылки) либо с помощью ARC(подстановка деструкторов и декрементов счетчиков ссылок объектов на этапе компиляции). В языке имеется поддержка интроспекции, лямбда-функций, интерфейсов, делегатов и замыканий, сигналов и слотов, исключений, свойств, ненулевых типов, выведения типов для локальных переменных. В комплекте поставляется большое количество биндингов к библиотекам на языке C (vala-girs, vala-extra-vapis). Программы на языке Vala транслируются в представление на языке C, а затем компилируются штатным компилятором для языка C. Имеется возможность запуска программ в режиме сценария. Список изменений:
=========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 07-Май 01:19
Часовой пояс: UTC + 5