Hi Christophe--
Another approach is to modify the virtual machine so that it marks methods as they are run, and modify the garbage collector to reclaim methods that haven't been run. Then you can create systems that consist of only what is necessary to run unit tests, effectively imprinting the unit tests. You can interact with the target system from completely independent one over a remote messaging network connection, so your unit tests need not include graphics support, etc.[1] This seems much simpler to me than making a virtual machine that can run multiple object memories, and distributed object memories have several other important uses too.
Guillermo also implemented this kind of approach with Tornado.
Right, I read that in his PhD thesis. That's why I mentioned my earlier work, when others claimed there was a precedent being set.
But is not so easy...
Sure, I learned that first-hand when I did it. One important thing I learned is that it's easier and more accurate to install code as a side-effect of actually running it live, and not through analysis. It's also useful to have the option of faulting code in when it's missing from a running target, or pushing it in from a running source. -C [1] http://netjam.org/context -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)