[r6rs-discuss] Expansion order [was: Now, where were we?]

Sam TH samth at ccs.neu.edu
Tue Feb 24 09:15:14 EST 2009


On Tue, Feb 24, 2009 at 8:36 AM, Sam TH <samth at ccs.neu.edu> wrote:
> On Mon, Feb 23, 2009 at 2:49 PM, Per Bothner <per at bothner.com> wrote:
>>>
>>> This would ban ahead-of-time compilers, right?
>>
>> No - though perhaps "lazy expansion of lambdas" is misleading.
>>
>> "When compiling a module, that means deferring lambda expansion
>> until the end of the module - or until it is needed for a syntax
>> expansion (though that gets a little tricky)."
>>
>> In more detail (but still some hand-waving):
>
> [snip explanation]
>
> Well, that makes more sense.  I think that prevents the implementation
> strategy used by some REPLs, which is to run the compiler on each form
> entered at the REPL.  Other than that, I'd want to have a lot more
> experience with this before recommending it for a standard, but it
> seems potentially feasible.

Thinking about this a little more, it seems like it would run into
some trouble with `local-expand' [1,2].  You might be able to just say
that we delay the expansion of `lambda' bodies 'as long as possible',
but that that point it seems like we're not gaining very much.

[1] http://docs.plt-scheme.org/reference/stxtrans.html#(def._((quote._~23~25kernel)._local-expand))
[2] http://www.ccs.neu.edu/scheme/pubs/scheme2007-ctf.pdf , Sections 3.4 and 4
-- 
sam th
samth at ccs.neu.edu



More information about the r6rs-discuss mailing list