VM Maker: ImageFormat-dtl.24.mcz

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
Report Content as Inappropriate

VM Maker: ImageFormat-dtl.24.mcz

David T. Lewis uploaded a new version of ImageFormat to project VM Maker:

==================== 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') -----
  "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']].
- !