VM Maker: Cog-eem.102.mcz

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

VM Maker: Cog-eem.102.mcz

commits-2
 
Eliot Miranda uploaded a new version of Cog to project VM Maker:
http://source.squeak.org/VMMaker/Cog-eem.102.mcz

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

Name: Cog-eem.102
Author: eem
Time: 1 October 2013, 2:46:06.275 pm
UUID: daf20775-e09f-46a3-9382-fd3732f16597
Ancestors: Cog-eem.101

Change the bootstrap to leave room for JIT structures, i.e. the
stackZone and rump C stack.

Refactor launch:headerFlags: into launch:simulatorClass:headerFlags:
allowing launching a CoInterpreter/Cogit on the bootstrap image.

=============== Diff against Cog-eem.101 ===============

Item was added:
+ ----- Method: SpurBootstrap>>coHeapFrom: (in category 'testing') -----
+ coHeapFrom: aSpur32BitMMLESimulator
+ | coHeap |
+ coHeap := Spur32BitMMLECoSimulator new.
+ aSpur32BitMMLESimulator class allInstVarNames do:
+ [:ivn|
+ coHeap instVarNamed: ivn put: (aSpur32BitMMLESimulator instVarNamed: ivn)].
+ coHeap scavenger instVarNamed: 'manager' put: coHeap.
+ ^coHeap!

Item was changed:
  ----- Method: SpurBootstrap>>launch (in category 'testing') -----
  launch
+ self launch: newHeap
+ simulatorClass: StackInterpreterSimulator
+ headerFlags: oldInterpreter getImageHeaderFlags!
- self launch: newHeap headerFlags: oldInterpreter getImageHeaderFlags!

Item was removed:
- ----- Method: SpurBootstrap>>launch:headerFlags: (in category 'testing') -----
- launch: heap headerFlags: headerFlags
- | sim |
- sim := StackInterpreterSimulator onObjectMemory: heap.
- heap coInterpreter: sim.
- sim
- initializeInterpreter: 0;
- setImageHeaderFlagsFrom: headerFlags;
- imageName: ImageName;
- flushExternalPrimitives;
- openAsMorph;
- transcript: Transcript. "deep copy copies this"
- "sim
- instVarNamed: 'printSends' put: true;
- instVarNamed: 'printReturns' put: true;
- instVarNamed: 'methodDictLinearSearchLimit' put: SmallInteger maxVal." "for now"
- heap
- setCheckForLeaks: 15;
- runLeakCheckerForFullGC: true.
-
- sim halt; run!

Item was added:
+ ----- Method: SpurBootstrap>>launch:simulatorClass:headerFlags: (in category 'testing') -----
+ launch: heap simulatorClass: simulatorClass headerFlags: headerFlags
+ | sim |
+ sim := simulatorClass onObjectMemory: heap.
+ heap coInterpreter: sim.
+ (sim class allInstVarNames includes: 'cogCodeSize')
+ ifTrue:
+ [sim
+ initializeInterpreter: 0;
+ instVarNamed: 'heapBase' put: heap startOfMemory;
+ instVarNamed: 'numStackPages' put: 8;
+ instVarNamed: 'cogCodeSize' put: 1024*1024;
+ moveMethodCacheToMemoryAt: sim cogCodeSize + sim computeStackZoneSize;
+ initializeCodeGenerator]
+ ifFalse:
+ [sim initializeInterpreter: 0].
+ sim
+ setImageHeaderFlagsFrom: headerFlags;
+ imageName: ImageName;
+ flushExternalPrimitives;
+ openAsMorph;
+ transcript: Transcript. "deep copy copies this"
+ "sim
+ instVarNamed: 'printSends' put: true;
+ instVarNamed: 'printReturns' put: true;
+ instVarNamed: 'methodDictLinearSearchLimit' put: SmallInteger maxVal." "for now"
+ heap
+ setCheckForLeaks: 15;
+ runLeakCheckerForFullGC: true.
+
+ sim halt; run!

Item was changed:
  ----- Method: SpurBootstrap>>launchSaved (in category 'testing') -----
  launchSaved
+ self launch: TransformedImage veryDeepCopy
+ simulatorClass: StackInterpreterSimulator
+ headerFlags: ImageHeaderFlags!
- self launch: TransformedImage veryDeepCopy headerFlags: ImageHeaderFlags!

Item was added:
+ ----- Method: SpurBootstrap>>launchSavedWithJIT (in category 'testing') -----
+ launchSavedWithJIT
+ self launch: (self coHeapFrom: TransformedImage veryDeepCopy)
+ simulatorClass: CogVMSimulator
+ headerFlags: ImageHeaderFlags!

Item was changed:
  ----- Method: SpurBootstrap>>on: (in category 'initialize-release') -----
  on: imageName
  StackInterpreter initializeWithOptions: Dictionary new.
  oldInterpreter := StackInterpreterSimulator new.
  oldInterpreter openOn: imageName extraMemory: 0.
  oldHeap := oldInterpreter objectMemory.
  newHeap := Spur32BitMMLESimulator new.
  newHeap
  allocateMemoryOfSize: (oldHeap youngStart * 3 / 2 roundUpTo: 1024 * 1024)
  newSpaceSize: 1024 * 1024
+ stackSize: 1024 * 1024
  codeSize: 1024 * 1024.
  newHeap setCheckForLeaks: 15 - 4. "don't check become; soooo many rehashes in bootstrap"
  map := Dictionary new: oldHeap memory size // 4.
  reverseMap := Dictionary new: oldHeap memory size // 4.
  classToIndex := Dictionary new: 1024.
  literalMap := IdentityDictionary new.
  methodClasses := Set new.
  installedPrototypes := Set new!