[squeak-dev] Re: [ANN] Hydra now can do mitosis

Andreas Raab andreas.raab at gmx.de
Sun Feb 22 17:19:33 UTC 2009


Interesting. Is this conceptually different from making a snapshot using 
image segments and move this over to a different Hydra instance?

Cheers,
   - Andreas

Igor Stasenko wrote:
> Hello lists,
> 
> (see http://en.wikipedia.org/wiki/Cell_division for explanation what
> mitosis is ;)
> 
> i just finished another torturing session in slang land, and finally
> made some of it working :)
> 
> I added a two new primitives, which aimed towards creating a new heap
> by cloning a designated set of objects from existing one.
> A first primitive is helps you to create a closed graph by reporting a
> set of objects which is referenced by objects in provided array, but
> not included in this array itself.
> 
> A second primitive is actually serves for creating a baby heap.
> I takes two array arguments: objects graph, and replacements (or substitutions).
> 
> The rules is simple:
> each object included in first array, should have references to objects
> which included in this array as well i.e.
> (objects identityIncludes: (objects at: x) someIvar ) == true
> 
> or if its not , then it can be found in a substitutions array.
> A substitutions array is a flat array of pairs oop -> index, where oop
> can be any oop, and index is a smallint index of item in objects
> array.
> Upon creation of new heap, all refs to oops in 'substitutions' array
> will be replaced by refs from 'objects' array by taking corresponding
> index.
> 
> Both array arguments should contain oops only (except from indexes in
> substitutions array) , should not contain duplicates and their
> intersection should be empty , i.e.
>   (objects intersection: substitutions) isEmpty == true.
> 
> All of these rules actually serving to ensure that newly created
> object memory will form a fully closed graph (hence its oops can be
> cloned to a standalone object memory).
> 
> There are also, an initial example how to create a 'baby' object memory
> load http://www.squeaksource.com/HydraVM/HydraVM-sig.17.mcz
> 
> and do:
> 
> HydraClone new cloneIdleProcess
> 
> Of course you will need new VM.
> Sorry, i didn't published an update of sources yet. I can only give
> you a prebuilt one.
> Once i had a write access to ftp.squeak.org/HydraVM but i forgot
> credentials/key to it. (if Box Admins help me with this, i will upload
> it there).
> Or, you can write me in private and i will send you binaries.
> 
> P.S. I want to give a credit to Klaus D. Witzel who helped me to
> finish these new features, and inspired to do it :)
> 
> 




More information about the Squeak-dev mailing list