Hello, > Seriously though, that seems like a good plan. I wonder what Noah’s > attempts at JITing the 2.0 bytecode would have achieved, though, if we > think of both JIT and the new VM as an “interim solution” before AOT > native compilation.
I can't remember the last email I sent about that, but I think I might have dropped the ball here, so let me say what the current status of the project was. The JIT compiler worked fine. You could JIT-compile a function and have Guile automatically run the JITted code. The real problem was writing the JIT compiler - the one I had only supported four instructions, because I just wanted to prove I could integrate it with the rest of Guile. I sent another email recently about different ways to make the JITter understand all of the bytecode, but at the time, I thought I would have to parse the C definition of the VM and generate the JITter from that in order for it to be merged into Guile. I never got over that hurdle. If we are willing to generate both the VM and the JITter from another source, it's possible that I could revive my old JIT branch. However, I'm still not sure if that's the best way there. Having the assembler written in Scheme gives you an easier path towards all-Scheme native compilation, which you'd probably want for an AOT compiler. Noah