[squeak-dev] Older VM's won't start the latest beta images

David T. Lewis lewis at mail.msen.com
Sat Jun 25 14:36:16 UTC 2022

On Sat, Jun 25, 2022 at 11:32:48AM +0000, Jaromir Matas wrote:
> Hi all,
> I wonder if (or how) this is supposed to work:
> I?d like to open the latest image using an old VM; I used to do that by
> copying the old VM?s files into the new image?s directory but it doesn?t
> work any longer (I?m on Win10); I don?t know how these things are supposed
> to work; please, could someone point me in the right direction or maybe
> just confirm it?s not working yet :)
> Thanks,
> Jaromir

This is a planned update to the image format number for the saved image
files (saved in the first few bytes of the squeak.image file).

If you want to run the release image using an older VM, there are two things
that you an do:

1) If you have a new VM available, use the new VM to open the image. Then,
in a workspace, evaluate "CompiledCode multipleBytecodeSetsActive: false"
and save the image. The image can now be run with an older VM.

2) Patch the image from another image. For example, you have newimage.image
(e.g. the release image) that you want to change to have the older format
number, and if you have an older image that works on your older VM, then
open your older image and do this:

	- In a Montecello browser, add http repository http://source.squeak.org/VMMaker
	- Load package ImageFormat
	- In a workspace, evaluate "ImageFormat clearSistaBit: 'path/to/newimage.image' "

This will rewrite the first 4 bytes of your image file, setting the format
number back to something that an older VM will recognize.

More information is available at http://wiki.squeak.org/squeak/6290. Class
ImageFormat exists largely for purposes of documentation, so the class and
method comments provide some explanation:

	HelpBrowser openOn: ImageFormat

ImageFormat also provides the source code for the ckformat utility (which
probably can be compiled on Windows but I have not checked)

	"ImageFormat createCkFormatProgram"

The generated source for ckformat is at https://github.com/OpenSmalltalk/opensmalltalk-vm/blob/Cog/src/ckformat.c


More information about the Squeak-dev mailing list