Il comitato che gestisce lo sviluppo del set di compilatori GCC (GCC Steering Committee) ha approvato l'inclusione nel codice sorgente di GCC di un backend per WebAssembly. La decisione riguarda l'approvazione generale della fornitura del backend WebAssembly come parte di GCC. Le questioni relative all'approvazione dell'implementazione e all'adozione del codice trasmesso saranno risolte separatamente dal team responsabile della revisione.
Il backend consentirà di utilizzare GCC per compilare il codice sorgente in linguaggi C/C++ in codice intermedio WebAssembly. La compilazione in WebAssembly può essere utilizzata per l'integrazione con progetti JavaScript, per l'esecuzione nei browser web, l'uso in Node.js o per la creazione di applicazioni multi-piattaforma isolate eseguite tramite il runtime WASM. Il backend funge da generatore di codice, utilizzando codice intermedio preparato dai frontend standard di GCC, che analizzano il codice sorgente nei linguaggi di programmazione supportati e forniscono ottimizzazioni specifiche per essi.
L'implementazione proposta per l'inclusione in GCC utilizza come dipendenze esterne l'insieme di strumenti wabt, l'implementazione di libc per WebAssembly (wasi-libc) e il linker wasm-ld. Non tutte le funzionalità pianificate sono implementate; ad esempio, manca il supporto per informazioni di debug, tipi di riferimento, tabelle, eccezioni, strutturazione e operazioni setjump/longjump.
Fonte: opennet.ru
