This sequence of commands was working yesterday and is broken today:

  ./pharo Pharo.image save xxx; ./pharo xxx.image --quit --save ./boom.st

The contents of boom.st is the following:

    Metacello new
          baseline: 'Metacello';
repository: 'github://dalehenrich/metacello-work:master/repository';
          onConflict: [:ex | ex allow];
      load: #( 'batch' ).

I've attached to PharoDebug.log ... The Pharo.image is freshly downloaded along with the vm. Needless to say, the expression above works when run with a GUI. Oddly enough the receiver of #finish looks to be a temp named 'canvas' in the middle of the WorkState>>displayWorld:submorphs: method ... two lines earlier the' canvas' temp had to have a valid value, so this has the look of a zombie process of some sort that is being brought to life at the wrong moment ...

stdout for the run follows.

Dale

foos:voyage>./pharo Pharo.image save xxx; ./pharo xxx.image --quit --save ./boom.st
Error: MessageNotUnderstood: receiver of "finish" is nil
UndefinedObject(Object)>>error:
[ :err :rcvr |
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Search the sender chain to find the morph causing the problem"
[ errCtx notNil and: [ errCtx receiver isMorph not ] ]
    whileTrue: [ errCtx := errCtx sender ].
"If we're at the root of the context chain then we have a fatal drawing problem"
errCtx ifNil: [ ^ self handleFatalDrawingError: err ].
errMorph := errCtx receiver.
"If the morph causing the problem has already the #drawError flag set,
            then search for the next morph above in the caller chain."
errMorph hasProperty: #errorOnDraw ] whileTrue.
errMorph setProperty: #errorOnDraw toValue: true.
"Install the old error handler, so we can re-raise the error"
rcvr error: err ] in WorldState>>displayWorldSafely: in Block: [ :err :rcvr | ...
BlockClosure>>cull:cull:
[ :ex | errorHandlerBlock cull: ex description cull: ex receiver ] in BlockClosure>>ifError: in Block: [ :ex | errorHandlerBlock cull: ex description cul...etc...
BlockClosure>>cull:
Context>>evaluateSignal:
Context>>handleSignal:
MessageNotUnderstood(Exception)>>signal
UndefinedObject(Object)>>doesNotUnderstand: #finish
WorldState>>displayWorld:submorphs:
WorldMorph>>displayWorld
[ aWorld displayWorld ] in WorldState>>displayWorldSafely: in Block: [ aWorld displayWorld ]
BlockClosure>>on:do:
BlockClosure>>ifError:
WorldState>>displayWorldSafely:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
WorldMorph>>doOneCycle
[ [ World doOneCycle.
Processor yield.
false ] whileFalse: [ ] ] in MorphicUIManager>>spawnNewProcess in Block: [ [ World doOneCycle....
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess in Block: [ self value....

Metacello new
          baseline: 'Metacello';
          repository: 'github://dalehenrich/metacello-work:master/repository';
          onConflict: [:ex | ex allow];
          load: #( 'batch' ).
THERE_BE_DRAGONS_HERE
Error: MessageNotUnderstood: receiver of "finish" is nil
28 July 2016 1:33:59.367135 pm

VM: unix - i686 - linux-gnu - CoInterpreter VMMaker.oscog-eem.1855 uuid: d8e4a3c2-a3bf-4adc-b224-8012903a1ef4 May  4 2016
StackToRegisterMappingCogit VMMaker.oscog-eem.1855 uuid: d8e4a3c2-a3bf-4adc-b224-8012903a1ef4 May  4 2016
https://github.com/pharo-project/pharo-vm.git Commit: b8ec25a570d7539653e1d793e97609adb509aaed Date: 2016-05-04 11:14:22 +0200 By: Esteban Lorenzano <[email protected]> Jenkins build #589

Image: Pharo5.0 [Latest update: #50760]

UndefinedObject(Object)>>error:
	Receiver: nil
	Arguments and temporary variables: 
		aString: 	'MessageNotUnderstood: receiver of "finish" is nil'
	Receiver's instance variables: 
nil

[ :err :rcvr | 
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Search the sender chain to find the morph causing the problem"
[ errCtx notNil and: [ errCtx receiver isMorph not ] ]
	whileTrue: [ errCtx := errCtx sender ].
"If we're at the root of the context chain then we have a fatal drawing problem"
errCtx ifNil: [ ^ self handleFatalDrawingError: err ].
errMorph := errCtx receiver.
"If the morph causing the problem has already the #drawError flag set,
			then search for the next morph above in the caller chain."
errMorph hasProperty: #errorOnDraw ] whileTrue.
errMorph setProperty: #errorOnDraw toValue: true.
"Install the old error handler, so we can re-raise the error"
rcvr error: err ] in WorldState>>displayWorldSafely:
	Receiver: a WorldState
	Arguments and temporary variables: 
		aWorld: 	a WorldMorph(562956288) [world]
		err: 	'MessageNotUnderstood: receiver of "finish" is nil'
		rcvr: 	nil
		errCtx: 	WorldMorph>>displayWorld
		errMorph: 	a WorldMorph(562956288) [world]
	Receiver's instance variables: 
		hands: 	an Array(a HandMorph(293089792))
		viewBox: 	(0@0) corner: (976@665)
		canvas: 	nil
		damageRecorder: 	a DamageRecorder
		stepList: 	a Heap()
		lastStepTime: 	2912
		lastStepMessage: 	nil
		lastCycleTime: 	52
		alarms: 	a Heap()
		lastAlarmTime: 	54
		menuBuilder: 	nil


BlockClosure>>cull:cull:
	Receiver: [ :err :rcvr | 
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Sea...etc...
	Arguments and temporary variables: 
		firstArg: 	'MessageNotUnderstood: receiver of "finish" is nil'
		secondArg: 	nil
	Receiver's instance variables: 
		outerContext: 	WorldState>>displayWorldSafely:
		startpc: 	89
		numArgs: 	2


[ :ex | errorHandlerBlock cull: ex description cull: ex receiver ] in BlockClosure>>ifError:
	Receiver: [ aWorld displayWorld ]
	Arguments and temporary variables: 
		errorHandlerBlock: 	[ :err :rcvr | 
| errCtx errMorph |
errCtx := thisContext.
[...etc...
		ex: 	MessageNotUnderstood: receiver of "finish" is nil
	Receiver's instance variables: 
		outerContext: 	WorldState>>displayWorldSafely:
		startpc: 	82
		numArgs: 	0


BlockClosure>>cull:
	Receiver: [ :ex | errorHandlerBlock cull: ex description cull: ex receiver ]
	Arguments and temporary variables: 
		anArg: 	MessageNotUnderstood: receiver of "finish" is nil
	Receiver's instance variables: 
		outerContext: 	BlockClosure>>ifError:
		startpc: 	40
		numArgs: 	1


Context>>evaluateSignal:
	Receiver: BlockClosure>>on:do:
	Arguments and temporary variables: 
		exception: 	MessageNotUnderstood: receiver of "finish" is nil
		value: 	nil
	Receiver's instance variables: 
		sender: 	BlockClosure>>ifError:
		pc: 	18
		stackp: 	2
		method: 	BlockClosure>>#on:do:
		closureOrNil: 	nil
		receiver: 	[ aWorld displayWorld ]


Context>>handleSignal:
	Receiver: BlockClosure>>on:do:
	Arguments and temporary variables: 
		exception: 	MessageNotUnderstood: receiver of "finish" is nil
	Receiver's instance variables: 
		sender: 	BlockClosure>>ifError:
		pc: 	18
		stackp: 	2
		method: 	BlockClosure>>#on:do:
		closureOrNil: 	nil
		receiver: 	[ aWorld displayWorld ]


MessageNotUnderstood(Exception)>>signal
	Receiver: MessageNotUnderstood: receiver of "finish" is nil
	Arguments and temporary variables: 

	Receiver's instance variables: 
		messageText: 	nil
		tag: 	nil
		signaler: 	nil
		signalContext: 	MessageNotUnderstood(Exception)>>signal
		handlerContext: 	BlockClosure>>on:do:
		outerContext: 	nil
		message: 	finish
		receiver: 	nil
		reachedDefaultHandler: 	false


UndefinedObject(Object)>>doesNotUnderstand: #finish
	Receiver: nil
	Arguments and temporary variables: 
		aMessage: 	finish
		exception: 	MessageNotUnderstood: receiver of "finish" is nil
		resumeValue: 	nil
	Receiver's instance variables: 
nil

WorldState>>displayWorld:submorphs:
	Receiver: a WorldState
	Arguments and temporary variables: 
		allDamage: 	an OrderedCollection((0@0) corner: (240@120))
		handsToDraw: 	#()
		aWorld: 	a WorldMorph(562956288) [world]
		submorphs: 	an Array(a TaskbarMorph(804941056) a SystemWindow(426322176) an Imag...etc...
		deferredUpdateMode: 	true
	Receiver's instance variables: 
		hands: 	an Array(a HandMorph(293089792))
		viewBox: 	(0@0) corner: (976@665)
		canvas: 	nil
		damageRecorder: 	a DamageRecorder
		stepList: 	a Heap()
		lastStepTime: 	2912
		lastStepMessage: 	nil
		lastCycleTime: 	52
		alarms: 	a Heap()
		lastAlarmTime: 	54
		menuBuilder: 	nil


WorldMorph>>displayWorld
	Receiver: a WorldMorph(562956288) [world]
	Arguments and temporary variables: 

	Receiver's instance variables: 
		bounds: 	(0@0) corner: (976@665)
		owner: 	nil
		submorphs: 	an Array(a TaskbarMorph(804941056) a SystemWindow(426322176) an Imag...etc...
		fullBounds: 	nil
		color: 	(Color r: 0.937 g: 0.937 b: 0.937 alpha: 1.0)
		extension: 	a MorphExtension (501529344) [other:  (dragEnabled -> true) (dropEna...etc...
		borderWidth: 	0
		borderColor: 	(Color r: 0.861 g: 1.0 b: 0.722 alpha: 1.0)
		backgroundMorph: 	nil
		worldState: 	a WorldState
		griddingOn: 	nil
		osWindow: 	nil
		session: 	nil


[ aWorld displayWorld ] in WorldState>>displayWorldSafely:
	Receiver: a WorldState
	Arguments and temporary variables: 
		aWorld: 	a WorldMorph(562956288) [world]
	Receiver's instance variables: 
		hands: 	an Array(a HandMorph(293089792))
		viewBox: 	(0@0) corner: (976@665)
		canvas: 	nil
		damageRecorder: 	a DamageRecorder
		stepList: 	a Heap()
		lastStepTime: 	2912
		lastStepMessage: 	nil
		lastCycleTime: 	52
		alarms: 	a Heap()
		lastAlarmTime: 	54
		menuBuilder: 	nil


BlockClosure>>on:do:
	Receiver: [ aWorld displayWorld ]
	Arguments and temporary variables: 
		exception: 	Error
		handlerAction: 	[ :ex | errorHandlerBlock cull: ex description cull: ex receiver...etc...
	Receiver's instance variables: 
		outerContext: 	WorldState>>displayWorldSafely:
		startpc: 	82
		numArgs: 	0


BlockClosure>>ifError:
	Receiver: [ aWorld displayWorld ]
	Arguments and temporary variables: 
		errorHandlerBlock: 	[ :err :rcvr | 
| errCtx errMorph |
errCtx := thisContext.
[...etc...
	Receiver's instance variables: 
		outerContext: 	WorldState>>displayWorldSafely:
		startpc: 	82
		numArgs: 	0


WorldState>>displayWorldSafely:
	Receiver: a WorldState
	Arguments and temporary variables: 
		aWorld: 	a WorldMorph(562956288) [world]
	Receiver's instance variables: 
		hands: 	an Array(a HandMorph(293089792))
		viewBox: 	(0@0) corner: (976@665)
		canvas: 	nil
		damageRecorder: 	a DamageRecorder
		stepList: 	a Heap()
		lastStepTime: 	2912
		lastStepMessage: 	nil
		lastCycleTime: 	52
		alarms: 	a Heap()
		lastAlarmTime: 	54
		menuBuilder: 	nil


WorldState>>doOneCycleNowFor:
	Receiver: a WorldState
	Arguments and temporary variables: 
		aWorld: 	a WorldMorph(562956288) [world]
	Receiver's instance variables: 
		hands: 	an Array(a HandMorph(293089792))
		viewBox: 	(0@0) corner: (976@665)
		canvas: 	nil
		damageRecorder: 	a DamageRecorder
		stepList: 	a Heap()
		lastStepTime: 	2912
		lastStepMessage: 	nil
		lastCycleTime: 	52
		alarms: 	a Heap()
		lastAlarmTime: 	54
		menuBuilder: 	nil


WorldState>>doOneCycleFor:
	Receiver: a WorldState
	Arguments and temporary variables: 
		aWorld: 	a WorldMorph(562956288) [world]
	Receiver's instance variables: 
		hands: 	an Array(a HandMorph(293089792))
		viewBox: 	(0@0) corner: (976@665)
		canvas: 	nil
		damageRecorder: 	a DamageRecorder
		stepList: 	a Heap()
		lastStepTime: 	2912
		lastStepMessage: 	nil
		lastCycleTime: 	52
		alarms: 	a Heap()
		lastAlarmTime: 	54
		menuBuilder: 	nil


WorldMorph>>doOneCycle
	Receiver: a WorldMorph(562956288) [world]
	Arguments and temporary variables: 

	Receiver's instance variables: 
		bounds: 	(0@0) corner: (976@665)
		owner: 	nil
		submorphs: 	an Array(a TaskbarMorph(804941056) a SystemWindow(426322176) an Imag...etc...
		fullBounds: 	nil
		color: 	(Color r: 0.937 g: 0.937 b: 0.937 alpha: 1.0)
		extension: 	a MorphExtension (501529344) [other:  (dragEnabled -> true) (dropEna...etc...
		borderWidth: 	0
		borderColor: 	(Color r: 0.861 g: 1.0 b: 0.722 alpha: 1.0)
		backgroundMorph: 	nil
		worldState: 	a WorldState
		griddingOn: 	nil
		osWindow: 	nil
		session: 	nil


[ [ World doOneCycle.
Processor yield.
false ] whileFalse: [  ] ] in MorphicUIManager>>spawnNewProcess
	Receiver: a MorphicUIManager
	Arguments and temporary variables: 

	Receiver's instance variables: 
		interactiveParser: 	nil
		activeTranscript: 	nil


[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
	Receiver: [ [ World doOneCycle.
Processor yield.
false ] whileFalse: [  ] ]
	Arguments and temporary variables: 

	Receiver's instance variables: 
		outerContext: 	MorphicUIManager>>spawnNewProcess
		startpc: 	65
		numArgs: 	0



--- The full stack ---
UndefinedObject(Object)>>error:
[ :err :rcvr | 
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Search the sender chain to find the morph causing the problem"
[ errCtx notNil and: [ errCtx receiver isMorph not ] ]
	whileTrue: [ errCtx := errCtx sender ].
"If we're at the root of the context chain then we have a fatal drawing problem"
errCtx ifNil: [ ^ self handleFatalDrawingError: err ].
errMorph := errCtx receiver.
"If the morph causing the problem has already the #drawError flag set,
			then search for the next morph above in the caller chain."
errMorph hasProperty: #errorOnDraw ] whileTrue.
errMorph setProperty: #errorOnDraw toValue: true.
"Install the old error handler, so we can re-raise the error"
rcvr error: err ] in WorldState>>displayWorldSafely:
BlockClosure>>cull:cull:
[ :ex | errorHandlerBlock cull: ex description cull: ex receiver ] in BlockClosure>>ifError:
BlockClosure>>cull:
Context>>evaluateSignal:
Context>>handleSignal:
MessageNotUnderstood(Exception)>>signal
UndefinedObject(Object)>>doesNotUnderstand: #finish
WorldState>>displayWorld:submorphs:
WorldMorph>>displayWorld
[ aWorld displayWorld ] in WorldState>>displayWorldSafely:
BlockClosure>>on:do:
BlockClosure>>ifError:
WorldState>>displayWorldSafely:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
WorldMorph>>doOneCycle
[ [ World doOneCycle.
Processor yield.
false ] whileFalse: [  ] ] in MorphicUIManager>>spawnNewProcess
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------

Processes and their stacks: 
Process: a Process in [ self value.
Processor terminateActive ] in BlockClosure>>newProcess
  stack:

[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in DelayExperimentalSpinScheduler(DelayMicrosecondScheduler)>>runTimerEventLoop
  stack:

DelayExperimentalSpinScheduler(DelayMicrosecondScheduler)>>runTimerEventLoop
[ self runTimerEventLoop ] in DelayExperimentalSpinScheduler(DelayMicrosecondScheduler)>>startTimerEventLoop
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in [ self schedule.
"It is critical that the following has no suspension point so that
	the test and the wait primitive are atomic. In addition, if the delay
	is no longer being waited on while entering the way we know that it 
	is expired because the delay has already fired."
beingWaitedOn
	ifTrue: [ delaySemaphore wait ]
	ifFalse: [ expired := true ] ] in DelayWaitTimeout>>wait
  stack:

[ self schedule.
"It is critical that the following has no suspension point so that
	the test and the wait primitive are atomic. In addition, if the delay
	is no longer being waited on while entering the way we know that it 
	is expired because the delay has already fired."
beingWaitedOn
	ifTrue: [ delaySemaphore wait ]
	ifFalse: [ expired := true ] ] in DelayWaitTimeout>>wait
BlockClosure>>ensure:
DelayWaitTimeout>>wait
Semaphore>>waitTimeoutMSecs:
Socket>>waitForConnectionFor:ifTimedOut:
Socket>>connectTo:port:waitForConnectionFor:
ZdcSecureSocketStream(ZdcAbstractSocketStream)>>socketConnectTo:port:
ZdcSecureSocketStream(ZdcSimpleSocketStream)>>connectTo:port:
ZdcSecureSocketStream class(ZdcSimpleSocketStream class)>>openConnectionToHost:port:timeout:
ZnNetworkingUtils>>socketStreamToUrlDirectly:
ZnNetworkingUtils>>socketStreamToUrl:
ZnNetworkingUtils class>>socketStreamToUrl:
ZnClient>>newConnectionTo:
ZnClient>>getConnectionAndExecute
ZnClient>>executeWithRedirectsRemaining:
[ self executeWithRedirectsRemaining: self maxNumberOfRedirects ] in ZnClient>>executeWithRetriesRemaining:
BlockClosure>>on:do:
ZnClient>>executeWithRetriesRemaining:
[ self executeWithRetriesRemaining: self numberOfRetries ] in [ [ self executeWithRetriesRemaining: self numberOfRetries ]
	on: Error
	do: self ifFailBlock ] in ZnClient>>executeWithTimeout
BlockClosure>>on:do:
------------------------------

Process: a Process in nil
  stack:

Array(SequenceableCollection)>>do:
[ :logger | 
logger
	nextPutAll: 'Processes and their stacks: ';
	cr.
Process allInstances
	do: [ :each | 
		| ctx |
		logger
			nextPutAll: 'Process: ';
			print: each;
			cr;
			nextPutAll: '  stack:';
			cr;
			cr.
		ctx := each isActiveProcess
			ifTrue: [ thisContext sender ]
			ifFalse: [ each suspendedContext ].
		ctx
			ifNotNil: [ (ctx stackOfSize: 20)
					do: [ :s | 
						logger
							print: s;
							cr ] ].
		logger
			nextPutAll: '------------------------------';
			cr;
			cr ] ] in [ Smalltalk logError: aString inContext: aContext.

" Print stacks of all current processes "
Smalltalk
	logDuring: [ :logger | 
		logger
			nextPutAll: 'Processes and their stacks: ';
			cr.
		Process allInstances
			do: [ :each | 
				| ctx |
				logger
					nextPutAll: 'Process: ';
					print: each;
					cr;
					nextPutAll: '  stack:';
					cr;
					cr.
				ctx := each isActiveProcess
					ifTrue: [ thisContext sender ]
					ifFalse: [ each suspendedContext ].
				ctx
					ifNotNil: [ (ctx stackOfSize: 20)
							do: [ :s | 
								logger
									print: s;
									cr ] ].
				logger
					nextPutAll: '------------------------------';
					cr;
					cr ] ] ] in NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage:
[ logStream := self openLog.
aMonadicBlock value: logStream ] in SmalltalkImage>>logDuring:
BlockClosure>>ensure:
SmalltalkImage>>logDuring:
[ Smalltalk logError: aString inContext: aContext.

" Print stacks of all current processes "
Smalltalk
	logDuring: [ :logger | 
		logger
			nextPutAll: 'Processes and their stacks: ';
			cr.
		Process allInstances
			do: [ :each | 
				| ctx |
				logger
					nextPutAll: 'Process: ';
					print: each;
					cr;
					nextPutAll: '  stack:';
					cr;
					cr.
				ctx := each isActiveProcess
					ifTrue: [ thisContext sender ]
					ifFalse: [ each suspendedContext ].
				ctx
					ifNotNil: [ (ctx stackOfSize: 20)
							do: [ :s | 
								logger
									print: s;
									cr ] ].
				logger
					nextPutAll: '------------------------------';
					cr;
					cr ] ] ] in NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage:
BlockClosure>>ensure:
NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage:
NonInteractiveUIManager(CommandLineUIManager)>>unhandledErrorDefaultAction:
UnhandledError>>defaultAction
UndefinedObject>>handleSignal:
UnhandledError(Exception)>>signal
UnhandledError class>>signalForException:
Error>>defaultAction
UndefinedObject>>handleSignal:
Error(Exception)>>signal
Error(Exception)>>signal:
UndefinedObject(Object)>>error:
[ :err :rcvr | 
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Search the sender chain to find the morph causing the problem"
[ errCtx notNil and: [ errCtx receiver isMorph not ] ]
	whileTrue: [ errCtx := errCtx sender ].
"If we're at the root of the context chain then we have a fatal drawing problem"
errCtx ifNil: [ ^ self handleFatalDrawingError: err ].
errMorph := errCtx receiver.
"If the morph causing the problem has already the #drawError flag set,
			then search for the next morph above in the caller chain."
errMorph hasProperty: #errorOnDraw ] whileTrue.
errMorph setProperty: #errorOnDraw toValue: true.
"Install the old error handler, so we can re-raise the error"
rcvr error: err ] in WorldState>>displayWorldSafely:
BlockClosure>>cull:cull:
------------------------------

Process: a Process in WeakArray class>>finalizationProcess
  stack:

WeakArray class>>finalizationProcess
[ self finalizationProcess ] in WeakArray class>>restartFinalizationProcess
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in InputEventFetcher>>waitForInput
  stack:

InputEventFetcher>>waitForInput
InputEventFetcher>>eventLoop
[ self eventLoop ] in InputEventFetcher>>installEventLoop
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in [ self value.
Processor terminateActive ] in BlockClosure>>newProcess
  stack:

[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in SmalltalkImage>>lowSpaceWatcher
  stack:

SmalltalkImage>>lowSpaceWatcher
[ self lowSpaceWatcher ] in SmalltalkImage>>installLowSpaceWatcher
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in [ self value.
Processor terminateActive ] in BlockClosure>>newProcess
  stack:

[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in [ self value.
Processor terminateActive ] in BlockClosure>>newProcess
  stack:

[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in [ self value.
Processor terminateActive ] in BlockClosure>>newProcess
  stack:

[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

THERE_BE_DRAGONS_HERE
FileDoesNotExist: File @ /export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/boom.st
28 July 2016 1:35:53.727574 pm

VM: unix - i686 - linux-gnu - CoInterpreter VMMaker.oscog-eem.1855 uuid: d8e4a3c2-a3bf-4adc-b224-8012903a1ef4 May  4 2016
StackToRegisterMappingCogit VMMaker.oscog-eem.1855 uuid: d8e4a3c2-a3bf-4adc-b224-8012903a1ef4 May  4 2016
https://github.com/pharo-project/pharo-vm.git Commit: b8ec25a570d7539653e1d793e97609adb509aaed Date: 2016-05-04 11:14:22 +0200 By: Esteban Lorenzano <[email protected]> Jenkins build #589

Image: Pharo5.0 [Latest update: #50760]

FileHandle>>streamError
	Receiver: a FileHandle
	Arguments and temporary variables: 

	Receiver's instance variables: 
		reference: 	File @ /export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/boo...etc...
		writable: 	false
		id: 	nil


FileHandle>>readStream
	Receiver: a FileHandle
	Arguments and temporary variables: 

	Receiver's instance variables: 
		reference: 	File @ /export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/boo...etc...
		writable: 	false
		id: 	nil


FileSystem>>readStreamOn:
	Receiver: a FileSystem
	Arguments and temporary variables: 
		aResolvable: 	Path / 'export' / 'foos1' / 'users' / 'dhenrich' / 'dev' / '_home'...etc...
	Receiver's instance variables: 
		workingDirectory: 	Path / 'export' / 'foos1' / 'users' / 'dhenrich' / 'dev' / '_...etc...
		store: 	an UnixStore


FileReference>>readStream
	Receiver: File @ /export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/boom.st
	Arguments and temporary variables: 

	Receiver's instance variables: 
		filesystem: 	a FileSystem
		path: 	Path / 'export' / 'foos1' / 'users' / 'dhenrich' / 'dev' / '_home' / 'dev...etc...


FileReference(AbstractFileReference)>>readStreamDo:
	Receiver: File @ /export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/boom.st
	Arguments and temporary variables: 
		aBlock: 	[ :stream | 
self
	handleErrorsDuring: [ codeImporter := CodeImporter f...etc...
		stream: 	nil
	Receiver's instance variables: 
		filesystem: 	a FileSystem
		path: 	Path / 'export' / 'foos1' / 'users' / 'dhenrich' / 'dev' / '_home' / 'dev...etc...


STCommandLineHandler>>installSourceFile:
	Receiver: a STCommandLineHandler
	Arguments and temporary variables: 
		codeImporter: 	nil
		aReference: 	File @ /export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/bo...etc...
	Receiver's instance variables: 
		commandLine: 	a CommandLineArguments
		session: 	a WorkingSession
		stdout: 	a VTermOutputDriver
		stderr: 	a VTermOutputDriver
		sourceFiles: 	an OrderedCollection(File @ /export/foos1/users/dhenrich/dev/_home...etc...


[ :reference | self installSourceFile: reference ] in [ sourceFiles do: [ :reference | self installSourceFile: reference ] ] in STCommandLineHandler>>installSourceFiles
	Receiver: a STCommandLineHandler
	Arguments and temporary variables: 
		reference: 	File @ /export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/boo...etc...
	Receiver's instance variables: 
		commandLine: 	a CommandLineArguments
		session: 	a WorkingSession
		stdout: 	a VTermOutputDriver
		stderr: 	a VTermOutputDriver
		sourceFiles: 	an OrderedCollection(File @ /export/foos1/users/dhenrich/dev/_home...etc...


OrderedCollection>>do:
	Receiver: an OrderedCollection(File @ /export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/boom...etc...
	Arguments and temporary variables: 
		aBlock: 	[ :reference | self installSourceFile: reference ]
		index: 	1
	Receiver's instance variables: 
		array: 	an Array(File @ /export/foos1/users/dhenrich/dev/_home/dev/clients/voyag...etc...
		firstIndex: 	1
		lastIndex: 	1


[ sourceFiles do: [ :reference | self installSourceFile: reference ] ] in STCommandLineHandler>>installSourceFiles
	Receiver: a STCommandLineHandler
	Arguments and temporary variables: 

	Receiver's instance variables: 
		commandLine: 	a CommandLineArguments
		session: 	a WorkingSession
		stdout: 	a VTermOutputDriver
		stderr: 	a VTermOutputDriver
		sourceFiles: 	an OrderedCollection(File @ /export/foos1/users/dhenrich/dev/_home...etc...


BlockClosure>>ensure:
	Receiver: [ sourceFiles do: [ :reference | self installSourceFile: reference ] ]
	Arguments and temporary variables: 
		aBlock: 	[ sourceFiles := nil ]
		complete: 	nil
		returnValue: 	nil
	Receiver's instance variables: 
		outerContext: 	STCommandLineHandler>>installSourceFiles
		startpc: 	34
		numArgs: 	0


STCommandLineHandler>>installSourceFiles
	Receiver: a STCommandLineHandler
	Arguments and temporary variables: 

	Receiver's instance variables: 
		commandLine: 	a CommandLineArguments
		session: 	a WorkingSession
		stdout: 	a VTermOutputDriver
		stderr: 	a VTermOutputDriver
		sourceFiles: 	an OrderedCollection(File @ /export/foos1/users/dhenrich/dev/_home...etc...


STCommandLineHandler>>activate
	Receiver: a STCommandLineHandler
	Arguments and temporary variables: 

	Receiver's instance variables: 
		commandLine: 	a CommandLineArguments
		session: 	a WorkingSession
		stdout: 	a VTermOutputDriver
		stderr: 	a VTermOutputDriver
		sourceFiles: 	an OrderedCollection(File @ /export/foos1/users/dhenrich/dev/_home...etc...


STCommandLineHandler class(CommandLineHandler class)>>activateWith:
	Receiver: STCommandLineHandler
	Arguments and temporary variables: 
		aCommandLine: 	a CommandLineArguments
	Receiver's instance variables: 
		superclass: 	CommandLineHandler
		methodDict: 	a MethodDictionary(#activate->STCommandLineHandler>>#activate #end-...etc...
		format: 	65541
		layout: 	a FixedLayout
		instanceVariables: 	nil
		organization: 	a ClassOrganization
		subclasses: 	{EvaluateCommandLineHandler}
		name: 	#STCommandLineHandler
		classPool: 	a Dictionary()
		sharedPools: 	an OrderedCollection()
		environment: 	a SystemDictionary(lots of globals)
		category: 	#CodeImportCommandLineHandlers
		traitComposition: 	{}
		localSelectors: 	nil


[ aCommandLinehandler activateWith: commandLine ] in PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand:
	Receiver: a PharoCommandLineHandler
	Arguments and temporary variables: 
		aCommandLinehandler: 	STCommandLineHandler
	Receiver's instance variables: 
		commandLine: 	a CommandLineArguments
		session: 	a WorkingSession
		stdout: 	a VTermOutputDriver
		stderr: 	a VTermOutputDriver


BlockClosure>>on:do:
	Receiver: [ aCommandLinehandler activateWith: commandLine ]
	Arguments and temporary variables: 
		exception: 	Exit
		handlerAction: 	[ :exit | ^ self handleExit: exit for: aCommandLinehandler ]
	Receiver's instance variables: 
		outerContext: 	PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubComm...etc...
		startpc: 	34
		numArgs: 	0


PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand:
	Receiver: a PharoCommandLineHandler
	Arguments and temporary variables: 
		aCommandLinehandler: 	STCommandLineHandler
	Receiver's instance variables: 
		commandLine: 	a CommandLineArguments
		session: 	a WorkingSession
		stdout: 	a VTermOutputDriver
		stderr: 	a VTermOutputDriver


PharoCommandLineHandler(BasicCommandLineHandler)>>handleSubcommand
	Receiver: a PharoCommandLineHandler
	Arguments and temporary variables: 
		handlers: 	an OrderedCollection(STCommandLineHandler)
	Receiver's instance variables: 
		commandLine: 	a CommandLineArguments
		session: 	a WorkingSession
		stdout: 	a VTermOutputDriver
		stderr: 	a VTermOutputDriver


PharoCommandLineHandler(BasicCommandLineHandler)>>handleArgument:
	Receiver: a PharoCommandLineHandler
	Arguments and temporary variables: 
		aString: 	'--quit'
	Receiver's instance variables: 
		commandLine: 	a CommandLineArguments
		session: 	a WorkingSession
		stdout: 	a VTermOutputDriver
		stderr: 	a VTermOutputDriver


[ self
	handleArgument:
		(self arguments
			ifEmpty: [ '' ]
			ifNotEmpty: [ :arguments | arguments first ]) ] in PharoCommandLineHandler(BasicCommandLineHandler)>>activate
	Receiver: a PharoCommandLineHandler
	Arguments and temporary variables: 

	Receiver's instance variables: 
		commandLine: 	a CommandLineArguments
		session: 	a WorkingSession
		stdout: 	a VTermOutputDriver
		stderr: 	a VTermOutputDriver


BlockClosure>>on:do:
	Receiver: [ self
	handleArgument:
		(self arguments
			ifEmpty: [ '' ]
			ifNotEmpty: [ :arguments |...etc...
	Arguments and temporary variables: 
		exception: 	Exit
		handlerAction: 	[ :exit | ^ self handleExit: exit ]
	Receiver's instance variables: 
		outerContext: 	PharoCommandLineHandler(BasicCommandLineHandler)>>activate
		startpc: 	49
		numArgs: 	0


PharoCommandLineHandler(BasicCommandLineHandler)>>activate
	Receiver: a PharoCommandLineHandler
	Arguments and temporary variables: 

	Receiver's instance variables: 
		commandLine: 	a CommandLineArguments
		session: 	a WorkingSession
		stdout: 	a VTermOutputDriver
		stderr: 	a VTermOutputDriver


PharoCommandLineHandler>>activate
	Receiver: a PharoCommandLineHandler
	Arguments and temporary variables: 

	Receiver's instance variables: 
		commandLine: 	a CommandLineArguments
		session: 	a WorkingSession
		stdout: 	a VTermOutputDriver
		stderr: 	a VTermOutputDriver


PharoCommandLineHandler class(CommandLineHandler class)>>activateWith:
	Receiver: PharoCommandLineHandler
	Arguments and temporary variables: 
		aCommandLine: 	a CommandLineArguments
	Receiver's instance variables: 
		superclass: 	BasicCommandLineHandler
		methodDict: 	a MethodDictionary(#activate->PharoCommandLineHandler>>#activate #c...etc...
		format: 	65540
		layout: 	a FixedLayout
		instanceVariables: 	nil
		organization: 	a ClassOrganization
		subclasses: 	nil
		name: 	#PharoCommandLineHandler
		classPool: 	a Dictionary()
		sharedPools: 	an OrderedCollection()
		environment: 	a SystemDictionary(lots of globals)
		category: 	#'System-CommandLineHandler'
		traitComposition: 	{}
		localSelectors: 	nil


[ super activateWith: aCommandLine ] in PharoCommandLineHandler class>>activateWith:
	Receiver: PharoCommandLineHandler
	Arguments and temporary variables: 
		aCommandLine: 	a CommandLineArguments
	Receiver's instance variables: 
		superclass: 	BasicCommandLineHandler
		methodDict: 	a MethodDictionary(#activate->PharoCommandLineHandler>>#activate #c...etc...
		format: 	65540
		layout: 	a FixedLayout
		instanceVariables: 	nil
		organization: 	a ClassOrganization
		subclasses: 	nil
		name: 	#PharoCommandLineHandler
		classPool: 	a Dictionary()
		sharedPools: 	an OrderedCollection()
		environment: 	a SystemDictionary(lots of globals)
		category: 	#'System-CommandLineHandler'
		traitComposition: 	{}
		localSelectors: 	nil


NonInteractiveUIManager(UIManager)>>defer:
	Receiver: a NonInteractiveUIManager
	Arguments and temporary variables: 
		aBlock: 	[ super activateWith: aCommandLine ]
	Receiver's instance variables: 
		doNotQuitOnRestart: 	false
		uiManager: 	nil


PharoCommandLineHandler class>>activateWith:
	Receiver: PharoCommandLineHandler
	Arguments and temporary variables: 
		aCommandLine: 	a CommandLineArguments
	Receiver's instance variables: 
		superclass: 	BasicCommandLineHandler
		methodDict: 	a MethodDictionary(#activate->PharoCommandLineHandler>>#activate #c...etc...
		format: 	65540
		layout: 	a FixedLayout
		instanceVariables: 	nil
		organization: 	a ClassOrganization
		subclasses: 	nil
		name: 	#PharoCommandLineHandler
		classPool: 	a Dictionary()
		sharedPools: 	an OrderedCollection()
		environment: 	a SystemDictionary(lots of globals)
		category: 	#'System-CommandLineHandler'
		traitComposition: 	{}
		localSelectors: 	nil


[ aCommandLinehandler activateWith: commandLine ] in BasicCommandLineHandler>>activateSubCommand:
	Receiver: a BasicCommandLineHandler
	Arguments and temporary variables: 
		aCommandLinehandler: 	PharoCommandLineHandler
	Receiver's instance variables: 
		commandLine: 	a CommandLineArguments
		session: 	a WorkingSession
		stdout: 	a VTermOutputDriver
		stderr: 	a VTermOutputDriver


BlockClosure>>on:do:
	Receiver: [ aCommandLinehandler activateWith: commandLine ]
	Arguments and temporary variables: 
		exception: 	Exit
		handlerAction: 	[ :exit | ^ self handleExit: exit for: aCommandLinehandler ]
	Receiver's instance variables: 
		outerContext: 	BasicCommandLineHandler>>activateSubCommand:
		startpc: 	34
		numArgs: 	0


BasicCommandLineHandler>>activateSubCommand:
	Receiver: a BasicCommandLineHandler
	Arguments and temporary variables: 
		aCommandLinehandler: 	PharoCommandLineHandler
	Receiver's instance variables: 
		commandLine: 	a CommandLineArguments
		session: 	a WorkingSession
		stdout: 	a VTermOutputDriver
		stderr: 	a VTermOutputDriver


BasicCommandLineHandler>>handleSubcommand
	Receiver: a BasicCommandLineHandler
	Arguments and temporary variables: 
		handlers: 	an OrderedCollection(PharoCommandLineHandler STCommandLineHandler)
	Receiver's instance variables: 
		commandLine: 	a CommandLineArguments
		session: 	a WorkingSession
		stdout: 	a VTermOutputDriver
		stderr: 	a VTermOutputDriver


BasicCommandLineHandler>>handleArgument:
	Receiver: a BasicCommandLineHandler
	Arguments and temporary variables: 
		aString: 	'--quit'
	Receiver's instance variables: 
		commandLine: 	a CommandLineArguments
		session: 	a WorkingSession
		stdout: 	a VTermOutputDriver
		stderr: 	a VTermOutputDriver


[ self
	handleArgument:
		(self arguments
			ifEmpty: [ '' ]
			ifNotEmpty: [ :arguments | arguments first ]) ] in BasicCommandLineHandler>>activate
	Receiver: a BasicCommandLineHandler
	Arguments and temporary variables: 

	Receiver's instance variables: 
		commandLine: 	a CommandLineArguments
		session: 	a WorkingSession
		stdout: 	a VTermOutputDriver
		stderr: 	a VTermOutputDriver


BlockClosure>>on:do:
	Receiver: [ self
	handleArgument:
		(self arguments
			ifEmpty: [ '' ]
			ifNotEmpty: [ :arguments |...etc...
	Arguments and temporary variables: 
		exception: 	Exit
		handlerAction: 	[ :exit | ^ self handleExit: exit ]
	Receiver's instance variables: 
		outerContext: 	BasicCommandLineHandler>>activate
		startpc: 	49
		numArgs: 	0


BasicCommandLineHandler>>activate
	Receiver: a BasicCommandLineHandler
	Arguments and temporary variables: 

	Receiver's instance variables: 
		commandLine: 	a CommandLineArguments
		session: 	a WorkingSession
		stdout: 	a VTermOutputDriver
		stderr: 	a VTermOutputDriver


[ self new activate ] in BasicCommandLineHandler class>>startUp:
	Receiver: BasicCommandLineHandler
	Arguments and temporary variables: 
		isImageStarting: 	true
	Receiver's instance variables: 
		superclass: 	CommandLineHandler
		methodDict: 	a MethodDictionary(#activate->BasicCommandLineHandler>>#activate #a...etc...
		format: 	65540
		layout: 	a FixedLayout
		instanceVariables: 	nil
		organization: 	a ClassOrganization
		subclasses: 	{PharoCommandLineHandler}
		name: 	#BasicCommandLineHandler
		classPool: 	a Dictionary()
		sharedPools: 	an OrderedCollection()
		environment: 	a SystemDictionary(lots of globals)
		category: 	#'System-BasicCommandLineHandler'
		traitComposition: 	{}
		localSelectors: 	nil


BlockClosure>>cull:
	Receiver: [ self new activate ]
	Arguments and temporary variables: 
		anArg: 	true
	Receiver's instance variables: 
		outerContext: 	BasicCommandLineHandler class>>startUp:
		startpc: 	43
		numArgs: 	0


WorkingSession>>executeDeferredStartupActions:
	Receiver: a WorkingSession
	Arguments and temporary variables: 
		resuming: 	true
		action: 	[ self new activate ]
	Receiver's instance variables: 
		manager: 	a SessionManager
		deferredStartupActions: 	an OrderedCollection([ self managedServers do: [ :each ...etc...
		id: 	an UUID('bf6c0c9b-379d-4898-acce-dc5be9a34a74')
		creationTime: 	2016-07-28T13:35:53.584432-07:00


WorkingSession>>runStartup:
	Receiver: a WorkingSession
	Arguments and temporary variables: 
		isImageStarting: 	true
	Receiver's instance variables: 
		manager: 	a SessionManager
		deferredStartupActions: 	an OrderedCollection([ self managedServers do: [ :each ...etc...
		id: 	an UUID('bf6c0c9b-379d-4898-acce-dc5be9a34a74')
		creationTime: 	2016-07-28T13:35:53.584432-07:00


WorkingSession>>start:
	Receiver: a WorkingSession
	Arguments and temporary variables: 
		isImageStarting: 	true
	Receiver's instance variables: 
		manager: 	a SessionManager
		deferredStartupActions: 	an OrderedCollection([ self managedServers do: [ :each ...etc...
		id: 	an UUID('bf6c0c9b-379d-4898-acce-dc5be9a34a74')
		creationTime: 	2016-07-28T13:35:53.584432-07:00



--- The full stack ---
FileHandle>>streamError
FileHandle>>readStream
FileSystem>>readStreamOn:
FileReference>>readStream
FileReference(AbstractFileReference)>>readStreamDo:
STCommandLineHandler>>installSourceFile:
[ :reference | self installSourceFile: reference ] in [ sourceFiles do: [ :reference | self installSourceFile: reference ] ] in STCommandLineHandler>>installSourceFiles
OrderedCollection>>do:
[ sourceFiles do: [ :reference | self installSourceFile: reference ] ] in STCommandLineHandler>>installSourceFiles
BlockClosure>>ensure:
STCommandLineHandler>>installSourceFiles
STCommandLineHandler>>activate
STCommandLineHandler class(CommandLineHandler class)>>activateWith:
[ aCommandLinehandler activateWith: commandLine ] in PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand:
BlockClosure>>on:do:
PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand:
PharoCommandLineHandler(BasicCommandLineHandler)>>handleSubcommand
PharoCommandLineHandler(BasicCommandLineHandler)>>handleArgument:
[ self
	handleArgument:
		(self arguments
			ifEmpty: [ '' ]
			ifNotEmpty: [ :arguments | arguments first ]) ] in PharoCommandLineHandler(BasicCommandLineHandler)>>activate
BlockClosure>>on:do:
PharoCommandLineHandler(BasicCommandLineHandler)>>activate
PharoCommandLineHandler>>activate
PharoCommandLineHandler class(CommandLineHandler class)>>activateWith:
[ super activateWith: aCommandLine ] in PharoCommandLineHandler class>>activateWith:
NonInteractiveUIManager(UIManager)>>defer:
PharoCommandLineHandler class>>activateWith:
[ aCommandLinehandler activateWith: commandLine ] in BasicCommandLineHandler>>activateSubCommand:
BlockClosure>>on:do:
BasicCommandLineHandler>>activateSubCommand:
BasicCommandLineHandler>>handleSubcommand
BasicCommandLineHandler>>handleArgument:
[ self
	handleArgument:
		(self arguments
			ifEmpty: [ '' ]
			ifNotEmpty: [ :arguments | arguments first ]) ] in BasicCommandLineHandler>>activate
BlockClosure>>on:do:
BasicCommandLineHandler>>activate
[ self new activate ] in BasicCommandLineHandler class>>startUp:
BlockClosure>>cull:
WorkingSession>>executeDeferredStartupActions:
WorkingSession>>runStartup:
WorkingSession>>start:
 - - - - - - - - - - - - - - -  
			- - - - - - - - - - - - - - - - - -
SessionManager>>snapshot:andQuit:
SmalltalkImage>>snapshot:andQuit:
SmalltalkImage>>saveImageInFileNamed:
SmalltalkImage>>saveAs:
SaveCommandLineHandler>>saveImage
SaveCommandLineHandler>>activate
SaveCommandLineHandler class(CommandLineHandler class)>>activateWith:
[ aCommandLinehandler activateWith: commandLine ] in PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand:
BlockClosure>>on:do:
PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand:
PharoCommandLineHandler(BasicCommandLineHandler)>>handleSubcommand
PharoCommandLineHandler(BasicCommandLineHandler)>>handleArgument:
[ self
	handleArgument:
		(self arguments
			ifEmpty: [ '' ]
			ifNotEmpty: [ :arguments | arguments first ]) ] in PharoCommandLineHandler(BasicCommandLineHandler)>>activate
BlockClosure>>on:do:
PharoCommandLineHandler(BasicCommandLineHandler)>>activate
PharoCommandLineHandler>>activate
PharoCommandLineHandler class(CommandLineHandler class)>>activateWith:
[ super activateWith: aCommandLine ] in PharoCommandLineHandler class>>activateWith:
NonInteractiveUIManager(UIManager)>>defer:
PharoCommandLineHandler class>>activateWith:
[ aCommandLinehandler activateWith: commandLine ] in BasicCommandLineHandler>>activateSubCommand:
BlockClosure>>on:do:
BasicCommandLineHandler>>activateSubCommand:
BasicCommandLineHandler>>handleSubcommand
BasicCommandLineHandler>>handleArgument:
[ self
	handleArgument:
		(self arguments
			ifEmpty: [ '' ]
			ifNotEmpty: [ :arguments | arguments first ]) ] in BasicCommandLineHandler>>activate
BlockClosure>>on:do:
BasicCommandLineHandler>>activate
[ self new activate ] in BasicCommandLineHandler class>>startUp:
BlockClosure>>cull:
WorkingSession>>executeDeferredStartupActions:
WorkingSession>>runStartup:
WorkingSession>>start:
SessionManager>>snapshot:andQuit:
SmalltalkImage>>snapshot:andQuit:
[ morphicUI := MorphicUIManager new.
processToKill terminate.
(processToKill == morphicUI uiProcess
	or: [ morphicUI uiProcess isTerminated ])
	ifTrue: [ morphicUI spawnNewProcess ].
Smalltalk snapshot: true andQuit: true ] in UndefinedObject>>DoIt
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------

Processes and their stacks: 
Process: a Process in [ self value.
Processor terminateActive ] in BlockClosure>>newProcess
  stack:

[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in DelayExperimentalSpinScheduler(DelayMicrosecondScheduler)>>runTimerEventLoop
  stack:

DelayExperimentalSpinScheduler(DelayMicrosecondScheduler)>>runTimerEventLoop
[ self runTimerEventLoop ] in DelayExperimentalSpinScheduler(DelayMicrosecondScheduler)>>startTimerEventLoop
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in nil
  stack:

Array(SequenceableCollection)>>do:
[ :logger | 
logger
	nextPutAll: 'Processes and their stacks: ';
	cr.
Process allInstances
	do: [ :each | 
		| ctx |
		logger
			nextPutAll: 'Process: ';
			print: each;
			cr;
			nextPutAll: '  stack:';
			cr;
			cr.
		ctx := each isActiveProcess
			ifTrue: [ thisContext sender ]
			ifFalse: [ each suspendedContext ].
		ctx
			ifNotNil: [ (ctx stackOfSize: 20)
					do: [ :s | 
						logger
							print: s;
							cr ] ].
		logger
			nextPutAll: '------------------------------';
			cr;
			cr ] ] in [ Smalltalk logError: aString inContext: aContext.

" Print stacks of all current processes "
Smalltalk
	logDuring: [ :logger | 
		logger
			nextPutAll: 'Processes and their stacks: ';
			cr.
		Process allInstances
			do: [ :each | 
				| ctx |
				logger
					nextPutAll: 'Process: ';
					print: each;
					creceiver: a WorldState
	Arguments and temporary variables: 
		aWorld: 	a WorldMorph(562956288) [world]
		err: 	'MessageNotUnderstood: receiver of "finish" is nil'
		rcvr: 	nil
		errCtx: 	WorldMorph>>displayWorld
		errMorph: 	a WorldMorph(562956288) [world]
	Receiver's instance variables: 
		hands: 	an Array(a HandMorph(474389248))
		viewBox: 	(0@0) corner: (976@665)
		canvas: 	nil
		damageRecorder: 	a DamageRecorder
		stepList: 	a Heap()
		lastStepTime: 	2912
		lastStepMessage: 	nil
		lastCycleTime: 	50
		alarms: 	a Heap()
		lastAlarmTime: 	52
		menuBuilder: 	nil


BlockClosure>>cull:cull:
	Receiver: [ :err :rcvr | 
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Sea...etc...
	Arguments and temporary variables: 
		firstArg: 	'MessageNotUnderstood: receiver of "finish" is nil'
		secondArg: 	nil
	Receiver's instance variables: 
		outerContext: 	WorldState>>displayWorldSafely:
		startpc: 	89
		numArgs: 	2


[ :ex | errorHandlerBlock cull: ex description cull: ex receiver ] in BlockClosure>>ifError:
	Receiver: [ aWorld displayWorld ]
	Arguments and temporary variables: 
| 
								logger
									print: s;
									cr ] ].
				logger
					nextPutAll: '------------------------------';
					cr;
					cr ] ] ] in NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage:
BlockClosure>>ensure:
NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage:
NonInteractiveUIManager(CommandLineUIManager)>>unhandledErrorDefaultAction:
UnhandledError>>defaultAction
UndefinedObject>>handleSignal:
Context>>handleSignal:
Context>>handleSignal:
Context>>handleSignal:
Context>>handleSignal:
Context>>handleSignal:
Context>>handleSignal:
Context>>handleSignal:
Context>>handleSignal:
UnhandledError(Exception)>>signal
------------------------------

Process: a Process in BIConfigurableFormatter>>bracketWith:around:
  stack:

BIConfigurableFormatter>>bracketWith:around:
BIConfigurableFormatter>>visitNode:
BIConfigurableFormatter>>visitMessageNode:
RBMessageNode>>acceptVisitor:
BIConfigurableFormatter(RBProgramNodeVisitor)>>visitNode:
[ needsParenthesis
	ifTrue: [ codeStream nextPutAll: self stringInsideParentheses ].
super visitNode: aNode.
(self formatCommentWithStatements
	or: [ aNode isMethod or: [ aNode isSequence ] ])
	ifFalse: [ self formatCommentsFor: aNode ].
needsParenthesis
	ifTrue: [ codeStream nextPutAll: self stringInsideParentheses ] ] in BIConfigurableFormatter>>visitNode:
BIConfigurableFormatter>>bracketWith:around:
BIConfigurableFormatter>>visitNode:
BIConfigurableFormatter>>formatSequenceNodeStatementsFor:
BIConfigurableFormatter>>visitSequenceNode:
RBSequenceNode>>acceptVisitor:
BIConfigurableFormatter(RBProgramNodeVisitor)>>visitNode:
[ needsParenthesis
	ifTrue: [ codeStream nextPutAll: self stringInsideParentheses ].
super visitNode: aNode.
(self formatCommentWithStatements
	or: [ aNode isMethod or: [ aNode isSequence ] ])
	ifFalse: [ self formatCommentsFor: aNode ].
needsParenthesis
	ifTrue: [ codeStream nextPutAll: self stringInsideParentheses ] ] in BIConfigurableFormatter>>visitNode:
BIConfigurableFormatter>>bracketWith:around:
BIConfigurableFormatter>>visitNode:
BIConfigurableFormatter>>format:
[ self class new
	indent: self indent;
	installNewContext: context;
	format: aNode ] in BIConfigurableFormatter>>formattedSourceFor:
[ self at: key put: aBlock value ] in IdentityDictionary(Dictionary)>>at:ifAbsentPut:
IdentityDictionary(Dictionary)>>at:ifAbsent:
IdentityDictionary(Dictionary)>>at:ifAbsentPut:
------------------------------

Process: a Process in [ self value.
Processor terminateActive ] in BlockClosure>>newProcess
  stack:

[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in [ self value.
Processor terminateActive ] in BlockClosure>>newProcess
  stack:

[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in [ self value.
Processor terminateActive ] in BlockClosure>>newProcess
  stack:

[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in SmalltalkImage>>lowSpaceWatcher
  stack:

SmalltalkImage>>lowSpaceWatcher
[ self lowSpaceWatcher ] in SmalltalkImage>>installLowSpaceWatcher
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in [ self value.
Processor terminateActive ] in BlockClosure>>newProcess
  stack:

[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in InputEventFetcher>>waitForInput
  stack:

InputEventFetcher>>waitForInput
InputEventFetcher>>eventLoop
[ self eventLoop ] in InputEventFetcher>>installEventLoop
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in WeakArray class>>finalizationProcess
  stack:

WeakArray class>>finalizationProcess
[ self finalizationProcess ] in WeakArray class>>restartFinalizationProcess
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------


===============================================================================
Notice: Errors in script loaded from /export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/boom.st
===============================================================================
THERE_BE_DRAGONS_HERE
MCRepositoryError: filetree:// repository '/export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/dalehenrich/metacello-work:master/repository' does not exist.
28 July 2016 1:38:03.640958 pm

VM: unix - i686 - linux-gnu - CoInterpreter VMMaker.oscog-eem.1855 uuid: d8e4a3c2-a3bf-4adc-b224-8012903a1ef4 May  4 2016
StackToRegisterMappingCogit VMMaker.oscog-eem.1855 uuid: d8e4a3c2-a3bf-4adc-b224-8012903a1ef4 May  4 2016
https://github.com/pharo-project/pharo-vm.git Commit: b8ec25a570d7539653e1d793e97609adb509aaed Date: 2016-05-04 11:14:22 +0200 By: Esteban Lorenzano <[email protected]> Jenkins build #589

Image: Pharo5.0 [Latest update: #50760]

MCFileTreeRepository(MCRepository)>>error:
	Receiver: a MCFileTreeRepository(filetree:///export/foos1/users/dhenrich/dev/_home/dev/clients/voyag...etc...
	Arguments and temporary variables: 
		aString: 	'filetree:// repository ''/export/foos1/users/dhenrich/dev/_home/dev/c...etc...
	Receiver's instance variables: 
		creationTemplate: 	nil
		cache: 	nil
		allFileNames: 	nil
		cacheFileNames: 	nil
		directory: 	File @ dalehenrich/metacello-work:master/repository
		readonly: 	nil
		repositoryProperties: 	a Dictionary()


MCFileTreeRepository>>repositoryProperties
	Receiver: a MCFileTreeRepository(filetree:///export/foos1/users/dhenrich/dev/_home/dev/clients/voyag...etc...
	Arguments and temporary variables: 

	Receiver's instance variables: 
		creationTemplate: 	nil
		cache: 	nil
		allFileNames: 	nil
		cacheFileNames: 	nil
		directory: 	File @ dalehenrich/metacello-work:master/repository
		readonly: 	nil
		repositoryProperties: 	a Dictionary()


MCFileTreeRepository>>directory:
	Receiver: a MCFileTreeRepository(filetree:///export/foos1/users/dhenrich/dev/_home/dev/clients/voyag...etc...
	Arguments and temporary variables: 
		aDirectory: 	File @ dalehenrich/metacello-work:master/repository
	Receiver's instance variables: 
		creationTemplate: 	nil
		cache: 	nil
		allFileNames: 	nil
		cacheFileNames: 	nil
		directory: 	File @ dalehenrich/metacello-work:master/repository
		readonly: 	nil
		repositoryProperties: 	a Dictionary()


[ :cl | 
type = 'filetree'
	ifTrue: [ | description headerSize |
		description := aRepositorySpec description.
		headerSize := 'filetree://' size.
		^ cl new
			directory:
				(self
					fileHandleOn:
						(aRepositorySpec description
							copyFrom: headerSize + 1
							to: description size)) ] ] in MetacelloPharo30Platform(MetacelloPlatform)>>createRepository:
	Receiver: a MetacelloPharo30Platform
	Arguments and temporary variables: 
		aRepositorySpec: 	spec repository: 'filetree://dalehenrich/metacello-work:master...etc...
		type: 	'filetree'
		cl: 	MCFileTreeRepository
		description: 	'filetree://dalehenrich/metacello-work:master/repository'
		headerSize: 	11
	Receiver's instance variables: 
		bypassProgressBars: 	false
		bypassGoferLoadUpdateCategories: 	false


BlockClosure>>cull:
	Receiver: [ :cl | 
type = 'filetree'
	ifTrue: [ | description headerSize |
		description := aReposit...etc...
	Arguments and temporary variables: 
		anArg: 	MCFileTreeRepository
	Receiver's instance variables: 
		outerContext: 	MetacelloPharo30Platform(MetacelloPlatform)>>createRepository:
		startpc: 	179
		numArgs: 	1


SystemDictionary(Dictionary)>>at:ifPresent:
	Receiver: a SystemDictionary(lots of globals)
	Arguments and temporary variables: 
		key: 	#MCFileTreeRepository
		aBlock: 	[ :cl | 
type = 'filetree'
	ifTrue: [ | description headerSize |
		desc...etc...
	Receiver's instance variables: 
		tally: 	5812
		array: 	an Array(#SmallDictionary->SmallDictionary #MetacelloExampleProjectConfi...etc...
		cachedClassNames: 	an OrderedCollection(#AColorSelectorMorph #AGroupContentHasBe...etc...
		cachedNonClassNames: 	an OrderedCollection(#ActiveEvent #ActiveHand #ActiveWorld...etc...


SmalltalkImage>>at:ifPresent:
	Receiver: Smalltalk
	Arguments and temporary variables: 
		key: 	#MCFileTreeRepository
		aBlock: 	[ :cl | 
type = 'filetree'
	ifTrue: [ | description headerSize |
		desc...etc...
	Receiver's instance variables: 
		globals: 	a SystemDictionary(lots of globals)
		deferredStartupActions: 	an OrderedCollection()
		specialObjectsArray: 	an Array(nil false true #Processor->Processor Bitmap Small...etc...
		session: 	an Object
		vm: 	a VirtualMachine


MetacelloPharo30Platform(MetacelloPlatform)>>createRepository:
	Receiver: a MetacelloPharo30Platform
	Arguments and temporary variables: 
		aRepositorySpec: 	spec repository: 'filetree://dalehenrich/metacello-work:master...etc...
		type: 	'filetree'
	Receiver's instance variables: 
		bypassProgressBars: 	false
		bypassGoferLoadUpdateCategories: 	false


MetacelloPharo30Platform(MetacelloPharoCommonPlatform)>>createRepository:
	Receiver: a MetacelloPharo30Platform
	Arguments and temporary variables: 
		aRepositorySpec: 	spec repository: 'filetree://dalehenrich/metacello-work:master...etc...
		type: 	'filetree'
	Receiver's instance variables: 
		bypassProgressBars: 	false
		bypassGoferLoadUpdateCategories: 	false


MetacelloMCBaselineProject(MetacelloMCProject)>>createRepository:
	Receiver: <<error during printing>>
	Arguments and temporary variables: 
		aRepositorySpec: 	spec repository: 'filetree://dalehenrich/metacello-work:master...etc...
	Receiver's instance variables: 
		versionMap: 	nil
		symbolicVersionMap: 	nil
		errorMap: 	nil
		loader: 	nil
		loaderClass: 	MetacelloLoadingMCSpecLoader
		loadType: 	nil
		configuration: 	<<error during printing>>

MetacelloRepositorySpec>>createRepository
	Receiver: spec repository: 'filetree://dalehenrich/metacello-work:master/repository'
	Arguments and temporary variables: 
		repo: 	nil
	Receiver's instance variables: 
		project: 	<<error during printing>>

[ aSpec createRepository ] in [ :aSpec | 
| description repo |
description := aSpec description.
(repo := repositories
	detect: [ :rep | rep description = description ]
	ifNone: [ aSpec createRepository ]) ~~ nil
	ifTrue: [ repos add: repo ] ] in MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>repositoriesFrom:ignoreOverrides:
	Receiver: a MetacelloFetchingMCSpecLoader(linear load : )
	Arguments and temporary variables: 
		aMetacelloMVRepositorySpecs: 	an Array(spec repository: 'filetree://dalehenrich/...etc...
		ignoreOverrides: 	false
		repositories: 	an Array(a MCCacheRepository(/export/foos1/users/dhenrich/dev/_ho...etc...
		repos: 	an OrderedCollection()
		aSpec: 	spec repository: 'filetree://dalehenrich/metacello-work:master/repositor...etc...
		description: 	'filetree://dalehenrich/metacello-work:master/repository'
		repo: 	nil
	Receiver's instance variables: 
		spec: 	spec 
	name: 'BaselineOfMetacello';
	repository: 'filetree://dalehenrich/...etc...
		operator: 	nil
		loaderPolicy: 	a MetacelloLoaderPolicy
		disablePackageCache: 	false


Array(Collection)>>detect:ifFound:ifNone:
	Receiver: an Array(a MCCacheRepository(/export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/pac...etc...
	Arguments and temporary variables: 
		aBlock: 	[ :rep | rep description = description ]
		foundBlock: 	[ :element | element ]
		exceptionBlock: 	[ aSpec createRepository ]
	Receiver's instance variables: 
an Array(a MCCacheRepository(/export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/pac...etc...

Array(Collection)>>detect:ifNone:
	Receiver: an Array(a MCCacheRepository(/export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/pac...etc...
	Arguments and temporary variables: 
		aBlock: 	[ :rep | rep description = description ]
		exceptionBlock: 	[ aSpec createRepository ]
	Receiver's instance variables: 
an Array(a MCCacheRepository(/export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/pac...etc...

[ :aSpec | 
| description repo |
description := aSpec description.
(repo := repositories
	detect: [ :rep | rep description = description ]
	ifNone: [ aSpec createRepository ]) ~~ nil
	ifTrue: [ repos add: repo ] ] in MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>repositoriesFrom:ignoreOverrides:
	Receiver: a MetacelloFetchingMCSpecLoader(linear load : )
	Arguments and temporary variables: 
		aMetacelloMVRepositorySpecs: 	an Array(spec repository: 'filetree://dalehenrich/...etc...
		ignoreOverrides: 	false
		repositories: 	an Array(a MCCacheRepository(/export/foos1/users/dhenrich/dev/_ho...etc...
		repos: 	an OrderedCollection()
		aSpec: 	spec repository: 'filetree://dalehenrich/metacello-work:master/repositor...etc...
		description: 	'filetree://dalehenrich/metacello-work:master/repository'
		repo: 	nil
	Receiver's instance variables: 
		spec: 	spec 
	name: 'BaselineOfMetacello';
	repository: 'filetree://dalehenrich/...etc...
		operator: 	nil
		loaderPolicy: 	a MetacelloLoaderPolicy
		disablePackageCache: 	false


Array(SequenceableCollection)>>do:
	Receiver: an Array(spec repository: 'filetree://dalehenrich/metacello-work:master/repository')
	Arguments and temporary variables: 
		aBlock: 	[ :aSpec | 
| description repo |
description := aSpec description.
(rep...etc...
		index: 	1
	Receiver's instance variables: 
an Array(spec repository: 'filetree://dalehenrich/metacello-work:master/repository')

MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>repositoriesFrom:ignoreOverrides:
	Receiver: a MetacelloFetchingMCSpecLoader(linear load : )
	Arguments and temporary variables: 
		aMetacelloMVRepositorySpecs: 	an Array(spec repository: 'filetree://dalehenrich/...etc...
		ignoreOverrides: 	false
		repositories: 	an Array(a MCCacheRepository(/export/foos1/users/dhenrich/dev/_ho...etc...
		repos: 	an OrderedCollection()
	Receiver's instance variables: 
		spec: 	spec 
	name: 'BaselineOfMetacello';
	repository: 'filetree://dalehenrich/...etc...
		operator: 	nil
		loaderPolicy: 	a MetacelloLoaderPolicy
		disablePackageCache: 	false


MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>repositoriesFrom:
	Receiver: a MetacelloFetchingMCSpecLoader(linear load : )
	Arguments and temporary variables: 
		aMetacelloMVRepositorySpecs: 	an Array(spec repository: 'filetree://dalehenrich/...etc...
	Receiver's instance variables: 
		spec: 	spec 
	name: 'BaselineOfMetacello';
	repository: 'filetree://dalehenrich/...etc...
		operator: 	nil
		loaderPolicy: 	a MetacelloLoaderPolicy
		disablePackageCache: 	false


MetacelloPackageSpec>>explicitLoadUsing:
	Receiver: spec 
	name: 'BaselineOfMetacello';
	repository: 'filetree://dalehenrich/metacello-work:ma...etc...
	Arguments and temporary variables: 
		mcLoader: 	a MetacelloLoadingMCSpecLoader
		wc: 	a MCWorkingCopy(BaselineOfMetacello)
		fetchingSpecLoader: 	a MetacelloFetchingMCSpecLoader(linear load : )
	Receiver's instance variables: 
		project: 	<<error during printing>>

MetacelloPackageSpec>>load
	Receiver: spec 
	name: 'BaselineOfMetacello';
	repository: 'filetree://dalehenrich/metacello-work:ma...etc...
	Arguments and temporary variables: 

	Receiver's instance variables: 
		project: 	<<error during printing>>

[ spec projectPackage load ] in MetacelloScriptEngine>>getBaselineUnconditionalLoad:
	Receiver: a MetacelloScriptEngine
	Arguments and temporary variables: 
		unconditionalLoad: 	true
		spec: 	spec 
	name: 'Metacello';
	repository: 'filetree://dalehenrich/metacello-...etc...
	Receiver's instance variables: 
		root: 	nil
		projectSpec: 	spec 
	name: 'Metacello';
	repository: 'filetree://dalehenrich/met...etc...
		options: 	a Dictionary(#onConflict->[ :ex | ex allow ] )


BlockClosure>>on:do:
	Receiver: [ spec projectPackage load ]
	Arguments and temporary variables: 
		exception: 	MetacelloIgnorePackageLoaded
		handlerAction: 	[ :ex | ex resume: true ]
	Receiver's instance variables: 
		outerContext: 	MetacelloScriptEngine>>getBaselineUnconditionalLoad:
		startpc: 	91
		numArgs: 	0


MetacelloScriptEngine>>getBaselineUnconditionalLoad:
	Receiver: a MetacelloScriptEngine
	Arguments and temporary variables: 
		unconditionalLoad: 	true
		spec: 	spec 
	name: 'Metacello';
	repository: 'filetree://dalehenrich/metacello-...etc...
	Receiver's instance variables: 
		root: 	nil
		projectSpec: 	spec 
	name: 'Metacello';
	repository: 'filetree://dalehenrich/met...etc...
		options: 	a Dictionary(#onConflict->[ :ex | ex allow ] )


MetacelloScriptEngine>>getBaselineProjectUnconditionalLoad:
	Receiver: a MetacelloScriptEngine
	Arguments and temporary variables: 
		unconditionalLoad: 	true
		project: 	nil
	Receiver's instance variables: 
		root: 	nil
		projectSpec: 	spec 
	name: 'Metacello';
	repository: 'filetree://dalehenrich/met...etc...
		options: 	a Dictionary(#onConflict->[ :ex | ex allow ] )


MetacelloMCBaselineProject>>projectForScriptEngine:unconditionalLoad:
	Receiver: BaselineOfMetacello(baseline [BaselineOfMetacello], )
	Arguments and temporary variables: 
		aMetacelloScriptEngine: 	a MetacelloScriptEngine
		aBool: 	false
	Receiver's instance variables: 
		versionMap: 	a Dictionary('baseline'-><>baseline [BaselineOfMetacello] )
		symbolicVersionMap: 	nil
		errorMap: 	nil
		loader: 	nil
		loaderClass: 	MetacelloLoadingMCSpecLoader
		loadType: 	#linear
		configuration: 	a BaselineOfMetacello
		projectAttributes: 	#()
		versionNumberClass: 	MetacelloVersionNumber


MetacelloMCBaselineProject(MetacelloProject)>>projectForScriptEngine:
	Receiver: BaselineOfMetacello(baseline [BaselineOfMetacello], )
	Arguments and temporary variables: 
		aMetacelloScriptEngine: 	a MetacelloScriptEngine
	Receiver's instance variables: 
		versionMap: 	a Dictionary('baseline'-><>baseline [BaselineOfMetacello] )
		symbolicVersionMap: 	nil
		errorMap: 	nil
		loader: 	nil
		loaderClass: 	MetacelloLoadingMCSpecLoader
		loadType: 	#linear
		configuration: 	a BaselineOfMetacello
		projectAttributes: 	#()
		versionNumberClass: 	MetacelloVersionNumber


MetacelloMCBaselineOfProjectSpec(MetacelloMCProjectSpec)>>versionForScriptEngine:
	Receiver: spec 
	name: 'Metacello';
	repository: 'filetree://dalehenrich/metacello-work:master/repos...etc...
	Arguments and temporary variables: 
		aMetacelloScriptEngine: 	a MetacelloScriptEngine
		prj: 	BaselineOfMetacello(baseline [BaselineOfMetacello], )
	Receiver's instance variables: 
		project: 	<<error during printing>>

[ | version loadedSpec |
self setDefaultsAndValidateProjectSpec.
[ loadedSpec := (self lookupProjectSpecFor: self projectSpec) copy ]
	on: MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
	do:
		[ :ex | ex handleOnDownGrade: onDownGradeBlock onUpgrade: onUpgradeBlock ].
version := loadedSpec versionForScriptEngine: self.
self
	root:
		(required isEmpty
			ifTrue: [ version load ]
			ifFalse: [ version load: required ]) loadDirective.
loadedSpec loads: required.
MetacelloProjectRegistration
	registrationForProjectSpec: loadedSpec
	ifAbsent: [ :new | 
		new
			loadedInImage: true;
			registerProject ]
	ifPresent: [ :existing :new | 
		existing
			copyOnWrite: [ :existingCopy | 
				existingCopy
					loadedInImage: true;
					merge: new ] ] ] in [ self
	handleNotificationsForAction: [ | version loadedSpec |
		self setDefaultsAndValidateProjectSpec.
		[ loadedSpec := (self lookupProjectSpecFor: self projectSpec) copy ]THERE_BE_DRAGONS_HERE
Error: MessageNotUnderstood: receiver of "finish" is nil
28 July 2016 1:38:03.740322 pm

VM: unix - i686 - linux-gnu - CoInterpreter VMMaker.oscog-eem.1855 uuid: d8e4a3c2-a3bf-4adc-b224-8012903a1ef4 May  4 2016
StackToRegisterMappingCogit VMMaker.oscog-eem.1855 uuid: d8e4a3c2-a3bf-4adc-b224-8012903a1ef4 May  4 2016
https://github.com/pharo-project/pharo-vm.git Commit: b8ec25a570d7539653e1d793e97609adb509aaed Date: 2016-05-04 11:14:22 +0200 By: Esteban Lorenzano <[email protected]> Jenkins build #589

Image: Pharo5.0 [Latest update: #50760]

UndefinedObject(Object)>>error:
	Receiver: nil
	Arguments and temporary variables: 
		aString: 	'MessageNotUnderstood: receiver of "finish" is nil'
	Receiver's instance variables: 
nil

[ :err :rcvr | 
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Search the sender chain to find the morph causing the problem"
[ errCtx notNil and: [ errCtx receiver isMorph not ] ]
	whileTrue: [ errCtx := errCtx sender ].
"If we're at the root of the context chain then we have a fatal drawing problem"
errCtx ifNil: [ ^ self handleFatalDrawingError: err ].
errMorph := errCtx receiver.
"If the morph causing the problem has already the #drawError flag set,
			then search for the next morph above in the caller chain."
errMorph hasProperty: #errorOnDraw ] whileTrue.
errMorph setProperty: #errorOnDraw toValue: true.
"Install the old error handler, so we can re-raise the error"
rcvr error: err ] in WorldState>>displayWorldSafely:
	Receiver: a WorldState
	Arguments and temporary variables: 
		aWorld: 	a WorldMorph(562956288) [world]
		err: 	'MessageNotUnderstood: receiver of "finish" is nil'
		rcvr: 	nil
		errCtx: 	WorldMorph>>displayWorld
		errMorph: 	a WorldMorph(562956288) [world]
	Receiver's instance variables: 
		hands: 	an Array(a HandMorph(1024703232))
		viewBox: 	(0@0) corner: (976@665)
		canvas: 	nil
		damageRecorder: 	a DamageRecorder
		stepList: 	a Heap()
		lastStepTime: 	2912
		lastStepMessage: 	nil
		lastCycleTime: 	52
		alarms: 	a Heap()
		lastAlarmTime: 	54
		menuBuilder: 	nil


BlockClosure>>cull:cull:
	Receiver: [ :err :rcvr | 
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Sea...etc...
	Arguments and temporary variables: 
		firstArg: 	'MessageNotUnderstood: receiver of "finish" is nil'
		secondArg: 	nil
	Receiver's instance variables: 
		outerContext: 	WorldState>>displayWorldSafely:
		startpc: 	89
		numArgs: 	2


[ :ex | errorHandlerBlock cull: ex description cull: ex receiver ] in BlockClosure>>ifError:
	Receiver: [ aWorld displayWorld ]
	Arguments and temporary variables: 
		errorHandlerBlock: 	[ :err :rcvr | 
| errCtx errMorph |
errCtx := thisContext.
[...etc...
		ex: 	MessageNotUnderstood: receiver of "finish" is nil
	Receiver's instance variables: 
		outerContext: 	WorldState>>displayWorldSafely:
		startpc: 	82
		numArgs: 	0


BlockClosure>>cull:
	Receiver: [ :ex | errorHandlerBlock cull: ex description cull: ex receiver ]
	Arguments and temporary variables: 
		anArg: 	MessageNotUnderstood: receiver of "finish" is nil
	Receiver's instance variables: 
		outerContext: 	BlockClosure>>ifError:
		startpc: 	40
		numArgs: 	1


Context>>evaluateSignal:
	Receiver: BlockClosure>>on:do:
	Arguments and temporary variables: 
		exception: 	MessageNotUnderstood: receiver of "finish" is nil
		value: 	nil
	Receiver's instance variables: 
		sender: 	BlockClosure>>ifError:
		pc: 	18
		stackp: 	2
		method: 	BlockClosure>>#on:do:
		closureOrNil: 	nil
		receiver: 	[ aWorld displayWorld ]


Context>>handleSignal:
	Receiver: BlockClosure>>on:do:
	Arguments and temporary variables: 
		exception: 	MessageNotUnderstood: receiver of "finish" is nil
	Receiver's instance variables: 
		sender: 	BlockClosure>>ifError:
		pc: 	18
		stackp: 	2
		method: 	BlockClosure>>#on:do:
		closureOrNil: 	nil
		receiver: 	[ aWorld displayWorld ]


MessageNotUnderstood(Exception)>>signal
	Receiver: MessageNotUnderstood: receiver of "finish" is nil
	Arguments and temporary variables: 

	Receiver's instance variables: 
		messageText: 	nil
		tag: 	nil
		signaler: 	nil
		signalContext: 	MessageNotUnderstood(Exception)>>signal
		handlerContext: 	BlockClosure>>on:do:
		outerContext: 	nil
		message: 	finish
		receiver: 	nil
		reachedDefaultHandler: 	false


UndefinedObject(Object)>>doesNotUnderstand: #finish
	Receiver: nil
	Arguments and temporary variables: 
		aMessage: 	finish
		exception: 	MessageNotUnderstood: receiver of "finish" is nil
		resumeValue: 	nil
	Receiver's instance variables: 
nil

WorldState>>displayWorld:submorphs:
	Receiver: a WorldState
	Arguments and temporary variables: 
		allDamage: 	an OrderedCollection((0@0) corner: (240@120))
		handsToDraw: 	#()
		aWorld: 	a WorldMorph(562956288) [world]
		submorphs: 	an Array(a TaskbarMorph(804941056) a SystemWindow(426322176) an Imag...etc...
		deferredUpdateMode: 	true
	Receiver's instance variables: 
		hands: 	an Array(a HandMorph(1024703232))
		viewBox: 	(0@0) corner: (976@665)
		canvas: 	nil
		damageRecorder: 	a DamageRecorder
		stepList: 	a Heap()
		lastStepTime: 	2912
		lastStepMessage: 	nil
		lastCycleTime: 	52
		alarms: 	a Heap()
		lastAlarmTime: 	54
		menuBuilder: 	nil


WorldMorph>>displayWorld
	Receiver: a WorldMorph(562956288) [world]
	Arguments and temporary variables: 

	Receiver's instance variables: 
		bounds: 	(0@0) corner: (976@665)
		owner: 	nil
		submorphs: 	an Array(a TaskbarMorph(804941056) a SystemWindow(426322176) an Imag...etc...
		fullBounds: 	nil
		color: 	(Color r: 0.937 g: 0.937 b: 0.937 alpha: 1.0)
		extension: 	a MorphExtension (590118656) [other:  (dragEnabled -> true) (dropEna...etc...
		borderWidth: 	0
		borderColor: 	(Color r: 0.861 g: 1.0 b: 0.722 alpha: 1.0)
		backgroundMorph: 	nil
		worldState: 	a WorldState
		griddingOn: 	nil
		osWindow: 	nil
		session: 	nil


[ aWorld displayWorld ] in WorldState>>displayWorldSafely:
	Receiver: a WorldState
	Arguments and temporary variables: 
		aWorld: 	a WorldMorph(562956288) [world]
	Receiver's instance variables: 
		hands: 	an Array(a HandMorph(1024703232))
		viewBox: 	(0@0) corner: (976@665)
		canvas: 	nil
		damageRecorder: 	a DamageRecorder
		stepList: 	a Heap()
		lastStepTime: 	2912
		lastStepMessage: 	nil
		lastCycleTime: 	52
		alarms: 	a Heap()
		lastAlarmTime: 	54
		menuBuilder: 	nil


BlockClosure>>on:do:
	Receiver: [ aWorld displayWorld ]
	Arguments and temporary variables: 
		exception: 	Error
		handlerAction: 	[ :ex | errorHandlerBlock cull: ex description cull: ex receiver...etc...
	Receiver's instance variables: 
		outerContext: 	WorldState>>displayWorldSafely:
		startpc: 	82
		numArgs: 	0


BlockClosure>>ifError:
	Receiver: [ aWorld displayWorld ]
	Arguments and temporary variables: 
		errorHandlerBlock: 	[ :err :rcvr | 
| errCtx errMorph |
errCtx := thisContext.
[...etc...
	Receiver's instance variables: 
		outerContext: 	WorldState>>displayWorldSafely:
		startpc: 	82
		numArgs: 	0


WorldState>>displayWorldSafely:
	Receiver: a WorldState
	Arguments and temporary variables: 
		aWorld: 	a WorldMorph(562956288) [world]
	Receiver's instance variables: 
		hands: 	an Array(a HandMorph(1024703232))
		viewBox: 	(0@0) corner: (976@665)
		canvas: 	nil
		damageRecorder: 	a DamageRecorder
		stepList: 	a Heap()
		lastStepTime: 	2912
		lastStepMessage: 	nil
		lastCycleTime: 	52
		alarms: 	a Heap()
		lastAlarmTime: 	54
		menuBuilder: 	nil


WorldState>>doOneCycleNowFor:
	Receiver: a WorldState
	Arguments and temporary variables: 
		aWorld: 	a WorldMorph(562956288) [world]
	Receiver's instance variables: 
		hands: 	an Array(a HandMorph(1024703232))
		viewBox: 	(0@0) corner: (976@665)
		canvas: 	nil
		damageRecorder: 	a DamageRecorder
		stepList: 	a Heap()
		lastStepTime: 	2912
		lastStepMessage: 	nil
		lastCycleTime: 	52
		alarms: 	a Heap()
		lastAlarmTime: 	54
		menuBuilder: 	nil


WorldState>>doOneCycleFor:
	Receiver: a WorldState
	Arguments and temporary variables: 
		aWorld: 	a WorldMorph(562956288) [world]
	Receiver's instance variables: 
		hands: 	an Array(a HandMorph(1024703232))
		viewBox: 	(0@0) corner: (976@665)
		canvas: 	nil
		damageRecorder: 	a DamageRecorder
		stepList: 	a Heap()
		lastStepTime: 	2912
		lastStepMessage: 	nil
		lastCycleTime: 	52
		alarms: 	a Heap()
		lastAlarmTime: 	54
		menuBuilder: 	nil


WorldMorph>>doOneCycle
	Receiver: a WorldMorph(562956288) [world]
	Arguments and temporary variables: 

	Receiver's instance variables: 
		bounds: 	(0@0) corner: (976@665)
		owner: 	nil
		submorphs: 	an Array(a TaskbarMorph(804941056) a SystemWindow(426322176) an Imag...etc...
		fullBounds: 	nil
		color: 	(Color r: 0.937 g: 0.937 b: 0.937 alpha: 1.0)
		extension: 	a MorphExtension (590118656) [other:  (dragEnabled -> true) (dropEna...etc...
		borderWidth: 	0
		borderColor: 	(Color r: 0.861 g: 1.0 b: 0.722 alpha: 1.0)
		backgroundMorph: 	nil
		worldState: 	a WorldState
		griddingOn: 	nil
		osWindow: 	nil
		session: 	nil


[ [ World doOneCycle.
Processor yield.
false ] whileFalse: [  ] ] in MorphicUIManager>>spawnNewProcess
	Receiver: a MorphicUIManager
	Arguments and temporary variables: 

	Receiver's instance variables: 
		interactiveParser: 	nil
		activeTranscript: 	nil


[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
	Receiver: [ [ World doOneCycle.
Processor yield.
false ] whileFalse: [  ] ]
	Arguments and temporary variables: 

	Receiver's instance variables: 
		outerContext: 	MorphicUIManager>>spawnNewProcess
		startpc: 	65
		numArgs: 	0



--- The full stack ---
UndefinedObject(Object)>>error:
[ :err :rcvr | 
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Search the sender chain to find the morph causing the problem"
[ errCtx notNil and: [ errCtx receiver isMorph not ] ]
	whileTrue: [ errCtx := errCtx sender ].
"If we're at the root of the context chain then we have a fatal drawing problem"
errCtx ifNil: [ ^ self handleFatalDrawingError: err ].
errMorph := errCtx receiver.
"If the morph causing the problem has already the #drawError flag set,
			then search for the next morph above in the caller chain."
errMorph hasProperty: #errorOnDraw ] whileTrue.
errMorph setProperty: #errorOnDraw toValue: true.
"Install the old error handler, so we can re-raise the error"
rcvr error: err ] in WorldState>>displayWorldSafely:
BlockClosure>>cull:cull:
[ :ex | errorHandlerBlock cull: ex description cull: ex receiver ] in BlockClosure>>ifError:
BlockClosure>>cull:
Context>>evaluateSignal:
Context>>handleSignal:
MessageNotUnderstood(Exception)>>signal
UndefinedObject(Object)>>doesNotUnderstand: #finish
WorldState>>displayWorld:submorphs:
WorldMorph>>displayWorld
[ aWorld displayWorld ] in WorldState>>displayWorldSafely:
BlockClosure>>on:do:
BlockClosure>>ifError:
WorldState>>displayWorldSafely:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
WorldMorph>>doOneCycle
[ [ World doOneCycle.
Processor yield.
false ] whileFalse: [  ] ] in MorphicUIManager>>spawnNewProcess
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------

	a MethodDictionary(#=->MetacelloProjectRegistration>>#= #baseName->...etc...
		format: 	65543
		layout: 	a FixedLayout
		instanceVariables: 	nil
		organization: 	a ClassOrganization
		subclasses: 	nil
		name: 	#MetacelloProjectRegistration
		classPool: 	a Dictionary(#Registry->a MetacelloProjectRegistry )
		sharedPools: 	an OrderedCollection()
		environment: 	a SystemDictionary(lots of globals)
		category: 	#'Metacello-Core-Scripts'
		traitComposition: 	{}
		localSelectors: 	nil



--- The full stack ---
MCFileTreeRepository(MCRepository)>>error:
MCFileTreeRepository>>repositoryProperties
MCFileTreeRepository>>directory:
[ :cl | 
type = 'filetree'
	ifTrue: [ | description headerSize |
		description := aRepositorySpec description.
		headerSize := 'filetree://' size.
		^ cl new
			directory:
				(self
					fileHandleOn:
						(aRepositorySpec description
							copyFrom: headerSize + 1
							to: description size)) ] ] in MetacelloPharo30Platform(MetacelloPlatform)>>createRepository:
BlockClosure>>cull:
SystemDictionary(Dictionary)>>at:ifPresent:
SmalltalkImage>>at:ifPresent:
MetacelloPharo30Platform(MetacelloPlatform)>>createRepository:
MetacelloPharo30Platform(MetacelloPharoCommonPlatform)>>creaProcesses and their stacks: 
Process: a Process in [ self value.
Processor terminateActive ] in BlockClosure>>newProcess
  stack:

[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in DelayExperimentalSpinScheduler(DelayMicrosecondScheduler)>>runTimerEventLoop
  stack:

DelayExperimentalSpinScheduler(DelayMicrosecondScheduler)>>runTimerEventLoop
[ self runTimerEventLoop ] in DelayExperimentalSpinScheduler(DelayMicrosecondScheduler)>>startTimerEventLoop
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in Array(SequenceableCollection)>>do:
  stack:

Array(SequenceableCollection)>>do:
BIConfigurableFormatter>>formatCommentsFor:
[ :each | 
codeStream nextPut: $:.
self visitNode: each.
self formatCommentWithStatements
	ifTrue: [ self formatCommentsFor: each ].
self space ] in BIConfigurableFormatter>>formatBlockArgumentsFor:
OrderedCollection>>do:
BIConfigurableFormatter>>formatBlockArgumentsFor:
BIConfigurableFormatter>>formatBlock:
[ self formatBlock: aBlockNode ] in BIConfigurableFormatter>>visitBlockNode:
BlockClosure>>ensure:
BIConfigurableFormatter>>bracketWith:around:
BIConfigurableFormatter>>visitBlockNode:
RBBlockNode>>acceptVisitor:
BIConfigurableFormatter(RBProgramNodeVisitor)>>visitNode:
[ needsParenthesis
	ifTrue: [ codeStream nextPutAll: self stringInsideParentheses ].
super visitNode: aNode.
(self formatCommentWithStatements
	or: [ aNode isMethod or: [ aNode isSequence ] ])
	ifFalse: [ self formatCommentsFor: aNode ].
needsParenthesis
	ifTrue: [ codeStream nextPutAll: self stringInsideParentheses ] ] in BIConfigurableFormatter>>visitNode:
BIConfigurableFormatter>>bracketWith:around:
BIConfigurableFormatter>>visitNode:
BIConfigurableFormatter>>format:
[ self class new
	indent: self indent;
	installNewContext: context;
	format: aNode ] in BIConfigurableFormatter>>formattedSourceFor:
[ self at: key put: aBlock value ] in IdentityDictionary(Dictionary)>>at:ifAbsentPut:
IdentityDictionary(Dictionary)>>at:ifAbsent:
IdentityDictionary(Dictionary)>>at:ifAbsentPut:
------------------------------

Process: a Process in nil
  stack:

Array(SequenceableCollection)>>do:
[ :logger | 
logger
	nextPutAll: 'Processes and their stacks: ';
	cr.
Process allInstances
	do: [ :each | 
		| ctx |
		logger
			nextPutAll: 'Process: ';
			print: each;
			cr;
			nextPutAll: '  stack:';
			cr;
			cr.
		ctx := each isActiveProcess
			ifTrue: [ thisContext sender ]
			ifFalse: [ each suspendedContext ].
		ctx
			ifNotNil: [ (ctx stackOfSize: 20)
					do: [ :s | 
						logger
							print: s;
							cr ] ].
		logger
			nextPutAll: '------------------------------';
			cr;
			cr ] ] in [ Smalltalk logError: aString inContext: aContext.

" Print stacks of all current processes "
Smalltalk
	logDuring: [ :logger | 
		logger
			nextPutAll: 'Processes and their stacks: ';
			cr.
		Process allInstances
			do: [ :each | 
				| ctx |
				logger
					nextPutAll: 'Process: ';
					print: each;
					cr;
					nextPutAll: '  stack:';
					cr;
					cr.
				ctx := each isActiveProcess
					ifTrue: [ thisContext sender ]
					ifFalse: [ each suspendedContext ].
				ctx
					ifNotNil: [ (ctx stackOfSize: 20)
							do: [ :s | 
								logger
									print: s;
									cr ] ].
				logger
					nextPutAll: '------------------------------';
					cr;
					cr ] ] ] in NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage:
[ logStream := self openLog.
aMonadicBlock value: logStream ] in SmalltalkImage>>logDuring:
BlockClosure>>ensure:
SmalltalkImage>>logDuring:
[ Smalltalk logError: aString inContext: aContext.

" Print stacks of all current processes "
Smalltalk
	logDuring: [ :logger | 
		logger
			nextPutAll: 'Processes and their stacks: ';
			cr.
		Process allInstances
			do: [ :each | 
				| ctx |
				logger
					nextPutAll: 'Process: ';
					print: each;
					cr;
					nextPutAll: '  stack:';
					cr;
					cr.
				ctx := each isActiveProcess
					ifTrue: [ thisContext sender ]
					ifFalse: [ each suspendedContext ].
				ctx
					ifNotNil: [ (ctx stackOfSize: 20)
							do: [ :s | 
								logger
									print: s;
									cr ] ].
				logger
					nextPutAll: '------------------------------';
					cr;
					cr ] ] ] in NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage:
BlockClosure>>ensure:
NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage:
NonInteractiveUIManager(CommandLineUIManager)>>unhandledErrorDefaultAction:
UnhandledError>>defaultAction
UndefinedObject>>handleSignal:
UnhandledError(Exception)>>signal
UnhandledError class>>signalForException:
Error>>defaultAction
UndefinedObject>>handleSignal:
Error(Exception)>>signal
Error(Exception)>>signal:
UndefinedObject(Object)>>error:
[ :err :rcvr | 
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Search the sender chain to find the morph causing the problem"
[ errCtx notNil and: [ errCtx receiver isMorph not ] ]
	whileTrue: [ errCtx := errCtx sender ].
"If we're at the root of the context chain then we have a fatal drawing problem"
errCtx ifNil: [ ^ self handleFatalDrawingError: err ].
errMorph := errCtx receiver.
"If the morph causing the problem has already the #drawError flag set,
			then search for the next morph above in the caller chain."
errMorph hasProperty: #errorOnDraw ] whileTrue.
errMorph setProperty: #errorOnDraw toValue: true.
"Install the old error handler, so we can re-raise the error"
rcvr error: err ] in WorldState>>displayWorldSafely:
BlockClosure>>cull:cull:
------------------------------

Process: a Process in [ self value.
Processor terminateActive ] in BlockClosure>>newProcess
  stack:

[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in [ self value.
Processor terminateActive ] in BlockClosure>>newProcess
  stack:

[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in [ self value.
Processor terminateActive ] in BlockClosure>>newProcess
  stack:

[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in SmalltalkImage>>lowSpaceWatcher
  stack:

SmalltalkImage>>lowSpaceWatcher
[ self lowSpaceWatcher ] in SmalltalkImage>>installLowSpaceWatcher
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in [ self value.
Processor terminateActive ] in BlockClosure>>newProcess
  stack:

[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in InputEventFetcher>>waitForInput
  stack:

InputEventFetcher>>waitForInput
InputEventFetcher>>eventLoop
[ self eventLoop ] in InputEventFetcher>>installEventLoop
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in WeakArray class>>finalizationProcess
  stack:

WeakArray class>>finalizationProcess
[ self finalizationProcess ] in WeakArray class>>restartFinalizationProcess
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

jectDowngrade , MetacelloAllowProjectUpgrade
			, MetacelloAllowConflictingProjectUpgrade
	do:
		[ :ex | ex handleResolutionFor: self ]
"option handlers need to be outermost set of handlers ... last line of defense before users are involved" ]
	on: MetacelloAllowLockedProjectChange
	do:
		[ :ex | ex handleResolutionFor: self ]
"MetacelloAllowLockedProjectChange need to be outermost handler ... since it is signaled from second line of handlers" ] in MetacelloScriptEngine>>handleNotificationsForAction:
BlockClosure>>on:do:
MetacelloScriptEngine>>handleNotificationsForAction:
[ self
	handleNotificationsForAction: [ | version loadedSpec |
		self setDefaultsAndValidateProjectSpec.
		[ loadedSpec := (self lookupProjectSpecFor: self projectSpec) copy ]
			on: MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
			do:
				[ :ex | ex handleOnDownGrade: onDownGradeBlock onUpgrade: onUpgradeBlock ].
		version := loadedSpec versionForScriptEngine: self.
		self
			root:
				(required isEmpty
					ifTrue: [ version load ]
					ifFalse: [ version load: required ]) loadDirective.
		loadedSpec loads: required.
		MetacelloProjectRegistration
			registrationForProjectSpec: loadedSpec
			ifAbsent: [ :new | 
				new
					loadedInImage: true;
					registerProject ]
			ifPresent: [ :existing :new | 
				existing
					copyOnWrite: [ :existingCopy | 
						existingCopy
							loadedInImage: true;
							merge: new ] ] ] ] in MetacelloScriptEngine>>load:onProjectDownGrade:onProjectUpgrade:
BlockClosure>>ensure:
MetacelloProjectRegistration class>>copyRegistryRestoreOnErrorWhile:
 - - - - - - - - - - - - - - -  
			- - - - - - - - - - - - - - - - - -
MetacelloScriptEngine>>load:onProjectDownGrade:onProjectUpgrade:
MetacelloScriptEngine>>load:
[ :projectSpec | 
| engine |
engine := MetacelloScriptEngine new
	options: self options copy;
	projectSpec: projectSpec;
	yourself.
engine perform: actionArg key withArguments: actionArg value.
engine root ifNotNil: [ :root | self roots add: root ] ] in MetacelloScriptApiExecutor(MetacelloScriptExecutor)>>execute:
THERE_BE_DRAGONS_HERE
Error: MessageNotUnderstood: receiver of "finish" is nil
28 July 2016 1:38:54.448537 pm

VM: unix - i686 - linux-gnu - CoInterpreter VMMaker.oscog-eem.1855 uuid: d8e4a3c2-a3bf-4adc-b224-8012903a1ef4 May  4 2016
StackToRegisterMappingCogit VMMaker.oscog-eem.1855 uuid: d8e4a3c2-a3bf-4adc-b224-8012903a1ef4 May  4 2016
https://github.com/pharo-project/pharo-vm.git Commit: b8ec25a570d7539653e1d793e97609adb509aaed Date: 2016-05-04 11:14:22 +0200 By: Esteban Lorenzano <[email protected]> Jenkins build #589

Image: Pharo5.0 [Latest update: #50760]

UndefinedObject(Object)>>error:
	Receiver: nil
	Arguments and temporary variables: 
		aString: 	'MessageNotUnderstood: receiver of "finish" is nil'
	Receiver's instance variables: 
nil

[ :err :rcvr | 
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Search the sender chain to find the morph causing the problem"
[ errCtx notNil and: [ errCtx receiver isMorph not ] ]
	whileTrue: [ errCtx := errCtx sender ].
"If we're at the root of the context chain then we have a fatal drawing problem"
errCtx ifNil: [ ^ self handleFatalDrawingError: err ].
errMorph := errCtx receiver.
"If the morph causing the problem has already the #drawError flag set,
			then search for the next morph above in the caller chain."
errMorph hasProperty: #errorOnDraw ] whileTrue.
errMorph setProperty: #errorOnDraw toValue: true.
"Install the old error handler, so we can re-raise the error"
rcvr error: err ] in WorldState>>displayWorldSafely:
	Receiver: a WorldState
	Arguments and temporary variables: 
		aWorld: 	a WorldMorph(562956288) [world]
		err: 	'MessageNotUnderstood: receiver of "finish" is nil'
		rcvr: 	nil
		errCtx: 	WorldMorph>>displayWorld
		errMorph: 	a WorldMorph(562956288) [world]
	Receiver's instance variables: 
		hands: 	an Array(a HandMorph(265251328))
		viewBox: 	(0@0) corner: (976@665)
		canvas: 	nil
		damageRecorder: 	a DamageRecorder
		stepList: 	a Heap()
		lastStepTime: 	2912
		lastStepMessage: 	nil
		lastCycleTime: 	51
		alarms: 	a Heap()
		lastAlarmTime: 	53
		menuBuilder: 	nil


BlockClosure>>cull:cull:
	Receiver: [ :err :rcvr | 
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Sea...etc...
	Arguments and temporary variables: 
		firstArg: 	'MessageNotUnderstood: receiver of "finish" is nil'
		secondArg: 	nil
	Receiver's instance variables: 
		outerContext: 	WorldState>>displayWorldSafely:
		startpc: 	89
		numArgs: 	2


[ :ex | errorHandlerBlock cull: ex description cull: ex receiver ] in BlockClosure>>ifError:
	Receiver: [ aWorld displayWorld ]
	Arguments and temporary variables: 
		errorHandlerBlock: 	[ :err :rcvr | 
| errCtx errMorph |
errCtx := thisContext.
[...etc...
		ex: 	MessageNotUnderstood: receiver of "finish" is nil
	Receiver's instance variables: 
		outerContext: 	WorldState>>displayWorldSafely:
		startpc: 	82
		numArgs: 	0


BlockClosure>>cull:
	Receiver: [ :ex | errorHandlerBlock cull: ex description cull: ex receiver ]
	Arguments and temporary variables: 
		anArg: 	MessageNotUnderstood: receiver of "finish" is nil
	Receiver's instance variables: 
		outerContext: 	BlockClosure>>ifError:
		startpc: 	40
		numArgs: 	1


Context>>evaluateSignal:
	Receiver: BlockClosure>>on:do:
	Arguments and temporary variables: 
		exception: 	MessageNotUnderstood: receiver of "finish" is nil
		value: 	nil
	Receiver's instance variables: 
		sender: 	BlockClosure>>ifError:
		pc: 	18
		stackp: 	2
		method: 	BlockClosure>>#on:do:
		closureOrNil: 	nil
		receiver: 	[ aWorld displayWorld ]


Context>>handleSignal:
	Receiver: BlockClosure>>on:do:
	Arguments and temporary variables: 
		exception: 	MessageNotUnderstood: receiver of "finish" is nil
	Receiver's instance variables: 
		sender: 	BlockClosure>>ifError:
		pc: 	18
		stackp: 	2
		method: 	BlockClosure>>#on:do:
		closureOrNil: 	nil
		receiver: 	[ aWorld displayWorld ]


MessageNotUnderstood(Exception)>>signal
	Receiver: MessageNotUnderstood: receiver of "finish" is nil
	Arguments and temporary variables: 

	Receiver's instance variables: 
		messageText: 	nil
		tag: 	nil
		signaler: 	nil
		signalContext: 	MessageNotUnderstood(Exception)>>signal
		handlerContext: 	BlockClosure>>on:do:
		outerContext: 	nil
		message: 	finish
		receiver: 	nil
		reachedDefaultHandler: 	false


UndefinedObject(Object)>>doesNotUnderstand: #finish
	Receiver: nil
	Arguments and temporary variables: 
		aMessage: 	finish
		exception: 	MessageNotUnderstood: receiver of "finish" is nil
		resumeValue: 	nil
	Receiver's instance variables: 
nil

WorldState>>displayWorld:submorphs:
	Receiver: a WorldState
	Arguments and temporary variables: 
		allDamage: 	an OrderedCollection((0@0) corner: (240@120))
		handsToDraw: 	#()
		aWorld: 	a WorldMorph(562956288) [world]
		submorphs: 	an Array(a TaskbarMorph(804941056) a SystemWindow(426322176) an Imag...etc...
		deferredUpdateMode: 	true
	Receiver's instance variables: 
		hands: 	an Array(a HandMorph(265251328))
		viewBox: 	(0@0) corner: (976@665)
		canvas: 	nil
		damageRecorder: 	a DamageRecorder
		stepList: 	a Heap()
		lastStepTime: 	2912
		lastStepMessage: 	nil
		lastCycleTime: 	51
		alarms: 	a Heap()
		lastAlarmTime: 	53
		menuBuilder: 	nil


WorldMorph>>displayWorld
	Receiver: a WorldMorph(562956288) [world]
	Arguments and temporary variables: 

	Receiver's instance variables: 
		bounds: 	(0@0) corner: (976@665)
		owner: 	nil
		submorphs: 	an Array(a TaskbarMorph(804941056) a SystemWindow(426322176) an Imag...etc...
		fullBounds: 	nil
		color: 	(Color r: 0.937 g: 0.937 b: 0.937 alpha: 1.0)
		extension: 	a MorphExtension (474891008) [other:  (dragEnabled -> true) (dropEna...etc...
		borderWidth: 	0
		borderColor: 	(Color r: 0.861 g: 1.0 b: 0.722 alpha: 1.0)
		backgroundMorph: 	nil
		worldState: 	a WorldState
		griddingOn: 	nil
		osWindow: 	nil
		session: 	nil


[ aWorld displayWorld ] in WorldState>>displayWorldSafely:
	Receiver: a WorldState
	Arguments and temporary variables: 
		aWorld: 	a WorldMorph(562956288) [world]
	Receiver's instance variables: 
		hands: 	an Array(a HandMorph(265251328))
		viewBox: 	(0@0) corner: (976@665)
		canvas: 	nil
		damageRecorder: 	a DamageRecorder
		stepList: 	a Heap()
		lastStepTime: 	2912
		lastStepMessage: 	nil
		lastCycleTime: 	51
		alarms: 	a Heap()
		lastAlarmTime: 	53
		menuBuilder: 	nil


BlockClosure>>on:do:
	Receiver: [ aWorld displayWorld ]
	Arguments and temporary variables: 
		exception: 	Error
		handlerAction: 	[ :ex | errorHandlerBlock cull: ex description cull: ex receiver...etc...
	Receiver's instance variables: 
		outerContext: 	WorldState>>displayWorldSafely:
		startpc: 	82
		numArgs: 	0


BlockClosure>>ifError:
	Receiver: [ aWorld displayWorld ]
	Arguments and temporary variables: 
		errorHandlerBlock: 	[ :err :rcvr | 
| errCtx errMorph |
errCtx := thisContext.
[...etc...
	Receiver's instance variables: 
		outerContext: 	WorldState>>displayWorldSafely:
		startpc: 	82
		numArgs: 	0


WorldState>>displayWorldSafely:
	Receiver: a WorldState
	Arguments and temporary variables: 
		aWorld: 	a WorldMorph(562956288) [world]
	Receiver's instance variables: 
		hands: 	an Array(a HandMorph(265251328))
		viewBox: 	(0@0) corner: (976@665)
		canvas: 	nil
		damageRecorder: 	a DamageRecorder
		stepList: 	a Heap()
		lastStepTime: 	2912
		lastStepMessage: 	nil
		lastCycleTime: 	51
		alarms: 	a Heap()
		lastAlarmTime: 	53
		menuBuilder: 	nil


WorldState>>doOneCycleNowFor:
	Receiver: a WorldState
	Arguments and temporary variables: 
		aWorld: 	a WorldMorph(562956288) [world]
	Receiver's instance variables: 
		hands: 	an Array(a HandMorph(265251328))
		viewBox: 	(0@0) corner: (976@665)
		canvas: 	nil
		damageRecorder: 	a DamageRecorder
		stepList: 	a Heap()
		lastStepTime: 	2912
		lastStepMessage: 	nil
		lastCycleTime: 	51
		alarms: 	a Heap()
		lastAlarmTime: 	53
		menuBuilder: 	nil


WorldState>>doOneCycleFor:
	Receiver: a WorldState
	Arguments and temporary variables: 
		aWorld: 	a WorldMorph(562956288) [world]
	Receiver's instance variables: 
		hands: 	an Array(a HandMorph(265251328))
		viewBox: 	(0@0) corner: (976@665)
		canvas: 	nil
		damageRecorder: 	a DamageRecorder
		stepList: 	a Heap()
		lastStepTime: 	2912
		lastStepMessage: 	nil
		lastCycleTime: 	51
		alarms: 	a Heap()
		lastAlarmTime: 	53
		menuBuilder: 	nil


WorldMorph>>doOneCycle
	Receiver: a WorldMorph(562956288) [world]
	Arguments and temporary variables: 

	Receiver's instance variables: 
		bounds: 	(0@0) corner: (976@665)
		owner: 	nil
		submorphs: 	an Array(a TaskbarMorph(804941056) a SystemWindow(426322176) an Imag...etc...
		fullBounds: 	nil
		color: 	(Color r: 0.937 g: 0.937 b: 0.937 alpha: 1.0)
		extension: 	a MorphExtension (474891008) [other:  (dragEnabled -> true) (dropEna...etc...
		borderWidth: 	0
		borderColor: 	(Color r: 0.861 g: 1.0 b: 0.722 alpha: 1.0)
		backgroundMorph: 	nil
		worldState: 	a WorldState
		griddingOn: 	nil
		osWindow: 	nil
		session: 	nil


[ [ World doOneCycle.
Processor yield.
false ] whileFalse: [  ] ] in MorphicUIManager>>spawnNewProcess
	Receiver: a MorphicUIManager
	Arguments and temporary variables: 

	Receiver's instance variables: 
		interactiveParser: 	nil
		activeTranscript: 	nil


[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
	Receiver: [ [ World doOneCycle.
Processor yield.
false ] whileFalse: [  ] ]
	Arguments and temporary variables: 

	Receiver's instance variables: 
		outerContext: 	MorphicUIManager>>spawnNewProcess
		startpc: 	65
		numArgs: 	0



--- The full stack ---
UndefinedObject(Object)>>error:
[ :err :rcvr | 
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Search the sender chain to find the morph causing the problem"
[ errCtx notNil and: [ errCtx receiver isMorph not ] ]
	whileTrue: [ errCtx := errCtx sender ].
"If we're at the root of the context chain then we have a fatal drawing problem"
errCtx ifNil: [ ^ self handleFatalDrawingError: err ].
errMorph := errCtx receiver.
"If the morph causing the problem has already the #drawError flag set,
			then search for the next morph above in the caller chain."
errMorph hasProperty: #errorOnDraw ] whileTrue.
errMorph setProperty: #errorOnDraw toValue: true.
"Install the old error handler, so we can re-raise the error"
rcvr error: err ] in WorldState>>displayWorldSafely:
BlockClosure>>cull:cull:
[ :ex | errorHandlerBlock cull: ex description cull: ex receiver ] in BlockClosure>>ifError:
BlockClosure>>cull:
Context>>evaluateSignal:
Context>>handleSignal:
MessageNotUnderstood(Exception)>>signal
UndefinedObject(Object)>>doesNotUnderstand: #finish
WorldState>>displayWorld:submorphs:
WorldMorph>>displayWorld
[ aWorld displayWorld ] in WorldState>>displayWorldSafely:
BlockClosure>>on:do:
BlockClosure>>ifError:
WorldState>>displayWorldSafely:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
WorldMorph>>doOneCycle
[ [ World doOneCycle.
Processor yield.
false ] whileFalse: [  ] ] in MorphicUIManager>>spawnNewProcess
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------

Processes and their stacks: 
Process: a Process in [ self value.
Processor terminateActive ] in BlockClosure>>newProcess
  stack:

[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in DelayExperimentalSpinScheduler(DelayMicrosecondScheduler)>>runTimerEventLoop
  stack:

DelayExperimentalSpinScheduler(DelayMicrosecondScheduler)>>runTimerEventLoop
[ self runTimerEventLoop ] in DelayExperimentalSpinScheduler(DelayMicrosecondScheduler)>>startTimerEventLoop
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in DelayExperimentalSpinScheduler>>unschedule:
  stack:

DelayExperimentalSpinScheduler>>unschedule:
DelayWaitTimeout(Delay)>>unschedule
[ self unschedule ] in DelayWaitTimeout>>wait
BlockClosure>>ensure:
DelayWaitTimeout>>wait
Semaphore>>waitTimeoutMSecs:
Socket>>waitForConnectionFor:ifTimedOut:
Socket>>connectTo:port:waitForConnectionFor:
ZdcSecureSocketStream(ZdcAbstractSocketStream)>>socketConnectTo:port:
ZdcSecureSocketStream(ZdcSimpleSocketStream)>>connectTo:port:
ZdcSecureSocketStream class(ZdcSimpleSocketStream class)>>openConnectionToHost:port:timeout:
ZnNetworkingUtils>>socketStreamToUrlDirectly:
ZnNetworkingUtils>>socketStreamToUrl:
ZnNetworkingUtils class>>socketStreamToUrl:
ZnClient>>newConnectionTo:
ZnClient>>getConnectionAndExecute
ZnClient>>executeWithRedirectsRemaining:
[ self executeWithRedirectsRemaining: self maxNumberOfRedirects ] in ZnClient>>executeWithRetriesRemaining:
BlockClosure>>on:do:
ZnClient>>executeWithRetriesRemaining:
------------------------------

Process: a Process in nil
  stack:

Array(SequenceableCollection)>>do:
[ :logger | 
logger
	nextPutAll: 'Processes and their stacks: ';
	cr.
Process allInstances
	do: [ :each | 
		| ctx |
		logger
			nextPutAll: 'Process: ';
			print: each;
			cr;
			nextPutAll: '  stack:';
			cr;
			cr.
		ctx := each isActiveProcess
			ifTrue: [ thisContext sender ]
			ifFalse: [ each suspendedContext ].
		ctx
			ifNotNil: [ (ctx stackOfSize: 20)
					do: [ :s | 
						logger
							print: s;
							cr ] ].
		logger
			nextPutAll: '------------------------------';
			cr;
			cr ] ] in [ Smalltalk logError: aString inContext: aContext.

" Print stacks of all current processes "
Smalltalk
	logDuring: [ :logger | 
		logger
			nextPutAll: 'Processes and their stacks: ';
			cr.
		Process allInstances
			do: [ :each | 
				| ctx |
				logger
					nextPutAll: 'Process: ';
					print: each;
					cr;
					nextPutAll: '  stack:';
					cr;
					cr.
				ctx := each isActiveProcess
					ifTrue: [ thisContext sender ]
					ifFalse: [ each suspendedContext ].
				ctx
					ifNotNil: [ (ctx stackOfSize: 20)
							do: [ :s | 
								logger
									print: s;
									cr ] ].
				logger
					nextPutAll: '------------------------------';
					cr;
					cr ] ] ] in NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage:
[ logStream := self openLog.
aMonadicBlock value: logStream ] in SmalltalkImage>>logDuring:
BlockClosure>>ensure:
SmalltalkImage>>logDuring:
[ Smalltalk logError: aString inContext: aContext.

" Print stacks of all current processes "
Smalltalk
	logDuring: [ :logger | 
		logger
			nextPutAll: 'Processes and their stacks: ';
			cr.
		Process allInstances
			do: [ :each | 
				| ctx |
				logger
					nextPutAll: 'Process: ';
					print: each;
					cr;
					nextPutAll: '  stack:';
					cr;
					cr.
				ctx := each isActiveProcess
					ifTrue: [ thisContext sender ]
					ifFalse: [ each suspendedContext ].
				ctx
					ifNotNil: [ (ctx stackOfSize: 20)
							do: [ :s | 
								logger
									print: s;
									cr ] ].
				logger
					nextPutAll: '------------------------------';
					cr;
					cr ] ] ] in NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage:
BlockClosure>>ensure:
NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage:
NonInteractiveUIManager(CommandLineUIManager)>>unhandledErrorDefaultAction:
UnhandledError>>defaultAction
UndefinedObject>>handleSignal:
UnhandledError(Exception)>>signal
UnhandledError class>>signalForException:
Error>>defaultAction
UndefinedObject>>handleSignal:
Error(Exception)>>signal
Error(Exception)>>signal:
UndefinedObject(Object)>>error:
[ :err :rcvr | 
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Search the sender chain to find the morph causing the problem"
[ errCtx notNil and: [ errCtx receiver isMorph not ] ]
	whileTrue: [ errCtx := errCtx sender ].
"If we're at the root of the context chain then we have a fatal drawing problem"
errCtx ifNil: [ ^ self handleFatalDrawingError: err ].
errMorph := errCtx receiver.
"If the morph causing the problem has already the #drawError flag set,
			then search for the next morph above in the caller chain."
errMorph hasProperty: #errorOnDraw ] whileTrue.
errMorph setProperty: #errorOnDraw toValue: true.
"Install the old error handler, so we can re-raise the error"
rcvr error: err ] in WorldState>>displayWorldSafely:
BlockClosure>>cull:cull:
------------------------------

Process: a Process in [ self value.
Processor terminateActive ] in BlockClosure>>newProcess
  stack:

[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in [ self value.
Processor terminateActive ] in BlockClosure>>newProcess
  stack:

[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in [ self value.
Processor terminateActive ] in BlockClosure>>newProcess
  stack:

[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in SmalltalkImage>>lowSpaceWatcher
  stack:

SmalltalkImage>>lowSpaceWatcher
[ self lowSpaceWatcher ] in SmalltalkImage>>installLowSpaceWatcher
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in [ self value.
Processor terminateActive ] in BlockClosure>>newProcess
  stack:

[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in InputEventFetcher>>waitForInput
  stack:

InputEventFetcher>>waitForInput
InputEventFetcher>>eventLoop
[ self eventLoop ] in InputEventFetcher>>installEventLoop
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Process: a Process in WeakArray class>>finalizationProcess
  stack:

WeakArray class>>finalizationProcess
[ self finalizationProcess ] in WeakArray class>>restartFinalizationProcess
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------

Reply via email to