Cuando se trata de compilar código C/C++ a WebAssembly (WASM), las herramientas basadas en LLVM/Clang han dominado el espacio. Hace casi una década existió una propuesta para un back-end GCC para WebAssembly que finalmente nunca llegó a integrarse, y ahora hay una nueva propuesta para un back-end WebAssembly destinado al toolchain GNU.

Un desarrollador open-source publicó esta semana una serie de parches que introducen un nuevo back-end GCC para WebAssembly. La propuesta aún no recibió la aprobación del GCC Steering Committee, pero es la primera actividad en años de WASM dentro de GCC.

¿Qué falta para que el back-end sea utilizable?

El back-end se encuentra en etapas tempranas de desarrollo y carece de varias funcionalidades como los reference types de WASM, tables, excepciones, debug info, data sections y otras características. Aun así, ya está lo suficientemente avanzado para anunciarse en la lista de correo de parches de GCC.

Esta página de la wiki de GCC detalla los aspectos iniciales de este back-end junto con instrucciones para compilar el back-end GCC WebAssembly y los componentes WASM relacionados.

¿Qué tan grande es el patch set y cómo se está manejando?

La serie de parches para GCC en su forma actual ronda las tres mil líneas de código y se está tratando como un request for comments (RFC). Habrá que ver hacia dónde lleva esto y, después de todos estos años, si GCC finalmente terminará teniendo un back-end WASM y una alternativa viable al mundo WASM basado en LLVM.