Профиль: Аноним (вход | регистрация) неRU opennet.me  
The OpenNET Project / Index page

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

В GCC утверждено добавление бэкенда для WebAssembly

15.06.2026 23:29 (MSK)

Комитет, управляющий разработкой набора компиляторов GCC (GCC Steering Committee), утвердил включение в кодовую базу GCC бэкенда для WebAssembly. Решение касается общего одобрения поставки WebAssembly-бэкенда в составе GCC. Вопросы утверждения реализации и принятия переданного кода будет отдельно решать команда, отвечающая за рецензирование.

Бэкенд позволит использовать GCC для компиляции исходного кода на языках C/C++ в промежуточный код WebAssembly. Компиляцию в WebAssembly можно использовать для интеграции с JavaScript-проектами, запуска в web-браузере, использования в Node.js или создания обособленных многоплатформенных приложений, запускаемых при помощи WASM runtime. Бэкенд выступает генератором кода, использующим промежуточный код, подготовленный штатными фронтэндами GCC, выполняющими разбор исходного кода на поддерживаемых языках программирования и предоставляющими специфичные для них оптимизации.

Предложенная для включения в GCC реализация использует в качестве внешних зависимостей инструментарий wabt, реализацию libc для WebAssembly (wasi-libc) и компоновщик wasm-ld. Не вся запланированная функциональность реализована, например, отсутствует поддержка отладочной информации, ссылочных типов, таблиц, исключений, структуризации и операций setjump/longjump.

  1. Главная ссылка к новости (https://gcc.gnu.org/pipermail/...)
  2. OpenNews: Релиз набора компиляторов GCC 16
  3. OpenNews: Одобрено включение в состав GCC фронтэнда для языка Алгол 68
  4. OpenNews: GCC-бэкенд достиг возможности полной раскрутки компилятора rustc
  5. OpenNews: Уязвимость в GCC, позволяющая обойти защиту от переполнения стека
  6. OpenNews: Фронтэнд для языка Rust доведён до готовности к интеграции в GCC 13
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/65695-gcc
Ключевые слова: gcc, webassembly
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (64) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 23:35, 15/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Ну нет, не верю, даже сюда этот рак пролез
     
     
  • 2.5, Фамилия (?), 00:02, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +14 +/
    А что плохого? Я, например, был бы рад, если бы в gcc был миллиард поддержанных бэкэндов на все случаи жизни. Это был бы идеальный компилятор.
     
     
  • 3.9, Аноним (9), 01:11, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +11 +/
    > А что плохого?

    Да ничего плохого - это обычная война местных уникумов против здравого смысла. Видят слово "веб" - и дальше все как в тумане.

    И ЧСХ, одновременно с этим жалуются на тормоза JavaScript.

     
     
  • 4.13, Аноним (1), 01:56, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Жаваскрипт не тормозит, если не пихать в браузер то, чего там быть не должно
     
     
  • 5.18, Аноним (18), 02:13, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Так жаваскрипта и не должно быть в браузере...
     
     
  • 6.21, Аноним (9), 02:36, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Так жаваскрипта и не должно быть в браузере...

    Но он там  почему-то все-таки есть. Интересно, почему? 🤔

    А еще интересней, почему местные воины против JS до сих пор не пересели на Links/Dillo, где действительно нет JS - и вместо этого продолжают лицемерно юзать Firefox/Chrome?

     
     
  • 7.34, Аноним (34), 09:27, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Но он там  почему-то все-таки есть. Интересно, почему? 🤔

    люди в принципе известны тем, что пихают всё подряд куда не надо. Медики соврать не дадут

    > А еще интересней, почему местные воины против JS до сих пор не пересели на Links/Dillo, где действительно нет JS - и вместо этого продолжают лицемерно юзать Firefox/Chrome?

    с волками жить… а поныть это святое

     
  • 7.39, Аноним (1), 10:45, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Какой смысл тебе что-то объяснять, если ты элементарных вещей не понимаешь?
     
     
  • 8.65, Аноним (9), 18:50, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А разве я тебя просил что-то мне объяснять Мне-то как раз понятно, что персонаж... текст свёрнут, показать
     
  • 7.68, анонимс (?), 19:32, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Хром скора всё - Гугель выпиливает со следующей мажорной версии все расширения блокираторы рекламы
     
  • 6.72, Ык (?), 20:20, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Чем не не нравистся JS -  он позволяет писать плохие программы. И ещё он обязательный для браузера. Хочешь делать что то под веб - используй JS.


    WebAssembly - это возможность писать для браузера на удобном тебе языке.

     
  • 5.19, Аноним (9), 02:14, 16/06/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 5.23, Аноним (9), 02:51, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > не пихать в браузер то, чего там быть не должно

    А где можно почитать о том, что "должно" / "не должно" быть в браузере?

     
     
  • 6.38, q (ok), 10:34, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Почитать можно в Полном собрании сочинений экспертов Опеннета.
    Не понимают чувачки, что веб изначально планировался интерактивным.
    Даже неяваскриптовая гиперссылка (<a>) противоречит концепции "просто читалка статей".
     
  • 5.36, Джон Титор (ok), 10:00, 16/06/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 4.14, Аноним (14), 02:01, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Да, дело не в борьбе с web, а в том, что это уже было тыщу раз. Начиналось все с всяких там Java, а потом пошло поехало .NET, NodeJS с его JIT, Python в котором тоже байткод под который, а там порсредине затесался Silverlight, а потом была еще Macromedia Flash. А там посреди были сервлеты и т.д. каждый раз это выдавали всем как универсальное решение спасущее человечество от ... медленного браузера и позволяющего выполнять программы на целевой машине... и вот где сегодня все эти решения?
     
     
  • 5.20, Аноним (9), 02:18, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Начиналось все с всяких там Java, а потом пошло поехало .NET, NodeJS с его JIT, Python

    Смешались в кучу кони, люди... Вот поэтому вы и воюете против WebAssembly и всего, где есть словов "веб" - потому что для вас это "что-то типа то ли Java, то ли JavaScript - но я не уверен".

     
  • 5.48, funny.falcon (?), 12:27, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Если бы Apple не забанил Flash в iPad/iPhone, он продолжал бы оставаться доминирующей платформой.

    За Apple последовал Chrome. А потом и остальные.

    Формальная причина: уязвимости. И возможно, это справедливая причина. Но при желании Apple могла и выкупить Flash и починить его. Но желания не было.

     
  • 4.44, Сладкая булочка (?), 11:26, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > одновременно с этим жалуются на тормоза JavaScript.

    А ты опровергни.

     
  • 3.12, Nameh (?), 01:50, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Нет, потому что долже быть KISS
     
     
  • 4.22, Аноним (9), 02:42, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Нет, потому что долже быть KISS

    А что такое KISS в контексте компилятора?

    Это типа когда поешь про прелести TCC, а на деле лицемерно юзаешь C++-монстров GCC/Clang, ибо хочется оптимизированный код и поддержку платформ?

     
  • 4.59, Аноним (59), 16:11, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну будет тебе KISS с одним только убогим С. И что с ним делать? Даже рабочий стол не собрать.
     
  • 3.32, Аноним (32), 08:14, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Компилятор Zig посмотрите: Zig has excellent, out-of-the-box support for compiling to WebAssembly (Wasm) without requiring heavy runtimes or external dependencies.
     
     
  • 4.49, funny.falcon (?), 12:28, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Потому что Zig использует LLVM. Это LLVM умеет в WebAssembly
     
     
  • 5.67, Аноним (67), 19:09, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Кто же std перепишет? LLVM-IR?
     
  • 5.69, анонимс (?), 19:34, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    rustc также использует llvm на c++, но не спасает т.к. компиляция крайне тормозная из-за макросов, проверок заимствований.
     
     
  • 6.73, Аноним (73), 20:49, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > rustc также использует llvm на c++, но не спасает т.к. компиляция крайне тормозная из-за макросов

    Макросы компилятся быстрее плюсовых шаблонов.

    > проверок заимствований.

    А это вообще в один проход делается бесплатно.

     
  • 3.43, _kp (ok), 11:11, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >>А что плохого?

    Плохо что каждый следующий gcc тормознее предыдущего. А в остальном всё хорошо, как никогда.

     
  • 3.62, slavanap (?), 16:29, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Важное замечание - целиком и полностью поддержанных бэкендов
     
  • 3.66, Аноним (66), 18:53, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Еретик! Всё, кроме божественной сишечки, удалить! Ну и фортран оставить можно.
     

  • 1.2, Аноним (2), 23:39, 15/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    еще б интеграцию AI агентов добавить gcc
     
     
  • 2.7, aname (ok), 00:36, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Это как?
     
     
  • 3.8, 12yoexpert (ok), 00:44, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +9 +/
    да как угодно, лишь бы было написано AI, блокчейн и IoT
     
     
  • 4.15, Аноним (15), 02:02, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Ещё бигдата и машынлёрнинг.
     
     
  • 5.31, Аноним12345 (?), 07:47, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    мышинлернинг
     
  • 4.25, Аноним (25), 03:00, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А раст? А РАСТ?!
     
     
  • 5.26, Аноним (9), 03:02, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> 12yoexpert (ok)
    >> да как угодно, лишь бы было написано AI
    > А раст? А РАСТ?!

    А Раст у него уже и так есть в Firefox и андроидном смартфончике. Вместе с AI, кстати.

     
  • 5.30, Аноним (30), 07:17, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Таки gccrs уже делается.
     
  • 3.53, вдцлсоцжтчфлыь (?), 14:46, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    вместо фронтенда для какого-нибудь языка программирования сделать фронтенд для, например, английского или русского. ты ему описание, он тебе программу.
     
     
  • 4.64, я (?), 18:07, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    claude.ai
     
  • 2.33, Аноним (33), 08:53, 16/06/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.55, Соль земли2 (?), 15:53, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Сначала gcc переписать с помощью агентов.
     
  • 2.61, Аноним (59), 16:19, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    AI-агентам место в IDE, а не в компиляторе.
     

  • 1.4, Аноним (4), 23:55, 15/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ядро Линукс уже можно собрать и под nodejs запустить или ещё нет?
     
     
  • 2.16, Аноним (16), 02:11, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Под WASM - можно запустить и в v86, без пересборки. А ещё там на оффсайте подборка интересная, не только Linux, но и Windows 95, и ещё всякое поэкзотичнее.
     
  • 2.24, Аноним (-), 02:51, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В AUR посмотри должно быть. Там от nodejs недавно столько обновлений всем прилетело.
     
  • 2.29, Аноним (29), 06:50, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    https://opennet.ru/64163-kernel - Представлен порт ядра Linux для WebAssembly, запускаемый в браузере
     
  • 2.50, funny.falcon (?), 12:30, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Фабрис Беллар запускал Linux в браузере больше 10 лет назад
     
     
  • 3.74, Аноним (66), 21:51, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Он запускал x86-ядро в x86-эмуляторе.
     

  • 1.17, Аноним (16), 02:12, 16/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Надо. Для WASM движки есть небольшие, можно встраивать туда-сюда. Но чтобы что-то скомпилировать - ставить каждый раз этот emscripten вместе с завязками на всю LLVM-требуху, обязательно в САМОЙ НОВОЙ ВЕРСИИ, очень задалбывает.
     
  • 1.35, Джон Титор (ok), 09:56, 16/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Есть реверс-прокси сервера с wasm в качестве middleware. Это удобно.
    Вот например:
    - https://github.com/envoyproxy/envoy
    - https://github.com/caddyserver/caddy
    - https://github.com/apache/apisix
    - https://github.com/Kong/ngx_wasm_module
    - https://github.com/lopatnov/conduit
     
  • 1.42, Аноним (42), 11:03, 16/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Учитывая, что актуальный GCC собирают даже для DOS... Мы получим JavaScript под Досом? O_o
     
     
  • 2.46, Аноним (46), 12:16, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нет же. WebAssembly != JS. Вообще даже рядом не стояли.
     
     
  • 3.63, Аноним (63), 17:36, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >Вообще даже рядом не стояли.

    Вообще-то стояли. Стек и система вызовы функций в WASM из JS. То есть никакого pop eax, push eax, push "myfunc from 0x%08x", call [_libc_ptr_printf]. У кода принципиально нет указателя и невозможно прямо в WASM размотать стек при исключении. То есть любой импорт через Ж...С. Ах да, это урезанный JS стек, через него можно передавать только тип Digit, никаких String, Array или Object, не говоря уже о более строгой типизации. Куцее убожество, по сравнению с которым даже Java прекрасна.

     
  • 2.47, Аноним (46), 12:20, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Выучи матчасть что ли. Для запуска WASM'a нужна виртуальная машина под дос. А вот компилировать в WASM-байткод через GCC можно будет из любой ОС.
     
  • 2.71, Аноним (71), 20:19, 16/06/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.45, Сладкая булочка (?), 11:29, 16/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Предложенная для включения в GCC реализация использует в качестве внешних зависимостей инструментарий wabt

    хорошо, что не реализацию на расте от альянса

     
  • 1.51, Вечный Странник (?), 12:46, 16/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ожидаем с радостью!
     
  • 1.52, Александр (??), 13:56, 16/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    На самом деле это хорошая новость  особено вовремя множество различных платформ начиная от x86 заканчивая MIPS или e2k, ну а остальным кто не доволен рекомендую придумать свое решение для данной проблемы.
     
  • 1.56, Аноним (59), 15:58, 16/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > реализацию libc для WebAssembly (wasi-libc)

    Было бы лучше, если бы GLibc можно было бы в WASM скомпилять.

     
     
  • 2.57, Аноним (59), 16:05, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > и компоновщик wasm-ld

    Тут, надеюсь, что разрабочики GNU Binutils тоже подсуетятся.

     

  • 1.58, Аноним (58), 16:06, 16/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Вообще хорошо что поддержка WASM приходит во все инструменты. Хоть что-то наконец заменит JVM, LuaC, CPython и другие виртуальные машины...
     
     
  • 2.60, Аноним (59), 16:18, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    CPython, говорите? Ну представляю себе интерпретатор CPython, скомпилированный в WASM.
     

  • 1.70, анонимс (?), 19:36, 16/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    WASM не только для браузеров, но и IoT, серверов, везде где нужна пЯсочница
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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