Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.868.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.868 Author: eem Time: 28 August 2014, 9:25:21.878 am UUID: 14a9feae-9641-497b-afe9-190e47fd6e37 Ancestors: VMMaker.oscog-eem.867
Rescue in-image compilation for V3
=============== Diff against VMMaker.oscog-eem.867 ===============
Item was changed: ----- Method: CurrentImageCoInterpreterFacade>>initialize (in category 'initialize-release') ----- initialize memory := (VMBIGENDIAN ifTrue: [Bitmap] ifFalse: [LittleEndianBitmap]) new: 1024*1024/4. objectMemory := self class objectMemoryClass simulatorClass new. + objectMemory + initializeFreeSpaceForFacadeFrom: self startOfMemory + to: self variablesBase. objectMemory memory: memory. coInterpreter := CoInterpreter new. coInterpreter instVarNamed: 'objectMemory' put: objectMemory; instVarNamed: 'primitiveTable' put: (CArrayAccessor on: CoInterpreter primitiveTable copy). variables := Dictionary new. #('stackLimit') do: [:l| self addressForLabel: l]. self initializeObjectMap!
Item was removed: - ----- Method: CurrentImageCoInterpreterFacadeForSpurObjectRepresentation>>initialize (in category 'initialize-release') ----- - initialize - super initialize. - objectMemory - initializeFreeSpaceForFacadeFrom: self startOfMemory - to: self variablesBase!
Item was added: + ----- Method: NewCoObjectMemory>>initializeFreeSpaceForFacadeFrom:to: (in category 'simulation') ----- + initializeFreeSpaceForFacadeFrom: base to: limit + freeStart := base. + endOfMemory := scavengeThreshold := limit!
Item was changed: ----- Method: Spur32BitCoMemoryManager>>initializeFreeSpaceForFacadeFrom:to: (in category 'simulation only') ----- initializeFreeSpaceForFacadeFrom: base to: limit "c.f. initializeFreeSpacePostLoad: freeListObj." | freeListObj freeBytes | newSpaceLimit := oldSpaceStart := freeStart := base. + endOfMemory := scavengeThreshold := limit. - endOfMemory := scavengeThreshold := limit.. segmentManager initSegmentForInImageCompilationFrom: base to: limit. freeListObj := self allocateSlots: self numFreeLists format: self wordIndexableFormat classIndex: self wordSizeClassIndexPun. freeLists := self firstIndexableField: freeListObj. freeListsMask := 0. 0 to: self numFreeLists - 1 do: [:i| (freeLists at: i) ~= 0 ifTrue: [freeListsMask := freeListsMask bitOr: (1 << i). freeLists at: i put: (segmentManager swizzleObj: (freeLists at: i))]]. freeBytes := segmentManager lastSegment segLimit - self bridgeSize - freeStart. freeLists at: 0 put: (self initFreeChunkWithBytes: freeBytes at: freeStart). totalFreeOldSpace := freeBytes!
vm-dev@lists.squeakfoundation.org