[Vm-dev] Squeak VM port to Google Native Client
Yoshiki Ohshima
yoshiki at vpri.org
Wed May 4 15:20:37 UTC 2011
At Wed, 04 May 2011 09:47:48 +0200,
Andreas Raab wrote:
>
> Very interesting. Can you roughly say what needs to do to get the Squeak
> VM into NaCL?
- No stdio files. I wrote small wrappers for fopen, ftell, fseek,
fread, and etc. for memory buffer.
- No dlsym, dlopen and etc. The Unix VM depends on them so a little
simplifications and hack to make a NaCl VM module visible to the
main VM. (Thus no external plugin either.)
- Write schemes to get the image data from the net. the JavaScript
to NaCl module interface is very limited so you need to work
around it.
- Adapt to PPAPI that provides a way to get drawable pixel buffers
and get events.
- multi threading for separating the interpreter and browser/NaCl
module interaction.
- A lot of figuring out of which library functions actually exists,
which of these work and what values to be expected from the
browser.
- ...
-- Yoshiki
> On 5/4/2011 8:18, Yoshiki Ohshima 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.
> >
> > - If Google takes over the world and all apps become a Native Client
> > (may be even other browsers^^;), this port may be useful^^;
> >
> > -- Yoshiki
> >
More information about the Vm-dev
mailing list