6:18:39beachIn the current boot procedure, I am loading files containing source code into the different environments. But this is silly, because it means that all the macros used by some source file must exist in the environment into which the code of that source is loaded.
6:19:13beachNow that I have decided that the FASL format of SICL is the external version of the AST, I can load FASL files instead.
6:19:44beachThe advantage is that the macros don't have to exist and that they can instead be loaded from FASL files at some later point.
6:20:29beachFurthermore, I can generate those FASL files by using macro expanders in the form of host functions.
6:21:00beachI do need to have the SICL definitions of those macros, of course.
6:22:12beachBut I can imagine filling a single first-class global environment with all the standard macros that I need for compiling all the source code, then generating FASL files for all the SICL source code.
6:23:21beachThe, to load the FASL files into specific environments becomes a matter of defining the functions and the classes that are required at load time, like MAKE-INSTANCE, STANDARD-GENERIC-FUNCTION, etc.