Who, if we knew
What we receive, would either not accept
Life offered, or soon beg to lay it down.
The stage one compiler accepts its own source, identifies correctly, and can dump the AST to object files. This is great, since I was a bit worried it wouldn't be able to compile itself. (ML might run out of memory/stack space, you never know.)
On the top level, I can see the ML GC at work. Identify a few words, pause, identify, pause, identify, pause, ...
All is set to bootstrap, just need to fix the runtime.
Part of the stage zero compiler is a faithful, I should say: direct, translation of the operational semantics. So, I guess I can state that both operational semantics as the stage one compiler are in good shape.
Next steps: fix the linker/translation to C, as well as the bugs in the C runtime. Build a lot of small programs to test. Probably implement some small optimizations on the lambda terms. And then, ... one long, long, compile to bootstrap.
After that, conformance suits and some small fixes in the semantical analysis of stage one.