[Vm-dev] VMMaker & potential VM Port

Chris Cunnington brasspen at gmail.com
Sat Sep 26 14:25:09 UTC 2015



On 2015-09-24 3:59 AM, Ken.Dickey wrote:
> On Thu, 24 Sep 2015 17:47:59 -0400
> Chris Cunnington <brasspen at gmail.com> wrote:
>    
>> http://lists.squeakfoundation.org/pipermail/squeak-dev/2012-October/166038.html
>> http://sdmeta.gforge.inria.fr/FreeBooks/CollectiveNBlueBook/porting-subfinal%202.pdf
>> http://sdmeta.gforge.inria.fr/FreeBooks/CollectiveNBlueBook/greenberg.pdf
> Hi Chris.  Thanks !!!
>
>> I would say time in gdb and with make is proof things have gone off
>> course. The 2012 script from above does all that for you. If you're
>> porting, you wouldn't be in VMMaker much, but creating C files in the
>> platforms directory for a standard VM. This is a C story, though. Lots
>> of C. But from what you told me in Portland of you're programming
>> background, it would be no great impediment to you.
> C/C++/gdb/make/.. evaporated from my brain a number of years ago.  Real ugly stuff.  I am too accustomed to dynamic languages with good IDEs.
>
> Inferno does NOT use C.  It uses a programming language called 'Limbo' which, while still a 'device driver language', is much nicer than C.  E.g. Limbo has garbage collection and threads built in.
>
> One possibility is getting VMMaker to spit out Limbo rather than C, hence my interest there.
Bert Freudenberg wrote a JavaScript VM and VMMaker spits out JavaScript 
to do that, I believe. That might be a good example of how to use 
VMMaker for Limbo.

> A more piece-wise approach might be to use a network socket and run the GUI/Presentation in Inferno and the VM as in a web browser.  I am just starting to look at this.  If I take this track I could get the UI part (screen drawing, mouse, keyboard) working as proof of concept learning before diving in to a full VM port.
>
> On the other hand, it might be just as easy to rewrite the GUI pieces directly in Limbo, run 'c2l' (the C to Limbo translator) and edit the half-baked results by hand.
c2l that's interesting.

>
> There is much work to do, not much spare time, and a number of approaches I could take.  Hence my scoping/sizing explorations.
>
>> Final note, this compiles an Interpreter VM as opposed to a Cog VM,
>> which is slower but more comprehensible.
> No problem.  Simpler is better.
>
> I have even considered going back to the original VMMaker with whatever Squeak it ran on to start simple.
>
> Interestingly, Inferno itself compiles to bytecode and runs interpreted or is JIT'ed to native.  Nicer (simpler) to use than then Unix/Linux and runs hosted on Mac/Win/Linux/.. or native on various ARM/Intel/SPARC/PowerPC  hardware (e.g. Nintendo/Android/Raspberry Pi).
>
>> .. If you're going to
>> attempt the port, perhaps you could start a blog? Ask them at
>> planet.smalltalk.org to add it.
> No commitment at this point.  We all suffer from busy lives.  First have to do some experimental 'probes'/prototypes to try/size things out.
>
> I do have instances of Inferno OS running and talking together on my ARM and Intel laptops.  The idea of something simpler and more portable than most OSs (but unlike 'SqueakNoOS' has someone else doing the heavy lifting) appeals to me.  Especially W.R.T. the Maker movement.
That's sounds pretty cool.
>
> I like things which have simpler uses and explanations.  In particular, I like to "take the magic out" and "see to the bottom", or get as close as I can.
>
> My ideal would be to run Cuis on Inferno on commodity hardware and see where that leads.  Far from mainstream, but a crystal/seed from which something nice could grow.
Cuis runs on an Interpreter VM. And you want to write a different VM. 
OK. I certainly would like to hear more about this in one capacity or 
another.

Chris
>
> Thanks again for the pointers,
> -KenD



More information about the Vm-dev mailing list