VM Maker: ImageFormat-eem.45.mcz

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

VM Maker: ImageFormat-eem.45.mcz

Eliot Miranda uploaded a new version of ImageFormat to project VM Maker:

==================== Summary ====================

Name: ImageFormat-eem.45
Author: eem
Time: 28 July 2020, 2:25:22.501872 pm
UUID: 5c29675a-5d64-40de-b535-ae98b04d2f37
Ancestors: ImageFormat-eem.44

And VMMaker.oscog badly needs a class timeStamp.  This is harmless to VMMaker.

=============== Diff against ImageFormat-eem.44 ===============

Item was changed:
  Object subclass: #ImageFormat
  instanceVariableNames: 'wordSize requiresClosureSupport requiresNativeFloatWordOrder requiresSpurSupport requiresNewSpur64TagAssignment requiresMultipleBytecodeSupport'
  classVariableNames: 'BaseVersionMask BaseVersionNumbers CapabilitiesBitsMask KnownVersionNumbers MultipleBytecodeBit PlatformByteOrderBit ReservedBitsMask SpurObjectBit'
  poolDictionaries: ''
  category: 'ImageFormat-Header'!
+ ImageFormat class
+ instanceVariableNames: 'timeStamp'!
  !ImageFormat commentStamp: 'dtl 11/7/2010 22:13' prior: 0!
  ImageFormat represents the requirements of the image in terms of capabilities that must be supported by the virtual machine. The image format version is saved as an integer value in the header of an image file. When an image is loaded, the virtual machine checks the image format version to determine whether it is capable of supporting the requirements of that image.
  The image format version value is treated as a bit map of size 32, derived from the 32-bit integer value saved in the image header. Bits in the bit map represent image format requirements. For example, if the image sets bit 15 to indicate that it requires some capability from the VM, then the VM can check bit 15 and decide whether it is able to satisfy that requirement.
  The base image format numbers (6502, 6504, 68000, and 68002) utiliize 10 of the 32 available bits. The high order bit is reserved as an extension bit for future use. The remaining 21 bits are used to represent additional image format requirements. For example, the low order bit is used to indication that the image uses (and requires support for) the platform byte ordering implemented in the StackInterpreter (Cog) VM.
  "(ImageFormat fromFile: Smalltalk imageName) description"
+ ImageFormat class
+ instanceVariableNames: 'timeStamp'!

Item was added:
+ ----- Method: ImageFormat class>>noteCompilationOf:meta: (in category 'translation') -----
+ noteCompilationOf: aSelector meta: isMeta
+ "note the recompiliation by resetting the timeStamp "
+ timeStamp := Time totalSeconds.
+ ^super noteCompilationOf: aSelector meta: isMeta!

Item was added:
+ ----- Method: ImageFormat class>>timeStamp (in category 'translation') -----
+ timeStamp
+ ^timeStamp ifNil:[0]!

Item was added:
+ ----- Method: ImageFormat class>>touch (in category 'translation') -----
+ touch
+ "Reset the timeStamp"
+ "Smalltalk allClasses select:
+ [:c| (c category includesSubString: 'VMMaker-JIT') ifTrue: [c touch]]"
+ "InterpreterPlugin withAllSubclassesDo:[:pl| pl touch]"
+ timeStamp := Time totalSeconds!