Das Komitee, das die Entwicklung der GCC-Compiler (GCC Steering Committee) leitet, hat die Aufnahme eines Backends für WebAssembly in den GCC-Codebestand genehmigt. Diese Entscheidung betrifft die allgemeine Genehmigung der Bereitstellung des WebAssembly-Backends im GCC. Fragen zur Genehmigung der Implementierung und zur Annahme des übermittelten Codes wird das Team, das für die Überprüfung zuständig ist, gesondert klären.
Das Backend ermöglicht es, GCC zur Kompilierung von Quellcode in C/C++ in Intermediate Code für WebAssembly zu verwenden. Die Kompilierung in WebAssembly kann zur Integration in JavaScript-Projekte, zum Ausführen im Webbrowser, zur Nutzung in Node.js oder zur Erstellung von isolierten plattformübergreifenden Anwendungen, die mit WASM-Laufzeit ausgeführt werden, verwendet werden. Das Backend fungiert als Codegenerator, der den von den standardmäßigen GCC-Frontends vorbereiteten Intermediate Code nutzt, die den Quellcode in den unterstützten Programmiersprachen analysieren und spezifische Optimierungen bereitstellen.
Die für die Aufnahme in GCC vorgeschlagene Implementierung verwendet als externe Abhängigkeiten das Werkzeug wabt, die libc-Implementierung für WebAssembly (wasi-libc) und den Linker wasm-ld. Nicht alle geplanten Funktionen sind implementiert, beispielsweise fehlt die Unterstützung für Debugging-Informationen, Referenztypen, Tabellen, Ausnahmen, Strukturierungen und die Operationen setjump/longjump.
Quelle: opennet.ru
