Community driven VM

Hi. This is a short post to tell you that I am very happy with the work it is being done related to the Squeak virtual machine.

A couple of years ago, John Macintosh ported the Mac VM to the iPhone. Now with all the iOS it should be easy to make it work not only in the iPhone but also in iPad, etc… Then after Esteban Lorenzano continue with the effort, and even worked in projects like Mars and Deimos.

Some time ago, Andreas Raab started a port of the SqueakVM to the Android.  Dimitry Golubovsky took that work and continue with it and improve it a lot. It can now work even with Android tablets. Few weeks, he announced a first beta release that you can find here. The home webpage of such project is here and there are also some nice screenshots.

Yoshiki Ohshima started to port the SqueakVM to the Google Native Client (NaCl platform), that is, you can run Pharo/Squeak directly in the Chrome browser! isn’t that cool?  Now, Javier Pimas and Guido Chari, who are doing an internship with INRIA – RMOD, are following his work and now they have made it work!  you can run Pharo on Chrome!  of course, this is just the start and there are still a lot of problems and limitations.

And I can imagine the SqueakVM is already working in a lot of different devices I am not even aware of. So why I am writing this? Because I am really surprised about this fact. Most of those ports/forks were done by one or a few persons and sometimes even in free time. And they succeeded. How common is this in other programming languages?  I don’t know, but I am impressed.

In addition, I am happy with the idea that more and more people can jump into the VM world and compile the VM because that helps us as a community. Just as an example, Alain Plantec could build the VM and finally fix a problem with the FT2Plugin. Friedrich Dominicus could build the VM and fix a problem with SerialPort.  Laurent Laffont is the mentor of the project SmallHarbour and they needed some specific changes in the SecutiryPlugin which were done by SeasideHosting. I helped him to merge those changes to the latest code of Cog, and it worked! Now they have their own clone in gitorious and they can easily build its own SmallHarbour VM.

Sean P. DeNigris accidentally put a halt in a method which was called from the startup of the system, which generated a system crash. He was not able to run again the image, but he has code there he needed to rescue. Guess what? he build the VM in debug mode, modify the VM in the method execution and put an if saying “if the selector is #halt, then fetch next bytecode”!! And it worked. That is amazing.

So….to sum up, what I want to say is that from my point of view it is extremely important what is happening arround Cog VM and the community. Having an easy and uniform way to compile the VM, a Jenkis server that automatically builds the VM, a open-source repository like gitorious where everybody can work, etc. are really important. But the most important one, is to DOCUMENT. No matter if you use git, CMakeVMMaker, Jenkis or whatever. The key point is to document the process and that everybody can do it. That’s all I have tried with my first posts of this blog. My post about how to build the VM from scratch has already like 800 visists….So…hopefully more people can build Cog VM now.

But notice that people are aware of that. It is not by chance that Stéphane Ducasse has organized a “Deep into Smalltalk” school with INRIA, or that we have a long “Compiling your own VM” tutorial at ESUG 2011.

Happy VM hacking 🙂

2 thoughts on “Community driven VM

Leave a Reply