[Vm-dev] VM Maker: VMMaker.oscog-eem.1447.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Sep 1 18:41:06 UTC 2015


Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1447.mcz

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

Name: VMMaker.oscog-eem.1447
Author: eem
Time: 1 September 2015, 11:38:44.935 am
UUID: 21232acb-44b6-4dc4-a345-108a56a916a8
Ancestors: VMMaker.oscog-eem.1446

Whoops!  Several of the flags were inverted when computing the flag word written to the image header.  Also, queueMourner: must check for an empty or full queue.

=============== Diff against VMMaker.oscog-eem.1446 ===============

Item was changed:
  ----- Method: CoInterpreter>>getImageHeaderFlags (in category 'image save/restore') -----
  getImageHeaderFlags
  	"Answer the flags that are contained in the 7th long of the image header."
  	^fullScreenFlag "0 or 1"
  	+ (VMBIGENDIAN ifTrue: [0] ifFalse: [2]) "this is the imageFloatsLittleEndian flag"
  	+ (flagInterpretedMethods ifTrue: [8] ifFalse: [0])
  	+ (preemptionYields ifTrue: [0] ifFalse: [16r10])
+ 	+ (newFinalization ifTrue: [16r40] ifFalse: [0])
- 	+ (newFinalization ifTrue: [0] ifFalse: [16r40])
  	+ (imageHeaderFlags bitClear: 16r5B) "these are any flags we do not recognize"!

Item was changed:
  ----- Method: CoInterpreterMT>>getImageHeaderFlags (in category 'image save/restore') -----
  getImageHeaderFlags
  	"Answer the flags that are contained in the 7th long of the image header."
  	^fullScreenFlag "0 or 1"
  	+ (VMBIGENDIAN ifTrue: [0] ifFalse: [2]) "this is the imageFloatsLittleEndian flag"
+ 	+ (processHasThreadId ifTrue: [4] ifFalse: [0])
- 	+ (processHasThreadId ifTrue: [0] ifFalse: [4])
  	+ (flagInterpretedMethods ifTrue: [8] ifFalse: [0])
  	+ (preemptionYields ifTrue: [0] ifFalse: [16r10])
  	+ (noThreadingOfGUIThread ifTrue: [16r20] ifFalse: [0])
+ 	+ (newFinalization ifTrue: [16r40] ifFalse: [0])
- 	+ (newFinalization ifTrue: [0] ifFalse: [16r40])
  	+ (imageHeaderFlags bitClear: 16r7F) "these are any flags we do not recognize"!

Item was removed:
- ----- Method: SpurMemoryManager>>queueEphemeron: (in category 'weakness and ephemerality') -----
- queueEphemeron: anEphemeron
- 	"Add the ephemeron to the queue and make it non-ephemeral, to avoid subsequent firing.
- 	 Alas this means that other ephemerons on the same object not identified in this sccavenge
- 	 or GC will not fire until later.  But that's life."
- 	self assert: ((self isNonImmediate: anEphemeron)
- 				and: [(self formatOf: anEphemeron) = self ephemeronFormat]).
- 	self deny: (self is: anEphemeron onObjStack: mournQueue).
- 	self push: anEphemeron onObjStack: mournQueue.
- 	self setFormatOf: anEphemeron to: self nonIndexablePointerFormat!

Item was changed:
  ----- Method: SpurMemoryManager>>queueMourner: (in category 'weakness and ephemerality') -----
  queueMourner: anEphemeronOrWeakArray
  	"Add the ephemeron to the queue and make it non-ephemeral, to avoid subsequent firing.
  	 Alas this means that other ephemerons on the same object not identified in this sccavenge
  	 or GC will not fire until later.  But that's life."
  	self assert: ((self isNonImmediate: anEphemeronOrWeakArray)
  				and: [(self formatOf: anEphemeronOrWeakArray) = self ephemeronFormat
  				   or: [(self formatOf: anEphemeronOrWeakArray) = self weakArrayFormat]]).
  	self deny: (self is: anEphemeronOrWeakArray onObjStack: mournQueue).
+ 	self ensureRoomOnObjStackAt: MournQueueRootIndex.
  	self push: anEphemeronOrWeakArray onObjStack: mournQueue.
  	(self formatOf: anEphemeronOrWeakArray) = self ephemeronFormat ifTrue:
  		[self setFormatOf: anEphemeronOrWeakArray to: self nonIndexablePointerFormat]!

Item was changed:
  ----- Method: StackInterpreter>>getImageHeaderFlags (in category 'image save/restore') -----
  getImageHeaderFlags
  	"Answer the flags that are contained in the 7th long of the image header."
  	^fullScreenFlag "0 or 1"
  	+ (VMBIGENDIAN ifTrue: [0] ifFalse: [2]) "this is the imageFloatsLittleEndian flag"
  	+ (preemptionYields ifTrue: [0] ifFalse: [16r10])
+ 	+ (newFinalization ifTrue: [16r40] ifFalse: [0])
- 	+ (newFinalization ifTrue: [0] ifFalse: [16r40])
  	+ (imageHeaderFlags bitClear: 16r53) "these are any flags we do not recognize"!



More information about the Vm-dev mailing list