[Cuis-dev] What's the difference between these image files?

Phil B pbpublist at gmail.com
Sat Jun 29 13:59:44 PDT 2019


The short answer is if you're on 64-bit x86, Cuis5.0-3795.image is the one
you probably want.  If you're on 32-bit hardware (or ARM),
Cuis5.0-3795-32.image is probably what you want.  The longer answer:

1) the *-32.image is a 32-bit image and is generally useful for running on
32-bit hardware or for compatibility reasons.  It's also the most common
image people run on ARM systems since there isn't currently a Cog/Spur for
64-bit ARM yet.  This image will run under the latest versions of the
32-bit VMs and is functionally (virtually*) identical to the 64-bit image.

2) the *-v3.image is an old image format used by older Squeak VMs (i.e.
what came before Eliot's Cog and now Spur VMs) and I think is mainly only
of historical/porting interest today.  The VMs are easier to
build/modify/understand at the cost of much lower performance.  This image
will only run under older versions of the VM which long ago stopped being
actively developed. (they are still maintained to keep running, but no one
is adding new features to them that I'm aware of)   This is one area where
Cuis is both a little cool and a little weird: the *current* Cuis image can
still run under the V3 VM which Squeak/Pharo dropped years ago.  Might be
cool if you want to see what's going on behind the scenes in a simpler to
follow VM.

3) the final one is the 64-bit image which most people on modern x86
systems run.  It's functionally (virtually*) identical to the 32-bit
image/VM but much faster and of course can run much larger images due the
larger address space.

There might be some situation-specific reasons to run an alternate VM.  For
example, let's say you're running on 64-bit x86 hardware but need to call
out via 32-bit FFI to some old or proprietary library and either can't or
won't update it... that might be a reason to look at running the 32-bit
VM/image even though you could otherwise run the 64-bit VM/image.  Another
area where having this variety of image/VM support has really made a
difference for Cuis is when troubleshooting potential VM issues to help
narrow down what/where an issue is: if you're having a problem that looks
like it's a VM issue, fileout/save your packages, filein/load into a
different image/VM combination and see if you can reproduce.

* I say 'virtually' identical because IIRC, there are slight but necessary
changes in the class hierarchy around Character and SmallInteger classes.
But whenever possible, they should behave identically.

On Sat, Jun 29, 2019 at 3:58 PM Gastón Caruso via Cuis-dev <
cuis-dev at lists.cuis.st> wrote:

> Hi, I have a question, what's the difference between and purpose of
> Cuis5.0-3795-32.image, Cuis5.0-3795-v3.image and Cuis5.0-3795.image ?
>
> Thanks in advance.
> Gastón
> --
> Cuis-dev mailing list
> Cuis-dev at lists.cuis.st
> https://lists.cuis.st/mailman/listinfo/cuis-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20190629/9d40ad83/attachment.htm>


More information about the Cuis-dev mailing list