[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
|