This is the demo for my CppCon 2019 talk! You can view the talk on youtube
Thing should work, but it's still very much alpha demoware. Go to https://binji.github.io/wasm-clang to see it in action.
Most of the JavaScript code can be found here. If you're interested in the implementation of the in-memory filesystem, take a look at https://github.com/binji/llvm-project/tree/master/binji.
Some notes on how I built this, sorry that they are relatively sparse: https://gist.github.com/binji/b7541f9740c21d7c6dac95cbc9ea6fca
clang
: clang compiler, compiled to wasm w/ WASIlld
: lld linker, compiled to wasm w/ WASImain
.cssmemfs
: WASI implementation of in-memory filesystem,shared.js
: shared utilities for all tools (web and d8)shared_web.js
: shared utilities for all web tools (asm.html, index.html, etc.)sysroot.tar
: C++ standard headers and librariesservice_worker.js
: Service worker used by all web pagesworker.js
: Dedicated work used to compile/run
6502.html
6502.js
vasm6502_oldstyle
: vasm assembler compiled to wasm w/ WASI
asm.html
asm.js
d8.js
index.html
web.js