On Fri, May 20, 2011 at 3:39 PM, Matthias Felleisen
<matth...@ccs.neu.edu> wrote:
>
>
> Let me make my proposals (2 and 3) more precise because your response 
> suggests they were too short.
>
> 1. We could make internal define the primary vehicle for definitions, i.e., 
> not compile thru letrec. As far as I am concerned, your change to the 
> language to allow defines in many more places has made letrec superfluous.
>
> 2. The semantics for internal defines would be more Algol like, meaning your 
> example would immediately behave like let and thus be fast.
>
> 3. As far as letrec is concerned, we can make it 'expensive' if it is no 
> longer the intermediate target instruction from the macro compiler's 
> perspective.
>
> -- I think my preferred solution would be to wrap letrec so that 
> continuations grabbed during the setup set up a continuation mark that labels 
> them as 'dangerous'. When you reinvoke them, the existence of the mark tells 
> you that the reference cells should be reinitialized (probably only the ones 
> on the control flow from the continuation point).

Why do you prefer this to putting a prompt around the rhs of each
letrec binding?

Robby

_________________________________________________
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Reply via email to