Whole-program compilation for native Guile
(hoot library-group) and (hoot compile) implement a form of whole-program compilation, in which multiple modules are composed into a single letrec*, which is then optimized and compiled to a single output. We produce Wasm in hoot, but we could instead produce a .go file for native Guile, and this would be a way to provide value to upstream Guile while also offloading maintenance cost for the library-group facility. Eventually this should also allow for a form of static linking, in which we can ship a single binary for a Guile program.
This issue is to collect thoughts on an implementation and upstreaming strategy.