Investigate browser-local WebAssembly constraints
Archived MVP specification. For ASPL 0.7.0, see the current reference and native HTTP guide.
Type: research Status: resolved Parent: Find the ASPL MVP specification
Question
What constraints do current primary WebAssembly and C-to-WebAssembly toolchain documentation impose on compiling the C11 ASPL compiler and register VM for browser-local compilation and execution, especially filesystem behavior, dynamic loading, process APIs, output size, worker use, and isolation?
Answer
Compile the portable C compiler core and register VM ahead of time into one statically linked WebAssembly module, then run it in a dedicated Web Worker. Use in-memory source and bytecode APIs, stay single-threaded, and enforce instruction, memory, output, recursion, and wall-clock limits. The browser build must omit ELF execution, process APIs, and arbitrary C library loading; Emscripten dlopen handles WebAssembly side modules, not Linux shared objects. Keep the host import list fixed and small because WebAssembly isolates the module from the browser but does not stop unsafe C code from corrupting other objects inside the module's linear memory.
See Browser-local WebAssembly constraints for the ASPL MVP for the cited findings and prototype checks.