[Pharo-project] Better debugging...

Toon Verwaest toon.verwaest at gmail.com
Tue Apr 26 17:05:42 CEST 2011

> I am not sure if I understood correctly, but you may want to take a 
> look to Gemstone. As far as I remember they can have not only 
> different versions of a certain class at the same time, but also  
> instances of a specific class version all living together at the same 
> time.
Thanks for the pointer, but yeah, I know about Gemstone. Our ideas are 
slightly different however...

The idea is more to have multiple versions of the same live instance at 
the same time in memory; depending on the version of the code they are 
related to. This threads running in different versions can look at the 
same instances but have a slightly different view on the object graph.

The only objects that will have different versions are global objects, 
hence the thread-local pools to avoid overhead when unnecessary. Then 
since threads are related to versions, we would have different heaps for 
the different versions of the global space.

For example in the case of the alias debugger, the debugger has a view 
on the world that is completely aliased. Its version of the heap will 
look like that. The rest of the code would however immediately break if 
it would access the global state in that format since the alias-wrappers 
are unexpected. So we have 2 versions of the global heap, 1 with aliases 
and 1 without.

For further reading, look at Erwann's active context.


More information about the Pharo-project mailing list