[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