[plt-scheme] Reexpansion of modules

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Sun Aug 20 21:20:41 EDT 2006

On Aug 20, 2006, at 9:12 PM, Felix S Klock II wrote:

> Matthias-
> On Aug 19, 2006, at 1:57 PM, Matthias Felleisen wrote:
>> 2. Yes, we could expand PLT Scheme to PLT Scheme [core] first but  
>> even in this core language you have so many library calls and  
>> extensions, resolution of semantic issues, etc, that NOW WATCH
>>  -- compiling the rest in Larceny is either impossible or
>>  -- it doesn't produce code that is faster than PLT Scheme and  
>> faithful to its semantics.
>>     [Evaluation order is just one "switch" (ever wondered about  
>> the love and attachment of compiler hacks to switches?)
>>     that slows down object code in Larceny a lot. Why? I don't know.]
> On this latter point, are you referring to the "standard"  
> evaluation order, as in left-to-right, procedure operand first,  
> then the first argument to the invocation, then the second arg, and  
> so on?
> I've been told that this is slower because you really want to make  
> sure that you evaluate the procedure operand last;

Sure, you can jump to the procedure immediately if it's the last  
result you're getting. This is the one reason why I wouldn't mind  
specifying evaluation order as arguments first (left to right), then  
procedure in PLT Scheme.

But as Matthew pointed out with his benchmarks this evening, PLT's  
JIT compiler is getting pretty good anyway.

Still, if you want to try, consider yourself challenged :-)

-- Matthias

Posted on the users mailing list.