[plt-scheme] macrophases

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Mon Apr 12 11:54:49 EDT 2004

At Wed, 7 Apr 2004 05:55:36 -0700, "Bradd W. Szonye" wrote:
> What do you do if you want to use MACRO-HELPER in both environments? Do
> you still need to use a separate module in that case?

Yes.

I remain convinced that separating the phases is best, even when trying
to accommodate a more traditional top level.

> >> What's special about LET[REC]-SYNTAX that adds more levels to the
> >> compile-run hierarchy?
> 
> > Nesting. A `let[rec]-syntax' form can appear in the right-hand side of
> > a `let[rec]-syntax' binding, which can itself appear in the right-hand
> > side of a `let[rec]-syntax' binding, etc.
> 
> I understand that they nest; however, I couldn't figure out how that
> adds to the compile-run hierarchy.

When compiling

 (let-syntax ([x (let-syntax ([x (let-syntax ([x (let-syntax ([x 8]) 
                                                    ....)])
                                     ....)])
                    ....)])
    ....)

the "8" lives at meta-meta-meta-compile time.

Matthew




Posted on the users mailing list.