|
Комитет, управляющий разработкой набора компиляторов 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.
|