[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
|