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

Juan Vuletich juan at jvuletich.org
Mon Jul 1 12:48:11 PDT 2019

Thanks Phil and Dave for your comments. You are both spot on.


On 6/29/2019 7:20 PM, David T. Lewis via Cuis-dev wrote:
> On Sat, Jun 29, 2019 at 06:40:05PM -0300, Gast??n Caruso via Cuis-dev wrote:
>> I see, thanks for the complete answer!
> +1 very good explanation.
>> @Juan Vuletich<juan at jvuletich.org>  is the v3 image updated like the
>> others? Do you think it's worth it to keep it in the same package with the
>> other two images?
>> Thinking about minimalism and what the users will see when they download
>> cuis.
> I think it is very cool that Cuis is able to maintain these three image
> formats with a single identical Cuis update stream.
> In Squeak we did not try to continue maintaining the V3 image because it
> would be "too much work". Juan proved this to be wrong. It just goes to
> show, if the engineering is done well then the maintenance is easy.
> I follow this issue closely, partly because I am a maintainer for the traditional
> VM (http://squeakvm.org), and also because I maintain an unofficial V3
> "Squeak trunk" update stream (http://www.squeaksource.com/TrunkUpdateStreamV3).
> Cudos to Cuis for maintaining a clean and reliable update stream that works
> across a range of VMs and image formats.
> Dave
>> Thanks again!
>> El s??b., 29 jun. 2019 a las 17:59, Phil B (<pbpublist at gmail.com>) escribi??:
>>> 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
>> -- 
>> Cuis-dev mailing list
>> Cuis-dev at lists.cuis.st
>> https://lists.cuis.st/mailman/listinfo/cuis-dev

Juan Vuletich

More information about the Cuis-dev mailing list