O comitê que gerencia o desenvolvimento do conjunto de compiladores GCC (GCC Steering Committee) aprovou a inclusão de um backend para WebAssembly na base de código do GCC. A decisão refere-se à aprovação geral da entrega do backend de WebAssembly como parte do GCC. As questões relacionadas à aprovação da implementação e aceitação do código enviado serão tratadas separadamente pela equipe responsável pela revisão.
O backend permitirá que o GCC compile código-fonte em C/C++ para código intermediário WebAssembly. A compilação em WebAssembly pode ser usada para integração com projetos JavaScript, execução em navegadores da web, utilização em Node.js ou criação de aplicativos multiplataforma isolados, executados com o runtime WASM. O backend atua como um gerador de código utilizando código intermediário gerado pelos frontends padrão do GCC, que analisam o código-fonte nas linguagens de programação suportadas e oferecem otimizações específicas para elas.
A implementação proposta para inclusão no GCC usa como dependências externas a ferramenta wabt, a implementação da libc para WebAssembly (wasi-libc) e o vinculador wasm-ld. Nem todas as funcionalidades planejadas foram implementadas, por exemplo, a falta de suporte a informações de depuração, tipos de referência, tabelas, exceções, estruturação e operações setjump/longjump.
Fonte: opennet.ru
