[Vm-dev] VM Maker: VMMaker-oscog-dtl.59.mcz

Levente Uzonyi leves at elte.hu
Mon Apr 18 10:12:22 UTC 2011


On Mon, 18 Apr 2011, Bert Freudenberg wrote:

>
> On 18.04.2011, at 07:23, squeak-dev-noreply at lists.squeakfoundation.org wrote:
>
>> Add primitiveImageFormatVersion, an optional named primitive answering the image format number of the current image. This is the value stored in the first word of an image file header when the image is saved, and possibly modified on image load if the VM adds or removes capabilities for the running image. This primitive was added to VMMaker trunk in VMMaker-dtl.169. Rationale: supports float word order handing for image segments, reference http://lists.squeakfoundation.org/pipermail/vm-dev/2011-April/007712.html
>
> Is there a way to detect if an image will be saved in a different format than it was loaded?
>
> In some images I want to avoid saving them accidentally as a Cog image. I have been doing this by adding a preference "warnAboutSavingAsCog" and checking the VM version string for "cog". With this new primitive I could more reliably detect Cog, but I guess no information about the loaded image is retained?

Why don't you read the first four bytes from the image file to get the 
image version? Also, there's SmalltalkImage >> #isRunningCog to check if 
the current VM is a CogVM.

imageFormat := (FileStream fileNamed: Smalltalk imageName do: [ :file |
 	file binary; next: 4 ]) unsignedLongAt: 1 bigEndian: false.
isCogVM := Smalltalk isRunningCog.


Levente

>
> - Bert -
>
>
>


More information about the Vm-dev mailing list