[racket-dev] syntax-property guards? (was: Re: The Stepper strikes again)

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Sat Aug 13 11:33:17 EDT 2011

FWIW, there is precedent for this kind of thing, namely the properties
that get added to syntax objects to tell check syntax about bindings
that aren't in the fully expanded program (and yeah, I know there is a
pending question about this; sorry I haven't had time to look into it
and straighten things out).

Syntax properties generally seem like a good vehicle for
languages/macros to communicate information to tools.


On Sat, Aug 13, 2011 at 10:22 AM, Matthias Felleisen
<matthias at ccs.neu.edu> wrote:
> On Aug 13, 2011, at 10:44 AM, John Clements wrote:
>> That is, the code for lazy racket contains the knowledge about which things should be hidden by the stepper.  I would argue, in fact, that this is the *right* place for such knowledge. In particular, suppose you're developing the lazy stepper, and you want to say, "this thing here is hidden." How do you point to a particular expansion? You want to make an annotation in the code for the expansion itself.  The alternatives I can think of are all hideously fragile, unless you go to some AOSD approach, but I think that this would wind up being even more verbose, and not substantially less fragile.
>> That is, I think that the "subtle problem" above is not actually a problem at all.
> Let me try to say what I understand out loud:
> 1. The existence of Stepper knowledge in the Lazy compiler creates a 'spiritual' dependency between the Lazy language and a tool in DrRacket (= Tool world). QUESTION: does this knowledge ever make sense outside of our tool suite? Could it be reused by a stack-tracing debuggger in a textual repl?
> 2. At the same time, this Tool knowledge is best injected into compilation just in case we want it. QUESTION: does some knowledge about Lazy compilation move into the Stepper if we don't inject the knowledge here?
> 3. I agree with John though I am actually hopeful that we can come up with a software architecture that eliminates the problem and isn't AOSD all the way. Is it possible to view this knowledge as a mixin that gets added to the Lazy compiler when the language lives in the Tool world?
> -- Matthias
> _________________________________________________
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/dev

Posted on the dev mailing list.