Le comitĂ© responsable du dĂ©veloppement de la suite de compilateurs GCC (GCC Steering Committee) a approuvĂ© l'inclusion d'un backend pour WebAssembly dans la base de code de GCC. Cette dĂ©cision concerne l'approbation gĂ©nĂ©rale de la livraison du backend WebAssembly dans le cadre de GCC. Les questions d'approbation de la mise en Ćuvre et d'adoption du code transmis seront traitĂ©es sĂ©parĂ©ment par l'Ă©quipe chargĂ©e de la rĂ©vision.
Le backend permettra d'utiliser GCC pour compiler du code source dans les langages C/C++ en code intermĂ©diaire WebAssembly. La compilation en WebAssembly peut ĂȘtre utilisĂ©e pour l'intĂ©gration avec des projets JavaScript, l'exĂ©cution dans un navigateur web, l'utilisation dans Node.js ou la crĂ©ation d'applications multiplateformes autonomes fonctionnant grĂące Ă un runtime WASM. Le backend agit comme un gĂ©nĂ©rateur de code utilisant le code intermĂ©diaire prĂ©parĂ© par les frontends standards de GCC, qui analysent le code source dans les langages de programmation pris en charge et fournissent des optimisations spĂ©cifiques.
La mise en Ćuvre proposĂ©e pour inclusion dans GCC utilise comme dĂ©pendances externes l'outil wabt, l'implĂ©mentation de libc pour WebAssembly (wasi-libc) et le linker wasm-ld. Toutes les fonctionnalitĂ©s planifiĂ©es ne sont pas encore rĂ©alisĂ©es ; par exemple, le support des informations de dĂ©bogage, des types rĂ©fĂ©rencĂ©s, des tables, des exceptions, de la structuration et des opĂ©rations setjump/longjump est manquant.
Source : opennet.ru
