>> Those willing to contribute a proper ahead-of-time compiler to GNU

>> guile could use the GNU CC libgccjit library which is part of the GCC

>> compiler.

>> https://gcc.gnu.org/onlinedocs/jit/

> 

>...and https://gcc.gnu.org/wiki/JIT

> 

>Indeed, it turns out that everyone using libgccjit is using it for

>ahead-of-time compilation, rather than jit-compilation.  Sorry about

>picking a bad name :)

 

Are we talking about implementing a ‘to machine code’ compiler for Guile, or about implementing an ‘AOT to machine code’? Guile already has the former – it has a JIT (bytecode -> machine code) for some systems.

 

For what it’s worth -- I never worked with libgccjit or with the JIT code of Guile:

 

I imagine a basic (POC) AOT approach for Guile would be to let it compile AOT – with the JIT implementation, except adjusted to be relocatable and to add relocation information. As far as I can tell, libgccjit does not seem to support relocations and doesn’t say anything about whether the results are position-independent or not (so not suitable fo AOT), though presumably there are ways around that given the existence of gccemacs.

 

Best regards,
Maxime Devos