[ANN] Hydra VM (multithreaded squeak VM) showing first results

Igor Stasenko siguctua at gmail.com
Mon Dec 24 21:24:47 UTC 2007


Hello everyone,
i would like to make anyone know, what i have done during December in
a collaboration with Andreas, for creating a VM, which can run
multiple squeak images in separate native threads, running in
parallel.

Hydra VM is codename, which we have choose to call this project :)

Currently, i had refactored enough code in Interpreter/Plugins and
win32 platform-specific code to be able to load and run multiple
images in same process.

There is much to be done left, but i think, at the moment, there is
enough support in VM to write tests and experiment, without much risk
of crashes.
If you run single image, and don't start second or more, it's stable!
(i'm sitting in VM, editing code during the day, saving image e.t.c. -
about 8 hours or so, and no crashes ).
Of course, expect crashes, when you run new image. :)
But there is nuances: since i'm too lazy to look for a stripped down
image with limited number of facilities, i'm using stock image to run
in second thread.
Of course, this is very risky , because it's trying to use everything
(display/input) and this leads to crash.
So, currently, to prevent that, i changed
snapshot:andQuit:embedded: method to simply don't go past tests, which
are running at starting image (there is a ways to detect if you
running as main interpreter or not).

I'm going to make further changes to ensure, that VM will not crash,
even when trying to run stock images which may think that they are
interactive.
Meanwhile, to one, who might have interest, you can download and start
playing with it.
Sorry, it's currently running on win32 platform only.
If there any interest in porting to other platforms i would glad to help.

Lately, i have done implementing channels , a framework for fast and
cheap inter-image communication.
If you load a HydraVM package, there is already some code, which using them:

#transcript channel, used by HydraTranscript class , as a simple way
to see what other image doing, by redirecting all transcript output to
main, interactive, image.

#doIt channel - a channel, which listen non-interactive image, where
you can send doits.

You can download VMMaker and HydraVM from here:
MCHttpRepository
	location: 'http://jabberwocky.croquetproject.org:8889/HydraVM'
	user: ''
	password: ''

And platform source code, for building it, from here:
http://squeakvm.org/svn/squeak/branches/qwaq

Any questions? ask away!

-- 
Best regards,
Igor Stasenko AKA sig.



More information about the Squeak-dev mailing list