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

commits at source.squeak.org commits at source.squeak.org
Sat Jan 15 05:51:36 UTC 2022


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 ]) ]
  		}!



More information about the Vm-dev mailing list