Hi, We have a bit too much on our plates ATM to think about native compilation. However, "what's the plan" is a common question. So here is a tentative plan. Sometime after 2.2 settles down would be the time to look at it. It would probably be Guile 3.0. Dunno.
The way to do it is to refactor compile-rtl.scm / assembler.scm / disassembler.scm to emit and disassemble native code instead. We get to keep lots of parts of the existing compiler though: the ELF linker, the constant allocator, all the metadata-related things (both on the compiler and runtime side). In this way it's a less brusque change than the one from the stack VM to the RTL VM. A first crack at the problem would not do register allocation and would just emit code for each VM op. Later we could do proper register allocation. It's probably easiest to have a native-only system rather than a mixed native+VM system, as that way you would just have one stack. We'd keep the VM around of course -- it's just that a given build of Guile would either be VM-based or native, chosen at build-time. There's lots of stack-related questions to sort out. Anyway, that's a pseudoplan. Andy -- http://wingolog.org/