Komitet zarządzający rozwojem zestawu kompilatorów GCC (GCC Steering Committee) zatwierdził włączenie backendu dla WebAssembly do bazy kodu GCC. Decyzja dotyczy ogólnej akceptacji dostawy backendu WebAssembly w składzie GCC. Kwestie zatwierdzenia realizacji i przyjęcia przesłanego kodu będą osobno rozstrzygane przez zespół odpowiedzialny za recenzowanie.
Backend umożliwi użycie GCC do kompilacji kodu źródłowego w językach C/C++ do kodu pośredniego WebAssembly. Kompilacja do WebAssembly może być wykorzystana do integracji z projektami JavaScript, uruchamiania w przeglądarkach internetowych, użycia w Node.js lub tworzenia odizolowanych aplikacji wieloplatformowych, uruchamianych za pomocą środowiska wykonawczego WASM. Backend działa jako generator kodu, który wykorzystuje kod pośredni przygotowany przez standardowe frontend'y GCC, które analizują kod źródłowy w obsługiwanych językach programowania i dostarczają specyficzne dla nich optymalizacje.
Proponowana do włączenia w GCC realizacja korzysta jako zależności z narzędzia wabt, implementacji libc dla WebAssembly (wasi-libc) oraz linkera wasm-ld. Nie wszystkie zaplanowane funkcjonalności zostały zrealizowane, na przykład brakuje wsparcia dla informacji debugowania, typów referencyjnych, tabel, wyjątków, strukturyzacji oraz operacji setjump/longjump.
Źródło: opennet.ru
