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. A