[squeak-dev] Letting the VM run multiple image formats (was: Condensing sources for a new release)

David T. Lewis lewis at mail.msen.com
Fri Feb 7 20:13:56 UTC 2020


On Fri, Feb 07, 2020 at 08:21:10PM +0100, Tobias Pape wrote:
> 
> > On 07.02.2020, at 20:07, David T. Lewis <lewis at mail.msen.com> wrote:
> > 
> > Technically,
> > it would be hard to do this from a single compiled VM executable, but
> > fortunately that is not needed.
> 
> It's possible, tho. RSqueak at one point happily read 64bit and 32bit images all the same???
>

Yes, and I expect that SqueakJS can do it. It's a bit trickier with the
compiled VMs.

I expect that a motivated person could make it happen for the compiled
VMs, but these VMs depend heavily on source inlining (Slang to C level
inlining) for performance, and this complicates any scheme for invoking
functions to handle two different object point sizes. In the end, I
doubt that it would end up being worth the effort(*).

For the interpreter VM, the executables to handle 32-bit V3 images and
64-bit V3 images are compiled from a single code base, and installed
with a naming convention to make the two sets of executable files
findable.

The same principle applies to the Cog/Spur VMs. If the various flavors
do not overwrite one another on installation, then you can install as
many variations as you want.

Dave

(*) But don't let my comment stop anyone from trying! It would be an
interesting challenge to see if it can be done.
 


More information about the Squeak-dev mailing list