Skip to content
  • Andy Wingo's avatar
    1b0c2822
    Move all boot syntax to (hoot core-syntax) · 1b0c2822
    Andy Wingo authored
    Previously I was trying to keep (hoot core-syntax) be just the primitive
    syntax, and then redefine everything as part of boot.  But that does
    have a downside that we don't have many primitives with which to define
    the derived syntax, and also that when we're compiling without the macro
    expander we are bloating the compilation unit with needless definitions.
    
    Instead there is a different way, which is to make the expander itself
    provide the environment for (hoot core-syntax).  In this way the
    definitions stay in one place, which is good for free-identifier=?, and
    we don't need to mutate those definitions in place.  For the core
    procedures, we also define a module, except there we can swap out their
    values using set!.
    
    So, this un-does some work.  On the other hand we define new (hoot
    gensym) and (hoot inline-wasm) modules.
    1b0c2822
    Move all boot syntax to (hoot core-syntax)
    Andy Wingo authored
    Previously I was trying to keep (hoot core-syntax) be just the primitive
    syntax, and then redefine everything as part of boot.  But that does
    have a downside that we don't have many primitives with which to define
    the derived syntax, and also that when we're compiling without the macro
    expander we are bloating the compilation unit with needless definitions.
    
    Instead there is a different way, which is to make the expander itself
    provide the environment for (hoot core-syntax).  In this way the
    definitions stay in one place, which is good for free-identifier=?, and
    we don't need to mutate those definitions in place.  For the core
    procedures, we also define a module, except there we can swap out their
    values using set!.
    
    So, this un-does some work.  On the other hand we define new (hoot
    gensym) and (hoot inline-wasm) modules.
Loading