[plt-scheme] Reexpansion of modules

From: Felix Klock's PLT scheme proxy (pltscheme at pnkfx.org)
Date: Sun Aug 20 21:18:08 EDT 2006


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?

This is slower because you want to evaluate the procedure operand  
last; I can't recall whether this is due to cache effects, register  
pressure across the argument evaluations (which I remember as the  
reason that the commercial C compiler I hacked on eval'd the  
procedure operand last), or something else entirely.  I'd suspect  
cache effects, but Will or Jesse are probably the right ones to  
answer the question.


Posted on the users mailing list.