В GCC утверждено добавление бэкенда для WebAssembly
В GCC утверждено добавление бэкенда для WebAssembly Комитет, управляющий разработкой набора компиляторов GCC, одобрил включение в кодовую базу бэкенда для WebAssembly. Бэкенд в GCC — это компонент, который отвечает за генерацию кода для конкретной целевой платформы. В данном случае он позволяет компилятору GCC брать исходный код на языках C или C++ (которые обрабатывают штатные фронтэнды GCC), применять к нему оптимизации и выдавать на выходе промежуточный код, понятный для WebAssembly. При этом новая реализация опирается на внешние инструменты: * wabt — инструментарий для работы с WebAssembly; * wasi-libc — реализация стандартной библиотеки libc для WebAssembly; * wasm-ld — компоновщик. Это событие важно по нескольким причинам: * Альтернатива LLVM. Долгое время основным путём для компиляции в WebAssembly был инструментарий на базе LLVM (например, через Clang или Emscripten). Появление бэкенда в GCC даёт разработчикам, которые уже используют GCC для нативных сборок, ещё один вариант — не переключаться на LLVM, чтобы получить код для WebAssembly. * Расширение экосистемы. Поддержка в GCC может стимулировать использование WebAssembly за пределами браузера: в серверных средах, на edge-устройствах и в других сценариях, где нужен высокопроизводительный код. * Сигнал сообществу. Решение комитета показывает, что проект GCC видит потенциал в развитии WebAssembly и хочет играть в этой сфере более активную роль. Но следует отметить, что на момент одобрения бэкенд находился в ранней стадии разработки, и ряд ключевых функций ещё отсутствовал.Не вся запланированная функциональность реализована, например, отсутствует поддержка отладочной информации, ссылочных типов, таблиц, исключений, структуризации и операций setjump/longjump. Поэтому сейчас главная задача команды — постепенно закрыть эти пробелы в ходе рецензирования и доработки. Участники сообщества ждут, что по мере развития поддержки появится возможность оценить бэкенд в деле. Есть надежда, что если проект наберёт обороты, базовую поддержку включат в одну из следующих стабильных версий GCC — например, в GCC 17.1. В общем, это хороший знак для экосистемы: у разработчиков появляется больше инструментов, а конкуренция в инструментарии для WebAssembly только растёт. https://gcc.gnu.org/pipermail/gcc/2026-June/248353.html