[squeak-dev] At what point did image format change?

David T. Lewis lewis at mail.msen.com
Mon Feb 11 23:59:10 UTC 2013


On Mon, Feb 11, 2013 at 03:27:59PM -0800, tim Rowledge wrote:
> Now I have a 4.0 vm & image working nicely on my RISC OS Pi I need to move forward to more modern images and VMs. I find myslef a touch confused about what image format changes might have happened and when.
> 
> On my iMac it seems that I can run - 
> OK 3.9 image on 3.8 vm
> OK 3.9 image on 4.2 vm
> NO 3.9 image on Cog
> NO 4.1 image on 3.8 vm
> OK 4.1 image on 4.2 vm
> ?? 4.1 image on cog (crashed after mostly starting up)
> NO 4.3 image on 3.8 vm
> OK 4.3 image on 4.2 vm
> OK 4.3 image on cog 
> OK scratch image (2.8 image, I think) on 3.8 vm
> OK scratch image on 4.2 vm
> NO scratch image on cog
> 
> Couldn't spot anything very noticeable on the sites I scanned. Pointer to history of these changes?
>

Hi Tim,

Before you go any further, load package ImageFormat from the VMMaker repository
at http://www.squeaksource.com/VMMaker. Everything I know about the image format
changes is there. It's a stand alone package, no dependencies on VMMaker itself,
so just load it and browse.

The most important change is due to Eliot's block closure implementation, which
was the transition from image format 6502 to 6504. An additional change came
with 6505, which is 6504 plus floats (C doubles) in native word order, plus
some Cog-related additional information in the image file header.

An interpreter VM can load and run any of these image formats. A Cog VM
requires 6504 or 6505. An image saved from an interpreter VM will be in format
6504, and an image saved from Cog will be in format 6505.

Image formats 68000 and 68002 are 64-bit versions of 6502 and 6504 respectively,
and require an interpreter VM compiled with the --image64 option passed to Ian's
CMake configure. Format 68003 is hypothetical, reserved for Cog running the
current 64-bit image.

Evaluate "ImageFormat createCkFormatProgram" and compile the resulting ckformat.c
to get a utility program for checking the image format number of foo.image.

Dave
 


More information about the Squeak-dev mailing list