Image format proposals... Re: [SqF]Report of VI4 Project forFeb '02

Tim Rowledge tim at sumeru.stanford.edu
Sat Feb 2 18:45:05 UTC 2002


Scott A Crosby wrote:

> > >Plans: Any further proposals for image format affecting changes are
> > >needed as soon as possible; this is not something we want to do more
> > >than once.
> >
> 
> I think we may need to do it more than once.. How about two iterations?
> VM4, where we improve the VM, and VM5 where we redo ObjectMemory?

Err, note the _image_ change bit here. Improving the VM, even changing
quite extensively the GC system do not neccessarily require changing the
object model. For VW we added mulit-segment oldSpace and permSpace
without any change to the object model or image incompatability. For the
Active Book I added rommable image capability and multi-space capability
without any object model change.


> One really nice idea I've seen is to use a seperate scheme for temporary
> objects.. Something similar to:
> 
> Each object has a 'single reference' bit, and an extra header word
> pointing to the reference. (The single-reference bit can be imlicit. We
> can reserve a percentage of the memory range and assume that all bits in
> that range *are* single-reference.).
> 
> If an object is stored in more than one place, the object is cloned and a
> *copy* is put into youngspace. The origional is garbage. We can cheaply
> update the references to it because we have a pointer in the object that
> points to it..
> 
> Furthermore, we can scan that infant space quickly. Since each object in
> it contains a pointer to the single word in the any other object that is
> supposed to point to it, we can see if that pointer still points to it,
> and remove it if not.
This is merely a restricted version of generation scavenging with extra
costs. Temp variable are typically taken care of quite nicely by the
disappearance of the context. It would cost a further range check on
every store, plus the extra word on every 'infant' object.

tim





More information about the Squeak-dev mailing list