Hello,
I've made an initial support for multiple worlds in GNU Smalltalk,
each world has its own memory heap; I can bootstrap multiple kernel
using the GNU Smalltalk bootstrapping process each kernel has
its memory heap and I use a share nothing approach between the other
worlds. I can load multiple images in other memory area too.
What has changed in the VM? This is mostly a big refactoring of the
_gst_mem structure and globals used by the compiler, symbols, oop
registrations, and context management.
I've added two primitives - mostly for testing purpose -for loading
images and generating new worlds in ObjectMemory (yes it's not good). It
loads an image print hello world and crash and the same happens for the
generated kernel.
I think that's the right way but I want your opinion on the changes.
I plan to fix the multiple worlds support by :
- fix the world swapping crash :)
- see the impact on the vm (semaphore/events/...)
- introducing a model for the worlds
- the scheduling could be time shared for the worlds (Paolo what do
you think)?
- Multi core support I think that could be the next step may be a M:N
model M images for N VM thread
The code is there :
[email protected]:MrGwen/GNU-Smalltalk.git this is the process branch
Cheers,
Gwen
_______________________________________________
help-smalltalk mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-smalltalk