Andy Wingo <wi...@pobox.com> skribis: > On Tue 07 Jan 2020 12:08, Ludovic Courtès <l...@gnu.org> writes: > >> Andy Wingo <wi...@pobox.com> skribis: >> >>> Concretely I would add a little part of the compiler to the Tree-IL >>> phase to serialize a bytecode for the "small" definitions in the module, >>> for declarative modules, both public and private (because public >>> definitions may alias private definitions). This would be stored as a >>> bytevector in an additional field of the module, and the program being >>> compiled would be transformed to initialize the "lto" field (placeholder >>> name) of the module, so that once the compiled module is loaded, we have >>> the inlinable bindings. I think this can be done compatibly. >> >> OK, sounds great. What are your thoughts about versioning that wire >> Tree-IL representation? > > It would be a little bytecode language, with its own versioning > considerations. It would need to have a translation to and from > Tree-IL, though not necessarily lossless. It would change only in > ABI-compatible ways, using the bytecode version of the Guile doing the > compilation as a proxy for what is OK to support.
I see, that makes a lot of sense to me. Thanks for explaining! Ludo’.