[Vm-dev] VMMaker & potential VM Port

Chris Cunnington brasspen at gmail.com
Sun Sep 27 11:46:12 UTC 2015



On 2015-09-26 2:41 PM, David T. Lewis wrote:
>   
> On Thu, Sep 24, 2015 at 03:59:16PM +0800, 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.
>>
>> 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.
>>
>> 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.
>>
> Hi Ken,
>
> If you want to start simple with an interpreter VM, and if you have a Linux
> system to work with, here is how to do it:
>
>    http://lists.squeakfoundation.org/pipermail/vm-dev/2015-April/018259.html
>
> Once you have that working (should take about 10 minutes), try loading VMMaker
> and generating a minimal set of sources. Evaluate "VMMakerTool minimal" and
> use that to generate a set of sources with just the minimum set of plugins
> needed to run. That will give you a slow but working VM that can talk to
> files and networking. If you don't care about networking, you can remove
> SocketPlugin from the configuration and you will still have a working VM.
>
> HTH,
>
> Dave
That's pretty cool. I just started a x64 image with the x64 Interpreter 
VM using an installed script that looks at the image to decide which VM 
to employ.

Chris

>> 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.
>>
>> 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.
>>
>> Thanks again for the pointers,
>> -KenD



More information about the Vm-dev mailing list