[Squeak-e] Programming the VM

Robert Withers rwithers12 at attbi.com
Mon Feb 3 13:04:14 CET 2003


On Monday, February 3, 2003, at 12:50 PM, cg at cdegroot.com wrote:

> Mark S. Miller <squeak-e at lists.squeakfoundation.org> said:
>> "after the fact" would be bad. You'd be in a very weird state until 
>> it was set.
>>
> Hey, nothing that some loose references to quantum mechanics cannot
> solve ;-)
>
>> Otherwise, yes, exactly. Or, at least, it has to point at an object 
>> which is
>> in one-to-one correspondence with the parent 'machine', and which 
>> enables
>> this parent to open it up (ie, obtain an instance of Lex's 
>> ObjectInspector
>> on it) iff the object is indeed a child of this parent. I need to 
>> explain
>> the KeyKOS/EROS branding mechanism.
>
> Ok. My gut feeling is indeed that this is better than dynamic scoping.
> So we need an extra slot. Time to bring in the VM hacking squad ;-)

I think there are quite a few VM hacking squad members with us.   :-)

I'll point out that I am using one of the compactClassIndices for the 
MessageRedirector class.  This is the mechanism that pops message 
lookup into my context classes, and that is how I have implemented 
eventual references and promises.  Any message sent to an eventual 
reference will be eventually sent.

The next step I had in mind was to actually shove these contexts into 
the VM, so they weren't accessible in the image - it would require a 
special, MOPed Inspector to peer inside them.   This is my attempt at 
providing opacity.

Look at MessageRedirector (or MessageRedirectorProxy for non 
redirection VMs), Redirectionmanager and the ReferenceContext.  To get 
them to somewhat behave, I have a set of immediateCall selectors.

Now I have also used this context approach to implement a Mixin 
pattern, and more generally, i think that wrapping references in the VM 
allows one to define all kinds of auxiliary services.   It is a managed 
reference.  It could including this concept of a machine and the 
environment and parent-child relationship it models, if I am following 
correctly.

Inspectors on eventual references don't work especially well.  It has 
great difficulty in defining DoIt methods on the class side of the 
inspected object, because it keeps redirecting the #class method...  
:-)     It's like a greased pig!

cheers,
rob



More information about the Squeak-e mailing list