El Comité que supervisa el desarrollo del conjunto de compiladores GCC (GCC Steering Committee) ha aprobado la inclusión en la base de código de GCC del backend para WebAssembly. La decisión se refiere a la aprobación general de la entrega del backend de WebAssembly como parte de GCC. El equipo encargado de la revisión tomará decisiones separadas sobre la aprobación de la implementación y la aceptación del código entregado.
El backend permitirá utilizar GCC para compilar código fuente en los lenguajes C/C++ a código intermedio de WebAssembly. La compilación a WebAssembly se puede usar para integrarse con proyectos de JavaScript, ejecutarse en navegadores web, utilizarse en Node.js o crear aplicaciones multiplataforma aisladas, que se ejecutan mediante un runtime de WASM. El backend actúa como generador de código, utilizando código intermedio preparado por los frontends de GCC, que analizan el código fuente en los lenguajes de programación compatibles y proporcionan optimizaciones específicas para ellos.
La implementación propuesta para incluir en GCC utiliza como dependencias externas las herramientas wabt, la implementación de libc para WebAssembly (wasi-libc) y el enlazador wasm-ld. No toda la funcionalidad planificada está implementada; por ejemplo, falta el soporte de información de depuración, tipos de referencia, tablas, excepciones, estructuración y operaciones setjump/longjump.
Fuente: opennet.ru
