[Vm-dev] Squeak VM port to Google Native Client

Igor Stasenko siguctua at gmail.com
Wed May 4 11:48:46 UTC 2011


On 4 May 2011 08:18, Yoshiki Ohshima <yoshiki at vpri.org> wrote:
>
>  Hello,
>
>  I'm playing with Google Native Client a bit and made a port of
> Squeak VM to it.  It is far from complete (even the state where
> backspace or Cmd-p etc. does not work, sound does not work, etc.), It
> now reached to the state where I can say the basic part of it is
> working.
>
>  The source code is available at:
>
>  http://github.com/yoshikiohshima/NaClSqueak
>
> .  Also, f you have Google Chrome 11 beta available, try to turn on
> the Native Client on (by typing "about:flags" into the title bar) and
> access:
>
>  http://tinlizzie.org/~ohshima/squeak/squeak.html
>
> (The first try may take some time.)
>
>  - It is gnuify-ed but we're still learning the JIT situation of
>    NaCl.  So, it' need some work to port Cog.
>
>  - The image data is embedded as a C array in this executable.  You
>    can remove EMBEDDED_IMAGE_FILE flag off, and comment/uncomment the
>    corresponding part of squeak.html, it can load the image
>    separately via XMLHttpRequest of the browser.
>
>  - There is some strange issue when you do fast drag the system
>    window.
>
>  - As you can see, the source code is derived from the Unix VM.  It
>    was hard for me to write some CMake stuff to set it up for the
>    cross compilation.  A help to merge it back to the Unix code would
>    be greatly appreciated.
>

I recommend you to take a look on CMakeVMMaker.
It is written in smalltalk, and generating cmake configuration files.
Its also much simpler than cmake configs made by Ian (because i
started making it without too deep knowledge
about cmake), and actually i didn't wanted to make it too clever, like
detecting a platform-specific subtleties,
because then it ties your build to the platform where you compiling VM
and therefore makes it harder to do a cross-compilation.

So, with CMakeVMMaker you could just start from creating a new class
with own configuration , and then gradually
get a working configuration which (cross)compiles VM for your specific
target, with your specific flags and
set of plugins which proven to work.

And of course, you can take a look at existing configurations for examples.

>  - If Google takes over the world and all apps become a Native Client
>    (may be even other browsers^^;), this port may be useful^^;
>

Yes, indeed. I like NaCl, because it will allow us to just run VM,
instead of adopting it to browser in form of plugin.

Do you have any description, what you need to do to get started
building VM for NaCl?
It would be interesting to read.

> -- Yoshiki
>



-- 
Best regards,
Igor Stasenko AKA sig.


More information about the Vm-dev mailing list