|
 |
On 18/10/2010 04:29 PM, Darren New wrote:
> Invisible wrote:
>> As I understand it, Smalltalk did it by having an "object table". Each
>> reference to an object is just an object ID - an index into the object
>> table. The object table then stores the pointers to the actual
>> objects. That means you can easily move the objects around so long as
>> you update the object table. (And you can potentially store additional
>> information in the object table too, for example to help the GC.) The
>> down-side is an extra level of indirection.
>
> Yes. I'm pretty sure the GC info was in the objects, tho.
Yeah, you might be right about that. I didn't look too closely. (I did
however spend an evening reading through all the GC documentation to see
how it has different areas for young objects, old objects, large
objects, persistent objects, object objects... It all seemed quite
sophisticated.)
> Having the
> object table also made "become:" quite inexpensive.
The thing that occurs to me is that it could potentially make it easy to
move objects to another address space, hell maybe even a different
physical machine. I've always thought that would be quite cool. (Of
course, as soon as you do this, you need to decide where the "best
place" for each object actually is.)
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
 |