The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выпуск транслятора языка программирования Vala 0.54.0

17.09.2021 18:30

Вышла новая версия транслятора языка программирования Vala 0.54.0. Язык Vala является объектно-ориентированным языком программирования, предоставляет синтаксис, подобный языкам C# или Java. Код на Vala транслируется в программу на языке C, которая, в свою очередь, компилируется штатным Си-компилятором в бинарный файл и выполняется со скоростью приложения, откомпилированного в объектный код целевой платформы. Имеется возможность запуска программ в режиме сценария. Язык развивается под эгидой проекта GNOME. В качестве объектной модели используется Gobject (Glib Object System). Код компилятора распространяется под лицензией LGPLv2.1.

В языке имеется поддержка интроспекции, лямбда-функций, интерфейсов, делегатов и замыканий, сигналов и слотов, исключений, свойств, ненулевых типов, выведения типов для локальных переменных (var). Управление памятью осуществляется на основании подсчёта ссылок. Для языка разработана библиотека обобщённого программирования libgee, предоставляющая возможность создания коллекций для пользовательских типов данных. Поддерживается перечисление элементов коллекций при помощи оператора foreach. Программирование графических программ осуществляется при помощи графической библиотеки GTK.

В комплекте поставляется большое количество биндингов к библиотекам на языке C. Транслятором Vala осуществляется поддержка языка Genie, который предоставляет аналогичные возможности, но с синтаксисом, вдохновлённым языком программирования Python. На языке Vala написаны такие программы как почтовый клиент Geary, графическая оболочка Budgie, программа организации фото- и видеофайлов Shotwell и другие. Язык активно используется при разработке дистрибутива Elementary OS.

