Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.3139.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.3139 Author: eem Time: 14 January 2022, 9:51:18.52117 pm UUID: 6f3e6215-11f9-48ff-aaf4-defb29288db8 Ancestors: VMMaker.oscog-eem.3138
In-image compilation: initialize the CoInterpreter well enough (in setUpForUseByFacade:) to not be misled into thinking profiling is in effect.
=============== Diff against VMMaker.oscog-eem.3138 ===============
Item was changed: ----- Method: CoInterpreter>>setUpForUseByFacade: (in category 'debug support') ----- setUpForUseByFacade: aCurrentImageCoInterpreterFacade "Set up variables with default values so that other initializations work. numStackPages needs to be initialized so that interpreterAllocationReserveBytes can be computed." <doNotGenerate> + numStackPages := 0. + method := newMethod := profileSemaphore := profileProcess := profileMethod := objectMemory nilObject! - numStackPages := 0!
Item was added: + ----- Method: CurrentImageCoInterpreterFacade>>coInterpreter (in category 'accessing') ----- + coInterpreter + ^coInterpreter!
Item was changed: ----- Method: CurrentImageCoInterpreterFacade>>cogit: (in category 'initialize-release') ----- cogit: aCogit cogit := aCogit. cogit objectMemory ifNil: [cogit instVarNamed: 'objectMemory' put: objectMemory]. coInterpreter cogit: aCogit. (objectMemory respondsTo: #cogit:) ifTrue: [objectMemory cogit: aCogit]. (objectMemory respondsTo: #coInterpreter:) ifTrue: [objectMemory coInterpreter: coInterpreter]. coInterpreter setUpForUseByFacade: self. + objectMemory setUpForUseByFacade: self! - objectMemory setUpForUseByFacade: self. - self initializeObjectMap!
Item was changed: ----- Method: CurrentImageCoInterpreterFacade>>initialize (in category 'initialize-release') ----- initialize objectMemory := self class objectMemoryClass simulatorClass new. objectMemory allocateMemoryOfSize: 4*1024*1024. memory := objectMemory memory. objectMemory initializeFreeSpaceForFacadeFrom: self startOfMemory to: self variablesBase. coInterpreter := CoInterpreter new. coInterpreter instVarNamed: 'objectMemory' put: (false ifTrue: [objectMemory] ifFalse: [self]); instVarNamed: 'primitiveTable' put: (CArrayAccessor on: CoInterpreter primitiveTable copy). + variables := Dictionary new. + self initializeObjectMap! - variables := Dictionary new!
Item was removed: - ----- Method: CurrentImageCoInterpreterFacade>>primitivePropertyFlags: (in category 'accessing') ----- - primitivePropertyFlags: primIndex - ^coInterpreter primitivePropertyFlags: primIndex!
Item was changed: ----- Method: CurrentImageCoInterpreterFacade>>splObj: (in category 'accessing') ----- splObj: splObjIndex ^splObjIndex caseOf: { [ClassArray] -> [self oopForObject: Array]. + [ClassByteArray] -> [self oopForObject: ByteArray]. [ClassCharacter] -> [self oopForObject: Character]. [ClassLargeNegativeInteger] -> [self oopForObject: LargeNegativeInteger]. + [ClassLargePositiveInteger] -> [self oopForObject: LargePositiveInteger]. - [ClassLargePositiveInteger] -> [self oopForObject: LargePositiveInteger]. [ClassSmallInteger] -> [self oopForObject: SmallInteger]. [CompactClasses] -> [self oopForObject: Smalltalk compactClassesArray]. + [LowcodeContextMark] -> [self oopForObject: (Smalltalk globals at: #LowcodeNativeContext ifPresent: [:cls | cls signalingObject ]) ] - [LowcodeContextMark] -> [self oopForObject: (Smalltalk globals at: #LowcodeNativeContext ifPresent: [:cls | cls signalingObject ]) ] }!
vm-dev@lists.squeakfoundation.org