[Vm-dev] VM Maker: ImageFormat-dtl.24.mcz
commits at source.squeak.org
commits at source.squeak.org
Sat May 13 22:24:58 UTC 2017
David T. Lewis uploaded a new version of ImageFormat to project VM Maker:
http://source.squeak.org/VMMaker/ImageFormat-dtl.24.mcz
==================== Summary ====================
Name: ImageFormat-dtl.24
Author: dtl
Time: 13 May 2017, 6:24:46.37 pm
UUID: e86c82dd-ca5b-4f79-8c64-4f93ba6b7751
Ancestors: ImageFormat-dtl.23
Additional magic file updates from Subbu http://lists.squeakfoundation.org/pipermail/vm-dev/2017-May/025076.html
=============== Diff against ImageFormat-dtl.23 ===============
Item was changed:
----- Method: ImageFormat>>printDescriptionOn: (in category 'printing') -----
printDescriptionOn: stream
+ "
+ The classic squeak image, aka V3, is 32-bit with magic 6502. The first 64-bit
+ Squeak image was generated from V3 image made by Dan Ingalls and Ian Piumarta
+ in 2005. Later, the magic code was changed to 68000.
+ After full closure support came to Squeak, the magic code changed to 6504 for
+ 32-bit and 68002 for 64-bit images by setting a capability bit.
+
+ Cog VM introduced a native order for floats under 6505 magic code. Its
+ corresponding 64b code would have been 68003 but no such image was produced.
+ Older Interpreter VMs would simply load 6505 by flipping word order back.
+
+ Cog VM also introduced a new object layout for 64-bit images called Spur layout
+ under a new magic code - 68021. A few images were also generated with 68019,
+ but this magic is now considered obsolete and deprecated.
+ "
stream nextPutAll: 'a ';
nextPutAll: (wordSize * 8) asString;
nextPutAll: '-bit ';
nextPutAll: (self requiresSpurSupport
ifTrue: [ 'Spur' ]
ifFalse: [ 'V3' ]);
nextPutAll: ' image with '.
self requiresClosureSupport ifFalse: [stream nextPutAll: 'no '].
stream nextPutAll: 'closure support and '.
self requiresNativeFloatWordOrder
ifTrue: [stream nextPutAll: 'float words stored in native platform order']
ifFalse: [stream nextPutAll: 'no native platform float word order requirement'].
self requiresSpurSupport
ifTrue: [stream nextPutAll: ' using Spur object format'.
(self is64Bit and: [self requiresNewSpur64TagAssignment not])
ifTrue: [stream nextPutAll: ' (obsolete)']].
stream nextPutAll: ' (';
nextPutAll: self asInteger asString;
nextPut: $).
^ stream
!
Item was changed:
----- Method: ImageFormat>>simpleName (in category 'printing') -----
simpleName
"Return a simple name for the format, suitable for use as filename or mimetype.
+ (ImageFormat fromInteger: 6505) simpleName."
- (ImageFormat fromInteger: 6500) simpleName."
^String streamContents: [:s |
self requiresSpurSupport
ifTrue: [ s nextPutAll: 'spur']
+ ifFalse: [s nextPutAll: 'squeak'].
+ self is64Bit ifTrue: [ s nextPutAll: '64']]!
- ifFalse: [self requiresClosureSupport
- ifTrue: [ s nextPutAll: 'cog']
- ifFalse: [s nextPutAll: 'squeak']].
- self is64Bit ifTrue: [ s nextPutAll: '64']].
- !
More information about the Vm-dev
mailing list