Current traits implementation breaks VM compatibility

Andreas Raab andreas.raab at gmx.de
Mon Jan 30 17:35:48 UTC 2006


Daniel Vainsencher wrote:
> As one of the people involved in the implementation, I apologize for 
> that, I didn't notice that effect.

Nobody did. If there's a lesson to be learned here then it's that large 
scale changes always have some unforeseen consequences. Which is simply 
another reason for thorough testing before this kind of change get 
integrated.

> Since in the stable state, the right thing to do is probably to have 
> those variables in Behavior, it might be better to bite the bullet and 
> change the VM. BTW, any chance this dependecy of the VM on the image can 
> be removed, instead of just changed? that would make the VM change 
> backwards compatible...

Short of Tim's hack I don't see how this could be achieved.

> While I can see that, for example, printing a debug stack requires the 
> VM to know about class names, it is not obvious to me that type checks 
> should use names rather than identities. Then again, there is a lot 
> about the VM that I don't understand...

You're right it *should* use identities but those aren't always 
available (the VM doesn't support lookup of classes either so you cannot 
find a class if all you've got is a name).

Cheers,
   - Andreas



More information about the Squeak-dev mailing list