[ANN] Bootstrapped kernel image

Klaus D. Witzel klaus.witzel at cobss.com
Sat Nov 26 17:02:06 UTC 2005


Hi Pavel, on Sun, 30 Oct 2005 19:20:25 +0100, you wrote:

[snipp]
> Any questions?

Below is a retrofit for the full 3.7 stock image which allows you to run  
InterpreterSimulator on your kernel.image. The retrofit is from the 3.8  
stock InterpreterSimulator (in 3.8 there's another  
InterpreterSimulator/FilePlugin/SecurityManager bug which I still have to  
isolate).

Now you can do

  (InterpreterSimulatorLSB new openOn: 'kernel.image') test

and your console starts and works (Display simulated with a Form) up to  
(Smalltalk snapshot: false andQuit: true) which I just copy&paste "into"  
the console.

Great! A reasonable sized image for testing large portions of  
InterpreterSimulator etc! Thank you again.

BTW: Has anybody a method for running InterpreterSimulator's  
display+sensor access in a SystemWindow? Don't like to reinvent that wheel.

/Klaus

----------------------------

'From Squeak3.8 of ''5 May 2005'' [latest update: #6665] on 26 November  
2005 at 5:28:55 pm'!

!InterpreterSimulator methodsFor: 'interpreter shell' stamp: 'tpr  
6/23/2004 15:14'!
functionPointerFor: primIndex inClass: lookupClass
"Override Interpreter to handle the external primitives caching. See also  
internalExecuteNewMethod"
	(primIndex between: 1 and: MaxPrimitiveIndex) ifFalse:[^nil].
	^primitiveTable at: primIndex +1! !
-----------------------------
  - 20124 tallies, 20131 msec.

**Tree**
97.4% {19608ms} InterpreterSimulatorLSB(InterpreterSimulator)>>test
   |93.9% {18903ms}  
InterpreterSimulatorLSB(InterpreterSimulator)>>dispatchOn:in:
   |  |38.8% {7811ms}  
InterpreterSimulatorLSB(Interpreter)>>sendLiteralSelectorBytecode
   |  |  |37.4% {7529ms} InterpreterSimulatorLSB(Interpreter)>>normalSend
   |  |  |  35.7% {7187ms} InterpreterSimulatorLSB(Interpreter)>>commonSend
   |  |  |    34.1% {6865ms}  
InterpreterSimulatorLSB(Interpreter)>>internalExecuteNewMethod
   |  |  |      24.6% {4952ms}  
InterpreterSimulatorLSB(InterpreterSimulator)>>dispatchFunctionPointer:
   |  |  |        |7.5% {1510ms}  
InterpreterSimulatorLSB(Interpreter)>>primitiveExternalCall
   |  |  |        |  |5.1% {1027ms}  
InterpreterSimulatorLSB(InterpreterSimulator)>>ioLoadExternalFunct...omModule:OfLength:
   |  |  |        |  |  |5.1% {1027ms}  
InterpreterSimulatorLSB(InterpreterSimulator)>>ioLoadFunction:From:
   |  |  |        |  |  |  2.6% {523ms} TranscriptStream>>show:
   |  |  |        |  |  |    |2.6% {523ms} TranscriptStream>>endEntry
   |  |  |        |  |  |    |  2.6% {523ms}  
TranscriptStream(Object)>>changed:
   |  |  |        |  |  |    |    2.6% {523ms} PluggableTextMorph>>update:
   |  |  |        |  |  |    |      2.4% {483ms}  
PluggableTextMorph(Morph)>>refreshWorld
   |  |  |        |  |  |    |        2.4% {483ms}  
PasteUpMorph>>displayWorldSafely
   |  |  |        |  |  |    |          2.4% {483ms}  
