ocit.inc at MCI2000.com
Fri May 15 05:15:44 UTC 1998
The link below seems to be out of order . I would be very much interested in
locating the article in question.
Extensible dynamic instance variables can also be simulated using
From: Brian Foote <foote at cs.uiuc.edu>
To: Squeak <squeak at cs.uiuc.edu>
Date: Tuesday, March 03, 1998 5:56 PM
Subject: Re: Prototypes
>Ralph Johnson and I descibed some work we did to allow more dynamic,
>changes to objects so that they could act more like prototypes
>many moons ago in Smalltalk itself in
>at OOPSLA '89.
>In those days, there was no changeClassToThatOf:,
>so we had to <add> a class change primitive ourselves.
>We also added a bit to the object headers to force a doesNotUnderstand:
>(dispatchMessage:) at the start of the lookup process instead of the end.
>Once you can clone yourself quickly, and change your parent/class pointer,
>the one thing left is adding a method or variable slot. You can do that by
>adding a LightWeight
>class (a.k.a. HeavyweightObject or MetaObject), or with instance "clone and
>Adding a lightweight Behavior gives you a place to put methods or state.
>Extensible dynamic instance variables can also be simulated using
>(The change class and dispatch hacks
>were patched in in binary, with MPW C , the assembler, and the debugger.
>We got a lot of bits under our fingernails...)
>Obligatory Squeak Content: these sorts of VM alterations are a <lot>
>The thing that was interesting about how Self did dynamic slots was the
>meta-architecture under the hood (the maps and all) that made it possible
>do these dynamic
>things, and yet run efficiently when you knew you weren't doing them.
>Since Self's VM was a big C++ program,
>making this part of the system first-class objects wasn't something they
>were too enthusiastic about. I was always frustrated that you
>couldn't get your hands on these too.
>I sense considerable enthusiasm for fleshing out this part of the
>tale in this community: the objects that connect the object models and
>implementation. These can make experimentation with a variety of models
>possible. In any case, it's good to see the MOP hackers getting
>flushed out into the open...
>As for Mike's point about dangerous facilities, I'm for refactoring
>things in such a way as to give us the dynamic power to make
>such facilities easier to hide.
More information about the Squeak-dev