[Vm-dev] VM Maker: ImageFormat-dtl.31.mcz
commits at source.squeak.org
commits at source.squeak.org
Sun Apr 15 15:51:39 UTC 2018
David T. Lewis uploaded a new version of ImageFormat to project VM Maker:
http://source.squeak.org/VMMaker/ImageFormat-dtl.31.mcz
==================== Summary ====================
Name: ImageFormat-dtl.31
Author: dtl
Time: 15 April 2018, 11:51:24.795 am
UUID: 0d9cd87d-1743-4962-b490-7da14c1d0366
Ancestors: ImageFormat-dtl.30
Fix ckformat for 64 bit Spur, which saves format number in first 4 bytes of the header, versus 8 bytes for 64 bit V3. Prior version worked by accident for little endian host using strncmp() check, but failed when correct memcmp() was used without limiting check to 4 bytes for spur and 8 for V3.
=============== Diff against ImageFormat-dtl.30 ===============
Item was changed:
----- Method: ImageFormat class>>versionNumberByteArrays (in category 'utility') -----
versionNumberByteArrays
"All byte array expressions of known version numbers. These are the possible values
+ that may appear in the first 4 or 8 bytes of a saved image file. All 32 bit images have
+ this number in the first 4 bytes of the image file header. A 64 bit V3 image has this
+ number saved in the first 8 bytes of the header (only 4 bytes of which are significant).
+ For a 64 bit Spur image, the number is saved in the first 4 bytes. In all cases, the value
+ may be stored in little endian or big endian byte ordering depending on the host
+ platform (although all currently supported VMs are for little endian host platforms)."
- that may appear in the first 4 or 8 bytes of a saved image file. A 64 bit image saves
- its image format number as a 64 bit value in the file header, and a 32 bit image saves
- its image format as a 32 bit value. The value may be stored in little endian or big endian
- byte ordering depending on the host platform."
"ImageFormat versionNumberByteArrays do: [:e |
Transcript cr; show: e printString , ': ', (ImageFormat fromBytes: e) description]"
^self allVersionNumberByteArrays select: [:e |
+ e size = 4
+ or: [ (self fromBytes: e) requiresSpurSupport not ]].
- e size = (self fromBytes: e) wordSize]
!
More information about the Vm-dev
mailing list