[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

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?

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.

-Felix



Posted on the users mailing list.