Hi Alex<br><br><div class="gmail_quote">On Mon, Feb 4, 2013 at 1:52 PM, Alexander Lazarević <span dir="ltr"><<a href="mailto:laza@e11bits.com" target="_blank">laza@e11bits.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div><div>Thanks, Frank.<br><br></div>Maybe I wasn't that clear. I wanted to know if it would be possible to have one vm for linux, Windows, Mac, ..., that could use an interpreter object engine, stack object engine or a cog object engine. <br>
</div></div></blockquote><div><br></div><div>I'm still not sure I understand the question. Yes, you can run "one" VM on the three platforms, in fact any one. Cog runs on all three. The Interpreter runs on all three. The StackVM runs on all three. No, you can't have _just one_ VM because each VM executable is specific to a given OS/processor combination.</div>
<div><br></div><div>So what are you really asking? Do you want the "all-in-one" which has three VMs hidden inside it? Do you want a universal binary? Or what?</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div>
<br></div>Alex<br></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">2013/2/4 Frank Shearar <span dir="ltr"><<a href="mailto:frank.shearar@gmail.com" target="_blank">frank.shearar@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>On 4 February 2013 21:08, Alexander Lazarević <<a href="mailto:laza@e11bits.com" target="_blank">laza@e11bits.com</a>> wrote:<br>
> Hi!<br>
><br>
> Just to get myself up to date on the latest. Is it still true, that we got<br>
> three independent VMs?<br>
><br>
> 1. Interpreter VM<br>
> 2. Stack VM<br>
> 3. Cog<br>
><br>
> So as I recall the Stack VM was planned to replace the Interpreter VM<br>
> entirely. Or are there any cases were one only could use an Interpreter VM<br>
> (or cog)? Or is the Stack VM the all versatile VM by now? What are the<br>
> requirements for cog to run?<br>
<br>
</div>If you have a 64 bit machine and no way to install 32 bit libraries<br>
(Heroku, say), then Interpreter VM is your only choice. (Or, 32 bit<br>
libs are a requirement for Cog.)<br>
<div><br>
> It might not come as a surprise, but I haven't looked into the VM code<br>
> lately. But I recall that the linux VM at least uses the modules framework<br>
> to have different display, sound, etc. plugins for the VM. I don't know how<br>
> interleaved the VMs from above are, but would it be out of scope to have<br>
> _one_ VM that could have different object engines as VM plugins? So the VM<br>
> could check the architecture it's running on and the image that should be<br>
> loaded and decide on that what object engine to load/use?<br>
<br>
</div>I'll leave it to others to answer definitively but I suspect the<br>
answer is that while you can share the codebase to a large extent, you<br>
can't have a cross-platform binary. Squeak does run on at least OS X,<br>
Linux, FreeBSD, Windows, RISC OS.<br>
<span><font color="#888888"><br>
frank<br>
</font></span><div><div><br>
> The obvious benefit for the enduser I see is: *There is only one VM !*<br>
><br>
> The benefit for VM developers might be that they only need to focus on the<br>
> object engines and they would share a common VM frame.<br>
><br>
> This might be a "well yes, but too much work" thing, but nevertheless it's<br>
> something I would like to share.<br>
><br>
> (If turns out that the energy would better invested into something<br>
> different, there is also the possibility to use the package system on debian<br>
> derived systems, that would take care to install the right VMs on such<br>
> system, so that the enduser wouldn't need to worry about this. And I guess<br>
> there is a similar mechanism for windows and mac)<br>
><br>
> Alex<br>
><br>
><br>
><br>
<br>
</div></div></blockquote></div><br></div>
</div></div><br><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div>