On Tue, Apr 26, 2011 at 1:54 PM, Toon Verwaest <[hidden email]> wrote: I'm working on porting this idea already to the Glamour debugger. 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. For example in the case of the alias debugger, that needs aliases everwhere; but all the global data (classes, methods, ...) is not aliased. To make this work you actually want to have a "copy" of the global data that is aliased, but kept in sync with the original data. Here it starts making a lot of sense to have thread-local heaps + a versioned but synced global heap. -- Mariano http://marianopeck.wordpress.com |
> 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. cheers, Toon |
Free forum by Nabble | Edit this page |