WorldState>>displayWorldSafely:
[2.4% {483ms} PasteUpMorph>>displayWorld
[  2.4% {483ms} PasteUpMorph>>privateOuterDisplayWorld
[    2.4% {483ms} WorldState>>displayWorld:submorphs:
[      2.2% {443ms} WorldState>>drawWorld:submorphs:invalidAreasOn:
[        2.1% {423ms} FormCanvas(Canvas)>>fullDrawMorph:
[          2.1% {423ms} FormCanvas(Canvas)>>fullDraw:
[            2.1% {423ms} SystemWindow(Morph)>>fullDrawOn:
   |  |  |        |  |  |  2.4% {483ms}  
InterpreterSimulatorLSB(InterpreterSimulator)>>loadNewPlugin:
   |  |  |        |  |2.4% {483ms}  
InterpreterSimulatorLSB(InterpreterSimulator)>>callExternalPrimitive:
   |  |  |        |6.6% {1329ms}  
InterpreterSimulatorLSB(Interpreter)>>primitiveFullGC
   |  |  |        |  |6.5% {1309ms}  
InterpreterSimulatorLSB(InterpreterSimulator)>>fullGC
   |  |  |        |  |  6.3% {1268ms}  
InterpreterSimulatorLSB(ObjectMemory)>>fullGC
   |  |  |        |  |    3.2% {644ms}  
InterpreterSimulatorLSB(ObjectMemory)>>fullCompaction
   |  |  |        |  |      |3.1% {624ms}  
InterpreterSimulatorLSB(ObjectMemory)>>incCompBody
   |  |  |        |  |    2.4% {483ms}  
InterpreterSimulatorLSB(ObjectMemory)>>markPhase
   |  |  |        |  |      2.4% {483ms}  
InterpreterSimulatorLSB(Interpreter)>>markAndTraceInterpreterOops
   |  |  |        |  |        2.4% {483ms}  
InterpreterSimulatorLSB(ObjectMemory)>>markAndTrace:
   |  |  |        |4.1% {825ms}  
InterpreterSimulatorLSB(Interpreter)>>primitiveSomeInstance
   |  |  |        |  |4.1% {825ms}  
InterpreterSimulatorLSB(ObjectMemory)>>initialInstanceOf:
   |  |  |        |  |  2.4% {483ms}  
InterpreterSimulatorLSB(ObjectMemory)>>fetchClassOf:
   |  |  |        |2.3% {463ms}  
InterpreterSimulatorLSB(Interpreter)>>primitiveNextInstance
   |  |  |        |  2.3% {463ms}  
InterpreterSimulatorLSB(ObjectMemory)>>instanceAfter:
   |  |  |      8.2% {1651ms}  
InterpreterSimulatorLSB(Interpreter)>>internalActivateNewMethod
   |  |  |        5.1% {1027ms}  
InterpreterSimulatorLSB(Interpreter)>>internalNewActiveContext:
   |  |  |          3.7% {745ms}  
InterpreterSimulatorLSB(Interpreter)>>internalFetchContextRegisters:
   |  |9.5% {1912ms}  
InterpreterSimulatorLSB(Interpreter)>>returnTopFromMethod
   |  |  |8.6% {1731ms} InterpreterSimulatorLSB(Interpreter)>>commonReturn
   |  |  |  4.1% {825ms}  
InterpreterSimulatorLSB(Interpreter)>>internalFetchContextRegisters:
   |  |6.1% {1228ms}  
InterpreterSimulatorLSB(InterpreterSimulator)>>pushTemporaryVariableBytecode
   |  |  |4.7% {946ms}  
InterpreterSimulatorLSB(Interpreter)>>pushTemporaryVariable:
   |  |  |  3.8% {765ms} InterpreterSimulatorLSB(Interpreter)>>temporary:
   |  |  |    3.6% {725ms}  
InterpreterSimulatorLSB(ObjectMemory)>>fetchPointer:ofObject:
   |  |  |      2.3% {463ms}  
InterpreterSimulatorLSB(InterpreterSimulator)>>cCoerce:to:
   |  |  |        2.1% {423ms} SmallInteger(Integer)>>coerceTo:sim:
   |  |5.5% {1107ms}  
InterpreterSimulatorLSB(Interpreter)>>singleExtendedSendBytecode
   |  |  |5.4% {1087ms} InterpreterSimulatorLSB(Interpreter)>>normalSend
   |  |  |  5.2% {1047ms} InterpreterSimulatorLSB(Interpreter)>>commonSend
   |  |  |    5.0% {1007ms}  
InterpreterSimulatorLSB(Interpreter)>>internalExecuteNewMethod
   |  |  |      4.1% {825ms}  
InterpreterSimulatorLSB(InterpreterSimulator)>>dispatchFunctionPointer:
   |  |  |        3.2% {644ms}  
InterpreterSimulatorLSB(Interpreter)>>primitiveExternalCall
   |  |3.6% {725ms} InterpreterSimulatorLSB(Interpreter)>>bytecodePrimAt
   |  |2.2% {443ms} InterpreterSimulatorLSB(Interpreter)>>bytecodePrimEqual
   |  |2.1% {423ms} InterpreterSimulatorLSB(Interpreter)>>returnTopFromBlock
   |  |2.0% {403ms}  
InterpreterSimulatorLSB(Interpreter)>>bytecodePrimValueWithArg
   |3.5% {705ms} primitives
2.5% {503ms} InterpreterSimulatorLSB(InterpreterSimulator)>>openOn:
   2.5% {503ms}  
InterpreterSimulatorLSB(InterpreterSimulator)>>openOn:extraMemory:
     2.4% {483ms}  
InterpreterSimulatorLSB(Interpreter)>>initializeInterpreter:

**Leaves**
10.0% {2013ms} String>>=
8.6% {1731ms} CArray>>interpreter:address:unitSize:
6.9% {1389ms} InterpreterSimulatorLSB(InterpreterSimulator)>>longAt:
5.0% {1007ms} CArray>>+
4.1% {825ms} SmallInteger(Integer)>><<
3.5% {705ms} InterpreterSimulatorLSB(InterpreterSimulator)>>test
3.4% {684ms} InterpreterSimulatorLSB(InterpreterSimulator)>>longAt:put:
3.4% {684ms} InterpreterSimulatorLSB(InterpreterSimulator)>>cCoerce:to:
2.7% {544ms} InterpreterSimulatorLSB(ObjectMemory)>>fetchPointer:ofObject:
2.6% {523ms} SmallInteger(Integer)>>>>
2.2% {443ms} String(Object)>>species
2.2% {443ms} SmallInteger(Integer)>>coerceTo:sim:
2.1% {423ms} GrafPort(BitBlt)>>displayString:from:to:at:strikeFont:kern:

**Memory**
	old			-343,356 bytes
	young		-39,332 bytes
	used		-382,688 bytes
	free		+2,279,080 bytes

**GCs**
	full			2 totalling 204ms (1.0% uptime), avg 102.0ms
	incr		2033 totalling 476ms (2.0% uptime), avg 0.0ms
	tenures		10 (avg 203 GCs/tenure)
	root table	0 overflows




More information about the Squeak-dev mailing list