←back to thread

439 points david927 | 1 comments | | HN request time: 0.206s | source

What are you working on? Any new ideas which you're thinking about?
1. Findecanor ◴[] No.44428297[source]
Compiler back-end for WASM and more, but with the core at a slightly lower abstraction level than WASM and with a somewhat novel ABI.

To abstract around register file differences in different ISAs, I'm using SSA-form with spilling to a separate "safe stack". Enforces code-pointer integrity for security's sake (not unlike WASM) but extended also to virtual method tables.

"Partial-ISA migration" allows a program to run on multiple cores with slightly different ISA extensions. "Build-migration" is migration to another build of the same program in the same address space: Instead of trying to debug an optimised program, you would migrate it to a "debug-build" to attach a debugger. Or you could run a profiling build, compile a new build using the result and then migrate the running program to the optimised build: something that previously only JIT-compilers have done AFAIK.

I'm out of the research stage and at the stage of writing the first iteration of the main passes of the compiler, but now and then I've had to back-track and reread a paper on a compiler algorithm or refine the spec. It has taken a few years, and I expect it to take a few years more.