Block closures

Tim Rowledge tim at sumeru.stanford.edu
Sat Jul 29 18:44:52 UTC 2000


In message <3982FB87.A4B1ABA9 at evolgo.de> you wrote:


> I have to put some water into the wine here... ;-(
> 
> The paper is interesting and stands in the tradition of and is related to
> earlier VW implementations, which have extended the ST80 specification.
> It addresses the realization of very fast block closures, so far so good.
> 
> But to reach this goal, native stack layout is used and different kind of
> mappings of ST contexts to native stack frames. I think this fits good into
> JIT-Compiler work, but
> 
> *** this isn't a platform independent approach ***.
Depending somewhat on how you are defining platform independent I have
to take issue with this statement. VW runs on about as many platforms as
Squeak (yes, even Acorn, though never commercially. I did a port while
I was at ParcPlace) and the context stuff is as portable as the rest.
> 
> Moreover I don't see a realization just by changing the interpreter and ST
> contexts, methods and related things.
I think that by changing that bunch you could realize almost anything!

The basic essence of BlockClosure is to create a closure instead of a
BlcokContext at the point where the current system uses the blockCopy
bytecode and to change the value primitives to use that closure to
create a fresh BlockContext instead of just activating the Blockcontext
that would be there now. Nothing wierd there at all.

The bit I find tricky is how to access the home context temporaries etc
cleanly and I think that is the key point from Eliot's paper.

tim
-- 
Tim Rowledge, tim at sumeru.stanford.edu, http://sumeru.stanford.edu/tim
One man's constant is another man's variable.  - Perlis





More information about the Squeak-dev mailing list