[plt-scheme] macro-generating macros and the bizarre properties of syntax-local-get-shadower

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Mon May 14 21:46:10 EDT 2007

At Mon, 14 May 2007 21:38:39 -0400 (EDT), Dimitris Vyzovitis wrote:
> On Tue, 15 May 2007, Matthew Flatt wrote:
> 
> > I looks like Ryan and I replied at about the same time. Read Ryan's
> > first, and then read mine as an elaboration of this paragraph in Ryan's
> > message:
> >
> > At Mon, 14 May 2007 18:19:58 -0400, Ryan Culpepper wrote:
> > > When this macro is called, it looks up the value associated with 'foo1':
> > > that's the number 1. Then it tries to turn it into an expression with
> > > that quasisyntax business. But doing it that way doesn't give it a
> > > '#%datum' binding, and that leads to the syntax error.
> 
> I understand the problem. I see it is an instance of the more general
> problem of meta-level transformer environments.

No, not at all. The `generate-temporaries' procedures returns
identifiers that have no initial context in any phase. That's not
because it has trouble importing bindings into various phases, but
because it cannot guess the context where you're going to use the
temporary identifiers.

Matthew



Posted on the users mailing list.