Основные новшества:

  • Добавлена поддержка делегатов с переменным числом параметров;
  • Добавлен профиль LIBC, который является синонимом к профилю POSIX;
  • Доработана генерация в режиме профиля POSIX;
  • Добавлена возможность объявления переменных которые могут иметь нулевое значение с выведением типов (var?);
  • Добавлена возможность объявления классов запрещаемых для наследования (sealed);
  • Добавлен оператор безопасного доступа к полям класса, которые могут быть равными null (a.?b.?c);
  • Разрешена инициализация значением null содержимого структур (const Foo[] BARS = { { "bar", 42 }, null };);
  • Для константных массивов запрещена операция resize();
  • Добавлен вывод предупреждения при попытке приведения вызова функции к void ((void)not_void_func(););
  • Убрано ограничение на типы элементов GLib.Array;
  • Исправлено наследование прав владения "unowned var" в выражении foreach();
  • Биндинг к 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, webkit2gtk-web-extension-4.0, x11, zlib, gnutls;
  • Удалены биндинги gedit-2.20 и webkit-1.0;
  • Обновлены биндинги основанные на GIR;
  • В систему тестирования добавлена возможность проверки генерируемого C-кода;
  • Доработаны girparser, girwriter, valadoc, libvaladoc/girimporter;
  • Исправлены накопившиеся ошибки и недоработки различных компонентов компилятора.


  1. Главная ссылка к новости (https://gitlab.gnome.org/GNOME...)
  2. OpenNews: Обновление компилятора языка программирования Vala 0.50.4
  3. OpenNews: Выпуск компилятора для языка программирования Vala 0.50.0
  4. OpenNews: Выпуск экспериментальной версии транслятора языка программирования Vala 0.51.1
  5. OpenNews: Выпуск компилятора для языка программирования Vala 0.49.1
Автор новости: Совершенно другой аноним
Тип: Программы
Короткая ссылка: https://opennet.ru/55817-vala
Ключевые слова: vala
Поддержать дальнейшую публикацию новостей на OpenNET.


Обсуждение (57) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Hck3r (?), 00:34, 18/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    Поздравляю Гавра
     
  • 1.2, Qwerty (??), 00:49, 18/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –52 +/
    >транслируется в программу на языке C

    Понятно, закапывайте. Уж в 2k21 бы что-то в замшелый транслировать.

     
     
  • 2.13, Аноним (13), 05:52, 18/09/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Пориджи негодуют.
     
  • 2.19, asdasdasd (?), 09:31, 18/09/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Тогда можно 100% компилируемых языков закапывать, ибо они в машинные коды в итоге собираются.
     
  • 2.24, Аноним (24), 10:05, 18/09/2021 [^] [^^] [^^^] [ответить]  
  • +11 +/
    >Как же вы задолбали со своей тупизной...
     
     
  • 3.47, Аноним (47), 06:33, 19/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    ещё добавки попросишь. опеннеи без тупости - нонсенс
     
  • 2.30, Аноним (30), 12:12, 18/09/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > в 2k21

    Как оно там в 2210?

     
     
  • 3.48, ТотСамыйАноним (?), 06:52, 19/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ты никогда не слышал от бухгалтеров две второй (2002-ой год), две восьмой (2008-ой год)?

    Так же и тут. 2к21 - это две тысячи двадцать первый (2021-ый) год.

     
     
  • 4.49, n00by (ok), 07:30, 19/09/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Ты никогда не слышал от бухгалтеров две второй (2002-ой год), две восьмой
    > (2008-ой год)?
    > Так же и тут. 2к21 - это две тысячи двадцать первый (2021-ый)
    > год.

    Нет, тут не так. В данном формате литера "к" (от кило, 1000) является разделителем, подобно десятичной запятой. Это сокращённая запись 2,21 * 1000, т.е. именно 2210 год.

     
     
  • 5.50, vit (??), 08:21, 19/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, тут не так. В данном формате литера "к" (от кило, 1000) является заменителем слова "тысяча". Это сокращённая запись "две тысячи двадцатьодин, т.е. именно 2021 год.

    серьезно, ты решил придумать новые правила? и исправить интернет? ха!

     
     
  • 6.52, n00by (ok), 09:00, 19/09/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Этим правилам лет больше, чем некоторым пользователям, которые не имеют понятия, что такое резистор http://www.radiodetector.ru/kak-markirujutsya-rezistory/#i-2
     
     
  • 7.53, Аноним (53), 10:49, 19/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ты всерьёз сравниваешь запись года и маркировку резисторов? А зачем?
     
     
  • 8.54, n00by (ok), 11:01, 19/09/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Видите ли в чём дело Исходно запись 2К применительно к проблеме переполнения с... текст свёрнут, показать
     
     
  • 9.55, Аноним (53), 12:57, 19/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    citation needed ... текст свёрнут, показать
     
     
  • 10.56, n00by (ok), 13:02, 19/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Что тут needed , так это знать историю развития ЭВМ, а из неё термин диодно-ре... текст свёрнут, показать
     
     
  • 11.57, Аноним (53), 13:25, 19/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Нет оснований считать, что запись 2Knn придумали инженеры или какие-либо люди св... текст свёрнут, показать
     
     
  • 12.58, n00by (ok), 14:17, 19/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Не считайте, не говорите, никто Вас не заставляет это делать, как и вообще учить... текст свёрнут, показать
     
  • 2.34, Тот_Самый_Анонимус (?), 13:20, 18/09/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >Уж в 2k21

    Этому приколу по 2к скоро исполнится 22 года, а кого-то прёт до сих пор.

     
  • 2.38, Аноним (38), 19:47, 18/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А у вас как там, в репозитории есть 2kdater.js, который работает с новым форматом даты?
     
     
  • 3.39, Аноним (38), 19:50, 18/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Слишком сложно выразился. Имею в виду есть пакет, который делает замену второго символа?
     
  • 2.40, Аноним (38), 19:55, 18/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    И закопайте заодно всё оборудование, что у вас есть.
     
  • 2.63, Аноним (63), 12:57, 20/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Как и все ООП-языки Vala имеет промежуточную трансляцию.

    Транслятор C# генерирует промежуточное представление в CIL: https://www.ecma-international.org/publications-and-standards/standards/ecma-3
    А Vala в C, ну подумаешь. И у Java байткод стандартизирован. У Rust вроде как есть MIR для этого, но я не специалист по расту. Короче, это только С++ бомжи без стандартов, у которых всё не слава б-гу.

    Что такого особенного в использовании подмножества структурного языка вроде С для промежуточной трансляции?
    Что в 2021-ом году в школах перестали преподавать методы трансляции?

     
     
  • 3.65, n00by (ok), 15:31, 20/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    CFront Страуструпа транслировал в Си, как и легендарный Comeau https://en.wikipedia.org/wiki/Comeau_C/C%2B%2B (RIP).
     

  • 1.3, Аноним (3), 01:18, 18/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –11 +/
    а транслятор vala в rust есть?
     
     
  • 2.15, Аноним (15), 08:30, 18/09/2021 [^] [^^] [^^^] [ответить]  
  • +6 +/
    rust - небезопасный язык
     
  • 2.18, Аноним (18), 09:06, 18/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    можно настроить цепочку с с2rast
     
     
  • 3.21, Аноним (15), 09:34, 18/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А можно не заниматься ерундой и не применять rust. Если нужна экзотика всегда есть haskell
     
     
  • 4.26, Аноним (18), 10:08, 18/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >А можно не заниматься ерундой ...

    Вот это ты сморозил!!! Как это не заниматься !?

     
  • 3.29, Онаним (?), 11:28, 18/09/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    лучше с питона, p2rast
     
     
  • 4.43, Аноним (43), 21:46, 18/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    pytorust
     
  • 2.45, Аноним (43), 21:52, 18/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >а транслятор vala в rust есть?

    Лучше бы наоборот Rust2Vala

     
  • 2.51, tmplsr (?), 08:44, 19/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >а транслятор vala в rust есть?

    цепной квайн же, а не транслятор!

     

  • 1.5, Аноним (5), 02:16, 18/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > Управление памятью осуществляется на основании подсчёта ссылок

    Так как они решили проблему циклических ссылок?

     
     
  • 2.10, One More Аноним (?), 04:50, 18/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    просто кушают память и толстеют. Это же гномоподелие
     
  • 2.14, Совершенно другой аноним (?), 07:57, 18/09/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Добавили weak-pointers.
    https://wiki.gnome.org/Projects/Vala/ReferenceHandling
     

  • 1.16, Аноним (15), 08:34, 18/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Vala на столько удобный язык, что расширения для Gnome 3 пришлось писать на javascript.
     
     
  • 2.17, Аноним (17), 09:06, 18/09/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Пришлось писать и не умеют ни на чем другом писать немного разные вещи
     
     
  • 3.20, Аноним (15), 09:33, 18/09/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Пришлось писать и пришлось писать, потому что ни на чем другом не умеют, это одно и то же.
     
  • 3.23, Аноним (23), 10:03, 18/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Он про то, что фактической возможности писать расширения на Vala нет Хотя это очень странно что Gnome API не на базе GObject introspection, а гвоздями прибит к JS.
     
     
  • 4.27, n00by (ok), 10:43, 18/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Дополнение для браузера, позволяющее устанавливать расширения https://wiki.gnome.org/Projects/GnomeShellIntegrationForChrome

    Исполняющаяся на хосте часть написана на Python. Аналог на Vala вряд ли существенно сложнее. Если не нравится Си-подобный синтаксис, есть Genie, на котором почему-то не пишут. Но кому надо "экономить на спичках".

     

  • 1.22, Неуклюжий танцор (?), 09:56, 18/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >Вышла новая версия транслятора языка программирования Vala 0.54.0.

    "... а Маничкова, [который] написал книгу 'Двадцать лет в оффсайте', читал?"
    - М. Жванецкий, "Давно ли я в футболе?"

     
     
  • 2.28, Ordu (ok), 11:07, 18/09/2021 [^] [^^] [^^^] [ответить]  
  • –7 +/
    Жванецкий, вроде, клоуном работал, а не футболистом, не?
     

  • 1.25, Аноним (24), 10:06, 18/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Красота! Спасибо!
     
     
  • 2.35, Anon2 (?), 17:19, 18/09/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Подстажите как с помощью Vala написать Gui приложение, которое содержит компонент с прокручивающимся списком, в котором можно привычно использовать прокрутку, а не заниматься пиксельхантингом с произвольно закрывающейся областью прокрутки?
    GtkListView не предлагать, последнее это о нем
     
     
  • 3.46, Ivan_83 (ok), 02:45, 19/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Посмотрите исходники gitg, у меня там нет проблем с прокруткой.
     
     
  • 4.67, ммнюмнюмус (?), 17:03, 20/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Самый тормозной git gui из всех стоящих у меня на компе (и единственный на gtk, в остальных tk, qt или ncurses).
     

  • 1.36, Аноним (-), 17:49, 18/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Один из немногих языков программирования для людей.
     
  • 1.37, Аноним (37), 19:46, 18/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Язык действительно годный, и по концепции и по синтаксису. Будет очень смешно, если rust со временем загнётся, а vala тихо и не заметно, займёт его нишу.
     
     
  • 2.44, Аноним (43), 21:50, 18/09/2021 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Смущает только это: "Язык развивается под эгидой проекта GNOME". А то потом решат, что в языке есть что-то лишнее и начнут выпиливать.
     
  • 2.59, Аноним (-), 18:23, 19/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Решил взглянуть, споткнулся вот обо что: However, to define or refer to an identifier with a name that either starts with a digit or is a keyword, you must prefix it with the '@' character.

    Мне любопытно кто-нибудь из языкописателей уже додумался токенизировать исходник с минимальной классификацией токенов до скармливания синтаксическому анализатору? Легко могли бы объявлять переменные 123_xyz. Ну, или ближе к жизни, например 1_wire_read(), 1_wire_write()

     
     
  • 3.60, n00by (ok), 21:15, 19/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    В некоторых языках 1000_000 эквивалентно 1000000, при этом определённые буквы служат суффиксами для указания формата. Запись 1_e0 окажется двусмысленной, если же неоднозначность запретить, 1_c0 на её фоне плохо читается. Плюс к тому, вероятно, сложился стереотип, что идентификаторы не начинаются с цифры. В частности, в интерпретаторе Рефал я разрешил имена функций вида Ы? и ***, но про ведущие цифры почему-то не подумал. Переменные там могут "начинаться" с цифры, но перед именем обязателен префикс (определяет тип), т.е. выглядит как .1 или !2.
     
  • 2.61, burjui (ok), 00:39, 20/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Все языки со временем загибаются - когда-то это случится и с Rust, и даже с С. А вот то что Vala может занять его место - чушь, которую может сказать лишь человек, не видящий дальше синтаксиса. Языки совершенно разные по назначению и семантике. С тем же успехом Vala может попытаться занять нишу C или JavaScript.
     
     
  • 3.66, _ (??), 16:42, 20/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Пурген :)
    раст не загнётся, он не взлетит. Завезут убогим новую погремушку - и всё.
    А "С" наоборот, не загнётся ибо естественен и вечен. Ну как колесо. Всякие карапузики просто не ффтыкнули, что это ассемблер такой :) а не ЯП клепать залипухи и говносайтеги.
     
     
  • 4.68, Base64 (?), 09:33, 21/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    После последнего предложения все ci.yml на webpack/parcel/gulp загнулись, а у node_modules уменьшился размер. Язык так старались развивать, даже стандарт в 2015 обновили чтобы не var, а просто conts/let. Пора уже drop js вместе с dom, чтобы говносайтеги не парсить и переходить на dart :P
     
  • 2.62, Аноним (63), 12:55, 20/09/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    У этих языков совершенно разные области применения Когда вы разрабатываете GUI ... большой текст свёрнут, показать
     

  • 1.64, Аноним12345 (?), 14:28, 20/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чем бы дитя не тешилось
     
  • 1.69, Аноним (69), 18:45, 21/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    когда показали гном 3 я валу просто забросил и больше к ней не возвращался понимая, что гном умер.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:
    При перепечатке указание ссылки на opennet.ru обязательно



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2021 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру