Hi, 

On Mac OSX 10.12.6, when asking to load an image from the pharo launcher there 
is an error. see log

Hilaire
THERE_BE_DRAGONS_HERE
SubscriptOutOfBounds: 4
26 March 2018 2:02:19.777388 pm

VM: Mac OS - intel - 1012.6 - CoInterpreter VMMaker.oscog-eem.2254 uuid: 4f2c2cce-f4a2-469a-93f1-97ed941df0ad Jul 20 2017
StackToRegisterMappingCogit VMMaker.oscog-eem.2252 uuid: 2f3e9b0e-ecd3-4adf-b092-cce2e2587a5c Jul 20 2017
VM: 201707201942 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $ Date: Thu Jul 20 12:42:21 2017 -0700 $ Plugins: 201707201942 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $

Image: Pharo6.0 [Latest update: #60528]

ByteArray(Object)>>errorSubscriptBounds:
	Receiver: #[]
	Arguments and temporary variables: 
		index: 	4
	Receiver's instance variables: 
#[]

ByteArray(Object)>>at:
	Receiver: #[]
	Arguments and temporary variables: 
		index: 	4
	Receiver's instance variables: 
#[]

MultiByteFileStream(PositionableStream)>>nextLittleEndianNumber:
	Receiver: MultiByteFileStream: '/Users/prof/Desktop/Pharo.app/Contents/Resources'
	Arguments and temporary variables: 
		n: 	4
		bytes: 	#[]
		s: 	0
		i: 	4
	Receiver's instance variables: 



PhLVirtualMachineManager class>>imageFormatNumberFromStream:
	Receiver: PhLVirtualMachineManager
	Arguments and temporary variables: 
		aStream: 	MultiByteFileStream: '/Users/prof/Desktop/Pharo.app/Contents/Resources...etc...
		number: 	nil
	Receiver's instance variables: 
		superclass: 	Object
		methodDict: 	a MethodDictionary(#availableVirtualMachines->PhLVirtualMachineMana...etc...
		format: 	65539
		layout: 	a FixedLayout
		instanceVariables: 	nil
		organization: 	a ClassOrganization
		subclasses: 	nil
		name: 	#PhLVirtualMachineManager
		classPool: 	a Dictionary(#VMStore->File @ /Users/prof/Documents/Pharo/vms )
		sharedPools: 	an OrderedCollection()
		environment: 	a SystemDictionary(lots of globals)
		category: 	#'PharoLauncher-Core-Model'
		traitComposition: 	{}
		localSelectors: 	nil


[ :stream | self imageFormatNumberFromStream: stream ] in PhLVirtualMachineManager class>>imageFormatNumberFromFile:
	Receiver: PhLVirtualMachineManager
	Arguments and temporary variables: 
		anImagePath: 	File @ /Users/prof/Desktop/Pharo.app/Contents/Resources
		imageFile: 	File @ /Users/prof/Desktop/Pharo.app/Contents/Resources
		stream: 	MultiByteFileStream: '/Users/prof/Desktop/Pharo.app/Contents/Resources'...etc...
	Receiver's instance variables: 
		superclass: 	Object
		methodDict: 	a MethodDictionary(#availableVirtualMachines->PhLVirtualMachineMana...etc...
		format: 	65539
		layout: 	a FixedLayout
		instanceVariables: 	nil
		organization: 	a ClassOrganization
		subclasses: 	nil
		name: 	#PhLVirtualMachineManager
		classPool: 	a Dictionary(#VMStore->File @ /Users/prof/Documents/Pharo/vms )
		sharedPools: 	an OrderedCollection()
		environment: 	a SystemDictionary(lots of globals)
		category: 	#'PharoLauncher-Core-Model'
		traitComposition: 	{}
		localSelectors: 	nil


[ aBlock value: stream ] in FileReference(AbstractFileReference)>>binaryReadStreamDo:
	Receiver: File @ /Users/prof/Desktop/Pharo.app/Contents/Resources
	Arguments and temporary variables: 
		aBlock: 	[ :stream | self imageFormatNumberFromStream: stream ]
		stream: 	MultiByteFileStream: '/Users/prof/Desktop/Pharo.app/Contents/Resources'...etc...
	Receiver's instance variables: 
		filesystem: 	a FileSystem
		path: 	Path / 'Users' / 'prof' / 'Desktop' / 'Pharo.app' / 'Contents' / 'Resourc...etc...


BlockClosure>>ensure:
	Receiver: [ aBlock value: stream ]
	Arguments and temporary variables: 
		aBlock: 	[ stream close ]
		complete: 	nil
		returnValue: 	nil
	Receiver's instance variables: 
		outerContext: 	FileReference(AbstractFileReference)>>binaryReadStreamDo:
		startpc: 	34
		numArgs: 	0


FileReference(AbstractFileReference)>>binaryReadStreamDo:
	Receiver: File @ /Users/prof/Desktop/Pharo.app/Contents/Resources
	Arguments and temporary variables: 
		aBlock: 	[ :stream | self imageFormatNumberFromStream: stream ]
		stream: 	MultiByteFileStream: '/Users/prof/Desktop/Pharo.app/Contents/Resources'...etc...
	Receiver's instance variables: 
		filesystem: 	a FileSystem
		path: 	Path / 'Users' / 'prof' / 'Desktop' / 'Pharo.app' / 'Contents' / 'Resourc...etc...


PhLVirtualMachineManager class>>imageFormatNumberFromFile:
	Receiver: PhLVirtualMachineManager
	Arguments and temporary variables: 
		anImagePath: 	File @ /Users/prof/Desktop/Pharo.app/Contents/Resources
		imageFile: 	File @ /Users/prof/Desktop/Pharo.app/Contents/Resources
	Receiver's instance variables: 
		superclass: 	Object
		methodDict: 	a MethodDictionary(#availableVirtualMachines->PhLVirtualMachineMana...etc...
		format: 	65539
		layout: 	a FixedLayout
		instanceVariables: 	nil
		organization: 	a ClassOrganization
		subclasses: 	nil
		name: 	#PhLVirtualMachineManager
		classPool: 	a Dictionary(#VMStore->File @ /Users/prof/Documents/Pharo/vms )
		sharedPools: 	an OrderedCollection()
		environment: 	a SystemDictionary(lots of globals)
		category: 	#'PharoLauncher-Core-Model'
		traitComposition: 	{}
		localSelectors: 	nil


PhLVirtualMachineManager>>imageFormatNumber
	Receiver: a PhLVirtualMachineManager
	Arguments and temporary variables: 

	Receiver's instance variables: 
		imageFile: 	File @ /Users/prof/Desktop/Pharo.app/Contents/Resources
		imageFormatNumber: 	nil
		imageVersion: 	nil


PhLVirtualMachineManager>>vmFileName
	Receiver: a PhLVirtualMachineManager
	Arguments and temporary variables: 
		architecture: 	nil
		pharoVersion: 	nil
	Receiver's instance variables: 
		imageFile: 	File @ /Users/prof/Desktop/Pharo.app/Contents/Resources
		imageFormatNumber: 	nil
		imageVersion: 	nil


[ :bar | 
bar label: 'Determining Image version'.
vm := self availableVirtualMachines
	at: self vmFileName
	ifAbsent: [ bar
			label: 'Fetching VM to run Pharo ' , self imageVersion , ' images';
			current: 25.
		self fetchVm.
		vm := self availableVirtualMachines at: self vmFileName.
		bar
			label: 'Fetching sources files for Pharo ' , self imageVersion;
			current: 50.
		self fetchSourcesFiles.
		bar
			label: 'Running the image';
			current: 100.
		vm ] ] in PhLVirtualMachineManager>>vm
	Receiver: a PhLVirtualMachineManager
	Arguments and temporary variables: 
		vm: 	nil
		bar: 	a Job
	Receiver's instance variables: 
		imageFile: 	File @ /Users/prof/Desktop/Pharo.app/Contents/Resources
		imageFormatNumber: 	nil
		imageVersion: 	nil


[ :bar | aBlock value: bar ] in MorphicUIManager>>informUserDuring:
	Receiver: a MorphicUIManager
	Arguments and temporary variables: 
		aBlock: 	[ :bar | 
bar label: 'Determining Image version'.
vm := self availableV...etc...
		bar: 	a Job
	Receiver's instance variables: 
		interactiveParser: 	nil
		activeTranscript: 	nil


BlockClosure>>cull:
	Receiver: [ :bar | aBlock value: bar ]
	Arguments and temporary variables: 
		anArg: 	a Job
	Receiver's instance variables: 
		outerContext: 	MorphicUIManager>>informUserDuring:
		startpc: 	34
		numArgs: 	1


[ ^ block cull: self ] in [ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
	Receiver: a Job
	Arguments and temporary variables: 

	Receiver's instance variables: 
		block: 	[ :bar | aBlock value: bar ]
		currentValue: 	1
		min: 	1
		max: 	100
		title: 	'Determining Image version'
		children: 	an OrderedCollection()
		isRunning: 	true
		parent: 	nil
		process: 	a Process in nil


[ activeProcess psValueAt: index put: anObject.
aBlock value ] in CurrentJob(DynamicVariable)>>value:during:
	Receiver: a CurrentJob
	Arguments and temporary variables: 
		anObject: 	a Job
		aBlock: 	[ ^ block cull: self ]
		activeProcess: 	a Process in nil
		oldValue: 	nil
	Receiver's instance variables: 
		index: 	8


BlockClosure>>ensure:
	Receiver: [ activeProcess psValueAt: index put: anObject.
aBlock value ]
	Arguments and temporary variables: 
		aBlock: 	[ activeProcess psValueAt: index put: oldValue ]
		complete: 	nil
		returnValue: 	nil
	Receiver's instance variables: 
		outerContext: 	CurrentJob(DynamicVariable)>>value:during:
		startpc: 	47
		numArgs: 	0


CurrentJob(DynamicVariable)>>value:during:
	Receiver: a CurrentJob
	Arguments and temporary variables: 
		anObject: 	a Job
		aBlock: 	[ ^ block cull: self ]
		activeProcess: 	a Process in nil
		oldValue: 	nil
	Receiver's instance variables: 
		index: 	8


CurrentJob class(DynamicVariable class)>>value:during:
	Receiver: CurrentJob
	Arguments and temporary variables: 
		anObject: 	a Job
		aBlock: 	[ ^ block cull: self ]
	Receiver's instance variables: 
		superclass: 	DynamicVariable
		methodDict: 	a MethodDictionary()
		format: 	65537
		layout: 	a FixedLayout
		instanceVariables: 	nil
		organization: 	a ClassOrganization
		subclasses: 	nil
		name: 	#CurrentJob
		classPool: 	a Dictionary()
		sharedPools: 	nil
		environment: 	a SystemDictionary(lots of globals)
		category: 	#'Jobs-Base'
		traitComposition: 	{}
		localSelectors: 	nil
		soleInstance: 	a CurrentJob


[ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
	Receiver: a Job
	Arguments and temporary variables: 

	Receiver's instance variables: 
		block: 	[ :bar | aBlock value: bar ]
		currentValue: 	1
		min: 	1
		max: 	100
		title: 	'Determining Image version'
		children: 	an OrderedCollection()
		isRunning: 	true
		parent: 	nil
		process: 	a Process in nil


BlockClosure>>ensure:
	Receiver: [ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ]
	Arguments and temporary variables: 
		aBlock: 	[ self cleanupAfterRunning ]
		complete: 	nil
		returnValue: 	nil
	Receiver's instance variables: 
		outerContext: 	Job>>run
		startpc: 	41
		numArgs: 	0


Job>>run
	Receiver: a Job
	Arguments and temporary variables: 

	Receiver's instance variables: 
		block: 	[ :bar | aBlock value: bar ]
		currentValue: 	1
		min: 	1
		max: 	100
		title: 	'Determining Image version'
		children: 	an OrderedCollection()
		isRunning: 	true
		parent: 	nil
		process: 	a Process in nil


MorphicUIManager(UIManager)>>displayProgress:from:to:during:
	Receiver: a MorphicUIManager
	Arguments and temporary variables: 
		titleString: 	''
		minVal: 	1
		maxVal: 	100
		workBlock: 	[ :bar | aBlock value: bar ]
	Receiver's instance variables: 
		interactiveParser: 	nil
		activeTranscript: 	nil


MorphicUIManager>>informUserDuring:
	Receiver: a MorphicUIManager
	Arguments and temporary variables: 
		aBlock: 	[ :bar | 
bar label: 'Determining Image version'.
vm := self availableV...etc...
	Receiver's instance variables: 
		interactiveParser: 	nil
		activeTranscript: 	nil


PhLVirtualMachineManager>>vm
	Receiver: a PhLVirtualMachineManager
	Arguments and temporary variables: 
		vm: 	nil
	Receiver's instance variables: 
		imageFile: 	File @ /Users/prof/Desktop/Pharo.app/Contents/Resources
		imageFormatNumber: 	nil
		imageVersion: 	nil


[ | vmCommand |
vmCommand := (PhLVirtualMachineManager forImage: file pathString) vm.
^ PhLProcessWrapper command: (self launchCommandWith: vmCommand) ] in PhLImage>>launch
	Receiver: Image (Resources)
	Arguments and temporary variables: 
		vmCommand: 	nil
	Receiver's instance variables: 
		file: 	File @ /Users/prof/Desktop/Pharo.app/Contents/Resources
		meta: 	nil


BlockClosure>>on:do:
	Receiver: [ | vmCommand |
vmCommand := (PhLVirtualMachineManager forImage: file pathString) vm.
^ Ph...etc...
	Arguments and temporary variables: 
		exception: 	PhLImageVersionDeterminationError
		handlerAction: 	[ :error | self imageDeterminationErrorAlert: error ]
	Receiver's instance variables: 
		outerContext: 	PhLImage>>launch
		startpc: 	57
		numArgs: 	0


PhLImage>>launch
	Receiver: Image (Resources)
	Arguments and temporary variables: 

	Receiver's instance variables: 
		file: 	File @ /Users/prof/Desktop/Pharo.app/Contents/Resources
		meta: 	nil


PhLLaunchImageCommand>>launchImage:
	Receiver: a PhLLaunchImageCommand
	Arguments and temporary variables: 
		aPhLImage: 	Image (Resources)
	Receiver's instance variables: 
		context: 	a PhLCommandContext


PhLLaunchImageCommand>>launchImageFromDisk
	Receiver: a PhLLaunchImageCommand
	Arguments and temporary variables: 
		imagePath: 	'/Users/prof/Desktop/Pharo.app/Contents/Resources'
	Receiver's instance variables: 
		context: 	a PhLCommandContext


PhLLaunchImageCommand>>execute
	Receiver: a PhLLaunchImageCommand
	Arguments and temporary variables: 

	Receiver's instance variables: 
		context: 	a PhLCommandContext


PhLLaunchImageCommand(PhLCommand)>>executeIfApplicable
	Receiver: a PhLLaunchImageCommand
	Arguments and temporary variables: 

	Receiver's instance variables: 
		context: 	a PhLCommandContext


PhLCommandButton>>performAction
	Receiver: a PhLCommandButton
	Arguments and temporary variables: 

	Receiver's instance variables: 
		dependents: 	a DependentsArray(a MorphicButtonAdapter)
		announceur: 	nil
		focusOrder: 	nil
		owner: 	a PhLCommandToolbar
		window: 	a NewValueHolder[ nil ]
		spec: 	a SpecWrapper
		extentHolder: 	a NewValueHolder[ nil ]
		needRebuild: 	a NewValueHolder[ true ]
		additionalKeyBindings: 	a Dictionary(Character space->[ self action ] )
		announcer: 	an Announcer
		keyStrokesForNextFocusHolder: 	a CollectionValueHolder[ an Array() ]
		keyStrokesForPreviousFocusHolder: 	a CollectionValueHolder[ an Array() ]
		windowIcon: 	a NewValueHolder[ nil ]
		aboutText: 	a NewValueHolder[ nil ]
		askOkToClose: 	a NewValueHolder[ false ]
		titleHolder: 	a CollectionValueHolder[ 'Button' ]
		helpHolder: 	a NewValueHolder[ 'Launch' ]
		borderWidth: 	a NewValueHolder[ 0 ]
		borderColor: 	a NewValueHolder[ Color transparent ]
		enabledHolder: 	a NewValueHolder[ true ]
		dragEnabled: 	a NewValueHolder[ false ]
		dropEnabled: 	a NewValueHolder[ false ]
		dragTransformationBlock: 	a NewValueHolder[ [ :item :source | item ] ]
		wantDropBlock: 	a NewValueHolder[ [ :draggedItem :event :source | self dropEnabl...etc...
		acceptDropBlock: 	a NewValueHolder[ [ :draggedItem :event :source |  ] ]
		transferBlock: 	a NewValueHolder[ [ :passenger :source | self transferFor: passe...etc...
		color: 	a NewValueHolder[ (Color r: 0.13 g: 0.13 b: 0.13 alpha: 1.0) ]
		actionHolder: 	a NewValueHolder[ [  ] ]
		labelHolder: 	a CollectionValueHolder[ '' ]
		fontHolder: 	a NewValueHolder[ nil ]
		stateHolder: 	a NewValueHolder[ false ]
		actionPerformedHolder: 	a NewValueHolder[ nil ]
		askBeforeChangingHolder: 	a NewValueHolder[ false ]
		iconHolder: 	a NewValueHolder[ Form(13x13x32) ]
		menuHolder: 	a NewValueHolder[ a MenuModel ]
		shortcutHolder: 	a NewValueHolder[ nil ]
		commandClass: 	PhLLaunchImageCommand
		contextHolder: 	a NewValueHolder[ a PhLCommandContext ]
		command: 	a PhLLaunchImageCommand


MorphicButtonAdapter>>action
	Receiver: a MorphicButtonAdapter
	Arguments and temporary variables: 

	Receiver's instance variables: 
		dependents: 	a DependentsArray(a PluggableButtonMorph(595057408))
		announceur: 	nil
		model: 	a PhLCommandButton
		widget: 	a PluggableButtonMorph(595057408)
		selector: 	nil


PluggableButtonMorph>>performAction:
	Receiver: a PluggableButtonMorph(595057408)
	Arguments and temporary variables: 
		event: 	[(848@23) mouseUp 18514 nil]
	Receiver's instance variables: 
		bounds: 	(831.0@0.0) corner: (856.0@29.0)
		owner: 	a PanelMorph(365235968)
		submorphs: 	an Array(an AlignmentMorph(569711104))
		fullBounds: 	(831@0) corner: (856@29)
		color: 	(Color r: 0.29 g: 0.28800000000000003 b: 0.28800000000000003 alpha: 1.0)...etc...
		extension: 	a MorphExtension (985686784) [balloonText]  [eventHandler = a Morphi...etc...
		borderWidth: 	1
		borderColor: 	#simple
		model: 	a MorphicButtonAdapter
		label: 	an IconicListItem(318891776)
		icon: 	nil
		getIconSelector: 	nil
		getStateSelector: 	#state
		actionSelector: 	#action
		font: 	nil
		getLabelSelector: 	#label
		getMenuSelector: 	nil
		shortcutCharacter: 	nil
		askBeforeChanging: 	false
		triggerOnMouseDown: 	false
		offColor: 	nil
		onColor: 	nil
		feedbackColor: 	nil
		showSelectionFeedback: 	false
		allButtons: 	nil
		arguments: 	#()
		argumentsProvider: 	nil
		argumentsSelector: 	nil
		gradientLook: 	false
		enabled: 	true
		actionBlock: 	nil
		getColorSelector: 	nil
		getEnabledSelector: 	#enabled
		getFontSelector: 	#font
		lastColor: 	nil
		labelMorph: 	an IconicListItem(318891776)
		iconMorph: 	nil
		iconPosition: 	#left
		lastState: 	false


[ :m | 
(m containsPoint: evt cursorPoint)
	ifTrue: [ m enabled
			ifTrue: [ m performAction: evt ] ] ] in PluggableButtonMorph>>mouseUp:
	Receiver: a PluggableButtonMorph(595057408)
	Arguments and temporary variables: 
		evt: 	[(848@23) mouseUp 18514 nil]
		all: 	an Array(a PluggableButtonMorph(501820160) a PluggableButtonMorph(92421888...etc...
		m: 	a PluggableButtonMorph(595057408)
	Receiver's instance variables: 
		bounds: 	(831.0@0.0) corner: (856.0@29.0)
		owner: 	a PanelMorph(365235968)
		submorphs: 	an Array(an AlignmentMorph(569711104))
		fullBounds: 	(831@0) corner: (856@29)
		color: 	(Color r: 0.29 g: 0.28800000000000003 b: 0.28800000000000003 alpha: 1.0)...etc...
		extension: 	a MorphExtension (985686784) [balloonText]  [eventHandler = a Morphi...etc...
		borderWidth: 	1
		borderColor: 	#simple
		model: 	a MorphicButtonAdapter
		label: 	an IconicListItem(318891776)
		icon: 	nil
		getIconSelector: 	nil
		getStateSelector: 	#state
		actionSelector: 	#action
		font: 	nil
		getLabelSelector: 	#label
		getMenuSelector: 	nil
		shortcutCharacter: 	nil
		askBeforeChanging: 	false
		triggerOnMouseDown: 	false
		offColor: 	nil
		onColor: 	nil
		feedbackColor: 	nil
		showSelectionFeedback: 	false
		allButtons: 	nil
		arguments: 	#()
		argumentsProvider: 	nil
		argumentsSelector: 	nil
		gradientLook: 	false
		enabled: 	true
		actionBlock: 	nil
		getColorSelector: 	nil
		getEnabledSelector: 	#enabled
		getFontSelector: 	#font
		lastColor: 	nil
		labelMorph: 	an IconicListItem(318891776)
		iconMorph: 	nil
		iconPosition: 	#left
		lastState: 	false


Array(SequenceableCollection)>>do:
	Receiver: an Array(a PluggableButtonMorph(501820160) a PluggableButtonMorph(924218880) a PluggableBu...etc...
	Arguments and temporary variables: 
		aBlock: 	[ :m | 
(m containsPoint: evt cursorPoint)
	ifTrue: [ m enabled
			ifTr...etc...
		index: 	5
	Receiver's instance variables: 
an Array(a PluggableButtonMorph(501820160) a PluggableButtonMorph(924218880) a PluggableBu...etc...

PluggableButtonMorph>>mouseUp:
	Receiver: a PluggableButtonMorph(595057408)
	Arguments and temporary variables: 
		evt: 	[(848@23) mouseUp 18514 nil]
		all: 	an Array(a PluggableButtonMorph(501820160) a PluggableButtonMorph(92421888...etc...
	Receiver's instance variables: 
		bounds: 	(831.0@0.0) corner: (856.0@29.0)
		owner: 	a PanelMorph(365235968)
		submorphs: 	an Array(an AlignmentMorph(569711104))
		fullBounds: 	(831@0) corner: (856@29)
		color: 	(Color r: 0.29 g: 0.28800000000000003 b: 0.28800000000000003 alpha: 1.0)...etc...
		extension: 	a MorphExtension (985686784) [balloonText]  [eventHandler = a Morphi...etc...
		borderWidth: 	1
		borderColor: 	#simple
		model: 	a MorphicButtonAdapter
		label: 	an IconicListItem(318891776)
		icon: 	nil
		getIconSelector: 	nil
		getStateSelector: 	#state
		actionSelector: 	#action
		font: 	nil
		getLabelSelector: 	#label
		getMenuSelector: 	nil
		shortcutCharacter: 	nil
		askBeforeChanging: 	false
		triggerOnMouseDown: 	false
		offColor: 	nil
		onColor: 	nil
		feedbackColor: 	nil
		showSelectionFeedback: 	false
		allButtons: 	nil
		arguments: 	#()
		argumentsProvider: 	nil
		argumentsSelector: 	nil
		gradientLook: 	false
		enabled: 	true
		actionBlock: 	nil
		getColorSelector: 	nil
		getEnabledSelector: 	#enabled
		getFontSelector: 	#font
		lastColor: 	nil
		labelMorph: 	an IconicListItem(318891776)
		iconMorph: 	nil
		iconPosition: 	#left
		lastState: 	false


PluggableButtonMorph(Morph)>>handleMouseUp:
	Receiver: a PluggableButtonMorph(595057408)
	Arguments and temporary variables: 
		anEvent: 	[(848@23) mouseUp 18514 nil]
		result: 	nil
	Receiver's instance variables: 
		bounds: 	(831.0@0.0) corner: (856.0@29.0)
		owner: 	a PanelMorph(365235968)
		submorphs: 	an Array(an AlignmentMorph(569711104))
		fullBounds: 	(831@0) corner: (856@29)
		color: 	(Color r: 0.29 g: 0.28800000000000003 b: 0.28800000000000003 alpha: 1.0)...etc...
		extension: 	a MorphExtension (985686784) [balloonText]  [eventHandler = a Morphi...etc...
		borderWidth: 	1
		borderColor: 	#simple
		model: 	a MorphicButtonAdapter
		label: 	an IconicListItem(318891776)
		icon: 	nil
		getIconSelector: 	nil
		getStateSelector: 	#state
		actionSelector: 	#action
		font: 	nil
		getLabelSelector: 	#label
		getMenuSelector: 	nil
		shortcutCharacter: 	nil
		askBeforeChanging: 	false
		triggerOnMouseDown: 	false
		offColor: 	nil
		onColor: 	nil
		feedbackColor: 	nil
		showSelectionFeedback: 	false
		allButtons: 	nil
		arguments: 	#()
		argumentsProvider: 	nil
		argumentsSelector: 	nil
		gradientLook: 	false
		enabled: 	true
		actionBlock: 	nil
		getColorSelector: 	nil
		getEnabledSelector: 	#enabled
		getFontSelector: 	#font
		lastColor: 	nil
		labelMorph: 	an IconicListItem(318891776)
		iconMorph: 	nil
		iconPosition: 	#left
		lastState: 	false



--- The full stack ---
ByteArray(Object)>>errorSubscriptBounds:
ByteArray(Object)>>at:
MultiByteFileStream(PositionableStream)>>nextLittleEndianNumber:
PhLVirtualMachineManager class>>imageFormatNumberFromStream:
[ :stream | self imageFormatNumberFromStream: stream ] in PhLVirtualMachineManager class>>imageFormatNumberFromFile:
[ aBlock value: stream ] in FileReference(AbstractFileReference)>>binaryReadStreamDo:
BlockClosure>>ensure:
FileReference(AbstractFileReference)>>binaryReadStreamDo:
PhLVirtualMachineManager class>>imageFormatNumberFromFile:
PhLVirtualMachineManager>>imageFormatNumber
PhLVirtualMachineManager>>vmFileName
[ :bar | 
bar label: 'Determining Image version'.
vm := self availableVirtualMachines
	at: self vmFileName
	ifAbsent: [ bar
			label: 'Fetching VM to run Pharo ' , self imageVersion , ' images';
			current: 25.
		self fetchVm.
		vm := self availableVirtualMachines at: self vmFileName.
		bar
			label: 'Fetching sources files for Pharo ' , self imageVersion;
			current: 50.
		self fetchSourcesFiles.
		bar
			label: 'Running the image';
			current: 100.
		vm ] ] in PhLVirtualMachineManager>>vm
[ :bar | aBlock value: bar ] in MorphicUIManager>>informUserDuring:
BlockClosure>>cull:
[ ^ block cull: self ] in [ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
[ activeProcess psValueAt: index put: anObject.
aBlock value ] in CurrentJob(DynamicVariable)>>value:during:
BlockClosure>>ensure:
CurrentJob(DynamicVariable)>>value:during:
CurrentJob class(DynamicVariable class)>>value:during:
[ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
BlockClosure>>ensure:
Job>>run
MorphicUIManager(UIManager)>>displayProgress:from:to:during:
MorphicUIManager>>informUserDuring:
PhLVirtualMachineManager>>vm
[ | vmCommand |
vmCommand := (PhLVirtualMachineManager forImage: file pathString) vm.
^ PhLProcessWrapper command: (self launchCommandWith: vmCommand) ] in PhLImage>>launch
BlockClosure>>on:do:
PhLImage>>launch
PhLLaunchImageCommand>>launchImage:
PhLLaunchImageCommand>>launchImageFromDisk
PhLLaunchImageCommand>>execute
PhLLaunchImageCommand(PhLCommand)>>executeIfApplicable
PhLCommandButton>>performAction
MorphicButtonAdapter>>action
PluggableButtonMorph>>performAction:
[ :m | 
(m containsPoint: evt cursorPoint)
	ifTrue: [ m enabled
			ifTrue: [ m performAction: evt ] ] ] in PluggableButtonMorph>>mouseUp:
Array(SequenceableCollection)>>do:
PluggableButtonMorph>>mouseUp:
PluggableButtonMorph(Morph)>>handleMouseUp:
 - - - - - - - - - - - - - - -  
			- - - - - - - - - - - - - - - - - -
MouseButtonEvent>>sentTo:
PluggableButtonMorph(Morph)>>handleEvent:
PluggableButtonMorph(Morph)>>handleFocusEvent:
[ ActiveHand := self.
ActiveEvent := anEvent.
result := focusHolder
	handleFocusEvent: (anEvent transformedBy: (focusHolder transformedFrom: self)) ] in HandMorph>>sendFocusEvent:to:clear:
BlockClosure>>on:do:
WorldMorph(PasteUpMorph)>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
HandMorph>>processEventsFromQueue:
HandMorph>>processEvents
[ :h | 
self activeHand: h.
h processEvents.
self activeHand: nil ] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
WorldMorph>>doOneCycle
WorldMorph class>>doOneCycle
[ [ WorldMorph doOneCycle.
Processor yield.
false ] whileFalse: [  ] ] in MorphicUIManager>>spawnNewProcess
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
SubscriptOutOfBounds: 4
26 March 2018 2:03:17.883162 pm

VM: Mac OS - intel - 1012.6 - CoInterpreter VMMaker.oscog-eem.2254 uuid: 4f2c2cce-f4a2-469a-93f1-97ed941df0ad Jul 20 2017
StackToRegisterMappingCogit VMMaker.oscog-eem.2252 uuid: 2f3e9b0e-ecd3-4adf-b092-cce2e2587a5c Jul 20 2017
VM: 201707201942 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $ Date: Thu Jul 20 12:42:21 2017 -0700 $ Plugins: 201707201942 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $

Image: Pharo6.0 [Latest update: #60528]

ByteArray(Object)>>errorSubscriptBounds:
	Receiver: #[]
	Arguments and temporary variables: 
		index: 	4
	Receiver's instance variables: 
#[]

ByteArray(Object)>>at:
	Receiver: #[]
	Arguments and temporary variables: 
		index: 	4
	Receiver's instance variables: 
#[]

MultiByteFileStream(PositionableStream)>>nextLittleEndianNumber:
	Receiver: MultiByteFileStream: '/Users/prof/Documents/Pharo/images'
	Arguments and temporary variables: 
		n: 	4
		bytes: 	#[]
		s: 	0
		i: 	4
	Receiver's instance variables: 



PhLVirtualMachineManager class>>imageFormatNumberFromStream:
	Receiver: PhLVirtualMachineManager
	Arguments and temporary variables: 
		aStream: 	MultiByteFileStream: '/Users/prof/Documents/Pharo/images'
		number: 	nil
	Receiver's instance variables: 
		superclass: 	Object
		methodDict: 	a MethodDictionary(#availableVirtualMachines->PhLVirtualMachineMana...etc...
		format: 	65539
		layout: 	a FixedLayout
		instanceVariables: 	nil
		organization: 	a ClassOrganization
		subclasses: 	nil
		name: 	#PhLVirtualMachineManager
		classPool: 	a Dictionary(#VMStore->File @ /Users/prof/Documents/Pharo/vms )
		sharedPools: 	an OrderedCollection()
		environment: 	a SystemDictionary(lots of globals)
		category: 	#'PharoLauncher-Core-Model'
		traitComposition: 	{}
		localSelectors: 	nil


[ :stream | self imageFormatNumberFromStream: stream ] in PhLVirtualMachineManager class>>imageFormatNumberFromFile:
	Receiver: PhLVirtualMachineManager
	Arguments and temporary variables: 
		anImagePath: 	File @ /Users/prof/Documents/Pharo/images
		imageFile: 	File @ /Users/prof/Documents/Pharo/images
		stream: 	MultiByteFileStream: '/Users/prof/Documents/Pharo/images'
	Receiver's instance variables: 
		superclass: 	Object
		methodDict: 	a MethodDictionary(#availableVirtualMachines->PhLVirtualMachineMana...etc...
		format: 	65539
		layout: 	a FixedLayout
		instanceVariables: 	nil
		organization: 	a ClassOrganization
		subclasses: 	nil
		name: 	#PhLVirtualMachineManager
		classPool: 	a Dictionary(#VMStore->File @ /Users/prof/Documents/Pharo/vms )
		sharedPools: 	an OrderedCollection()
		environment: 	a SystemDictionary(lots of globals)
		category: 	#'PharoLauncher-Core-Model'
		traitComposition: 	{}
		localSelectors: 	nil


[ aBlock value: stream ] in FileReference(AbstractFileReference)>>binaryReadStreamDo:
	Receiver: File @ /Users/prof/Documents/Pharo/images
	Arguments and temporary variables: 
		aBlock: 	[ :stream | self imageFormatNumberFromStream: stream ]
		stream: 	MultiByteFileStream: '/Users/prof/Documents/Pharo/images'
	Receiver's instance variables: 
		filesystem: 	a FileSystem
		path: 	Path / 'Users' / 'prof' / 'Documents' / 'Pharo' / 'images'


BlockClosure>>ensure:
	Receiver: [ aBlock value: stream ]
	Arguments and temporary variables: 
		aBlock: 	[ stream close ]
		complete: 	nil
		returnValue: 	nil
	Receiver's instance variables: 
		outerContext: 	FileReference(AbstractFileReference)>>binaryReadStreamDo:
		startpc: 	34
		numArgs: 	0


FileReference(AbstractFileReference)>>binaryReadStreamDo:
	Receiver: File @ /Users/prof/Documents/Pharo/images
	Arguments and temporary variables: 
		aBlock: 	[ :stream | self imageFormatNumberFromStream: stream ]
		stream: 	MultiByteFileStream: '/Users/prof/Documents/Pharo/images'
	Receiver's instance variables: 
		filesystem: 	a FileSystem
		path: 	Path / 'Users' / 'prof' / 'Documents' / 'Pharo' / 'images'


PhLVirtualMachineManager class>>imageFormatNumberFromFile:
	Receiver: PhLVirtualMachineManager
	Arguments and temporary variables: 
		anImagePath: 	File @ /Users/prof/Documents/Pharo/images
		imageFile: 	File @ /Users/prof/Documents/Pharo/images
	Receiver's instance variables: 
		superclass: 	Object
		methodDict: 	a MethodDictionary(#availableVirtualMachines->PhLVirtualMachineMana...etc...
		format: 	65539
		layout: 	a FixedLayout
		instanceVariables: 	nil
		organization: 	a ClassOrganization
		subclasses: 	nil
		name: 	#PhLVirtualMachineManager
		classPool: 	a Dictionary(#VMStore->File @ /Users/prof/Documents/Pharo/vms )
		sharedPools: 	an OrderedCollection()
		environment: 	a SystemDictionary(lots of globals)
		category: 	#'PharoLauncher-Core-Model'
		traitComposition: 	{}
		localSelectors: 	nil


PhLVirtualMachineManager>>imageFormatNumber
	Receiver: a PhLVirtualMachineManager
	Arguments and temporary variables: 

	Receiver's instance variables: 
		imageFile: 	File @ /Users/prof/Documents/Pharo/images
		imageFormatNumber: 	nil
		imageVersion: 	nil


PhLVirtualMachineManager>>vmFileName
	Receiver: a PhLVirtualMachineManager
	Arguments and temporary variables: 
		architecture: 	nil
		pharoVersion: 	nil
	Receiver's instance variables: 
		imageFile: 	File @ /Users/prof/Documents/Pharo/images
		imageFormatNumber: 	nil
		imageVersion: 	nil


[ :bar | 
bar label: 'Determining Image version'.
vm := self availableVirtualMachines
	at: self vmFileName
	ifAbsent: [ bar
			label: 'Fetching VM to run Pharo ' , self imageVersion , ' images';
			current: 25.
		self fetchVm.
		vm := self availableVirtualMachines at: self vmFileName.
		bar
			label: 'Fetching sources files for Pharo ' , self imageVersion;
			current: 50.
		self fetchSourcesFiles.
		bar
			label: 'Running the image';
			current: 100.
		vm ] ] in PhLVirtualMachineManager>>vm
	Receiver: a PhLVirtualMachineManager
	Arguments and temporary variables: 
		vm: 	nil
		bar: 	a Job
	Receiver's instance variables: 
		imageFile: 	File @ /Users/prof/Documents/Pharo/images
		imageFormatNumber: 	nil
		imageVersion: 	nil


[ :bar | aBlock value: bar ] in MorphicUIManager>>informUserDuring:
	Receiver: a MorphicUIManager
	Arguments and temporary variables: 
		aBlock: 	[ :bar | 
bar label: 'Determining Image version'.
vm := self availableV...etc...
		bar: 	a Job
	Receiver's instance variables: 
		interactiveParser: 	nil
		activeTranscript: 	nil


BlockClosure>>cull:
	Receiver: [ :bar | aBlock value: bar ]
	Arguments and temporary variables: 
		anArg: 	a Job
	Receiver's instance variables: 
		outerContext: 	MorphicUIManager>>informUserDuring:
		startpc: 	34
		numArgs: 	1


[ ^ block cull: self ] in [ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
	Receiver: a Job
	Arguments and temporary variables: 

	Receiver's instance variables: 
		block: 	[ :bar | aBlock value: bar ]
		currentValue: 	1
		min: 	1
		max: 	100
		title: 	'Determining Image version'
		children: 	an OrderedCollection()
		isRunning: 	true
		parent: 	nil
		process: 	a Process in nil


[ activeProcess psValueAt: index put: anObject.
aBlock value ] in CurrentJob(DynamicVariable)>>value:during:
	Receiver: a CurrentJob
	Arguments and temporary variables: 
		anObject: 	a Job
		aBlock: 	[ ^ block cull: self ]
		activeProcess: 	a Process in nil
		oldValue: 	nil
	Receiver's instance variables: 
		index: 	8


BlockClosure>>ensure:
	Receiver: [ activeProcess psValueAt: index put: anObject.
aBlock value ]
	Arguments and temporary variables: 
		aBlock: 	[ activeProcess psValueAt: index put: oldValue ]
		complete: 	nil
		returnValue: 	nil
	Receiver's instance variables: 
		outerContext: 	CurrentJob(DynamicVariable)>>value:during:
		startpc: 	47
		numArgs: 	0


CurrentJob(DynamicVariable)>>value:during:
	Receiver: a CurrentJob
	Arguments and temporary variables: 
		anObject: 	a Job
		aBlock: 	[ ^ block cull: self ]
		activeProcess: 	a Process in nil
		oldValue: 	nil
	Receiver's instance variables: 
		index: 	8


CurrentJob class(DynamicVariable class)>>value:during:
	Receiver: CurrentJob
	Arguments and temporary variables: 
		anObject: 	a Job
		aBlock: 	[ ^ block cull: self ]
	Receiver's instance variables: 
		superclass: 	DynamicVariable
		methodDict: 	a MethodDictionary()
		format: 	65537
		layout: 	a FixedLayout
		instanceVariables: 	nil
		organization: 	a ClassOrganization
		subclasses: 	nil
		name: 	#CurrentJob
		classPool: 	a Dictionary()
		sharedPools: 	nil
		environment: 	a SystemDictionary(lots of globals)
		category: 	#'Jobs-Base'
		traitComposition: 	{}
		localSelectors: 	nil
		soleInstance: 	a CurrentJob


[ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
	Receiver: a Job
	Arguments and temporary variables: 

	Receiver's instance variables: 
		block: 	[ :bar | aBlock value: bar ]
		currentValue: 	1
		min: 	1
		max: 	100
		title: 	'Determining Image version'
		children: 	an OrderedCollection()
		isRunning: 	true
		parent: 	nil
		process: 	a Process in nil


BlockClosure>>ensure:
	Receiver: [ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ]
	Arguments and temporary variables: 
		aBlock: 	[ self cleanupAfterRunning ]
		complete: 	nil
		returnValue: 	nil
	Receiver's instance variables: 
		outerContext: 	Job>>run
		startpc: 	41
		numArgs: 	0


Job>>run
	Receiver: a Job
	Arguments and temporary variables: 

	Receiver's instance variables: 
		block: 	[ :bar | aBlock value: bar ]
		currentValue: 	1
		min: 	1
		max: 	100
		title: 	'Determining Image version'
		children: 	an OrderedCollection()
		isRunning: 	true
		parent: 	nil
		process: 	a Process in nil


MorphicUIManager(UIManager)>>displayProgress:from:to:during:
	Receiver: a MorphicUIManager
	Arguments and temporary variables: 
		titleString: 	''
		minVal: 	1
		maxVal: 	100
		workBlock: 	[ :bar | aBlock value: bar ]
	Receiver's instance variables: 
		interactiveParser: 	nil
		activeTranscript: 	nil


MorphicUIManager>>informUserDuring:
	Receiver: a MorphicUIManager
	Arguments and temporary variables: 
		aBlock: 	[ :bar | 
bar label: 'Determining Image version'.
vm := self availableV...etc...
	Receiver's instance variables: 
		interactiveParser: 	nil
		activeTranscript: 	nil


PhLVirtualMachineManager>>vm
	Receiver: a PhLVirtualMachineManager
	Arguments and temporary variables: 
		vm: 	nil
	Receiver's instance variables: 
		imageFile: 	File @ /Users/prof/Documents/Pharo/images
		imageFormatNumber: 	nil
		imageVersion: 	nil


[ | vmCommand |
vmCommand := (PhLVirtualMachineManager forImage: file pathString) vm.
^ PhLProcessWrapper command: (self launchCommandWith: vmCommand) ] in PhLImage>>launch
	Receiver: Image (images)
	Arguments and temporary variables: 
		vmCommand: 	nil
	Receiver's instance variables: 
		file: 	File @ /Users/prof/Documents/Pharo/images
		meta: 	nil


BlockClosure>>on:do:
	Receiver: [ | vmCommand |
vmCommand := (PhLVirtualMachineManager forImage: file pathString) vm.
^ Ph...etc...
	Arguments and temporary variables: 
		exception: 	PhLImageVersionDeterminationError
		handlerAction: 	[ :error | self imageDeterminationErrorAlert: error ]
	Receiver's instance variables: 
		outerContext: 	PhLImage>>launch
		startpc: 	57
		numArgs: 	0


PhLImage>>launch
	Receiver: Image (images)
	Arguments and temporary variables: 

	Receiver's instance variables: 
		file: 	File @ /Users/prof/Documents/Pharo/images
		meta: 	nil


PhLLaunchImageCommand>>launchImage:
	Receiver: a PhLLaunchImageCommand
	Arguments and temporary variables: 
		aPhLImage: 	Image (images)
	Receiver's instance variables: 
		context: 	a PhLCommandContext


PhLLaunchImageCommand>>launchImageFromDisk
	Receiver: a PhLLaunchImageCommand
	Arguments and temporary variables: 
		imagePath: 	'/Users/prof/Documents/Pharo/images'
	Receiver's instance variables: 
		context: 	a PhLCommandContext


PhLLaunchImageCommand>>execute
	Receiver: a PhLLaunchImageCommand
	Arguments and temporary variables: 

	Receiver's instance variables: 
		context: 	a PhLCommandContext


PhLLaunchImageCommand(PhLCommand)>>executeIfApplicable
	Receiver: a PhLLaunchImageCommand
	Arguments and temporary variables: 

	Receiver's instance variables: 
		context: 	a PhLCommandContext


PhLCommandButton>>performAction
	Receiver: a PhLCommandButton
	Arguments and temporary variables: 

	Receiver's instance variables: 
		dependents: 	a DependentsArray(a MorphicButtonAdapter)
		announceur: 	nil
		focusOrder: 	nil
		owner: 	a PhLCommandToolbar
		window: 	a NewValueHolder[ nil ]
		spec: 	a SpecWrapper
		extentHolder: 	a NewValueHolder[ nil ]
		needRebuild: 	a NewValueHolder[ true ]
		additionalKeyBindings: 	a Dictionary(Character space->[ self action ] )
		announcer: 	an Announcer
		keyStrokesForNextFocusHolder: 	a CollectionValueHolder[ an Array() ]
		keyStrokesForPreviousFocusHolder: 	a CollectionValueHolder[ an Array() ]
		windowIcon: 	a NewValueHolder[ nil ]
		aboutText: 	a NewValueHolder[ nil ]
		askOkToClose: 	a NewValueHolder[ false ]
		titleHolder: 	a CollectionValueHolder[ 'Button' ]
		helpHolder: 	a NewValueHolder[ 'Launch' ]
		borderWidth: 	a NewValueHolder[ 0 ]
		borderColor: 	a NewValueHolder[ Color transparent ]
		enabledHolder: 	a NewValueHolder[ true ]
		dragEnabled: 	a NewValueHolder[ false ]
		dropEnabled: 	a NewValueHolder[ false ]
		dragTransformationBlock: 	a NewValueHolder[ [ :item :source | item ] ]
		wantDropBlock: 	a NewValueHolder[ [ :draggedItem :event :source | self dropEnabl...etc...
		acceptDropBlock: 	a NewValueHolder[ [ :draggedItem :event :source |  ] ]
		transferBlock: 	a NewValueHolder[ [ :passenger :source | self transferFor: passe...etc...
		color: 	a NewValueHolder[ (Color r: 0.13 g: 0.13 b: 0.13 alpha: 1.0) ]
		actionHolder: 	a NewValueHolder[ [  ] ]
		labelHolder: 	a CollectionValueHolder[ '' ]
		fontHolder: 	a NewValueHolder[ nil ]
		stateHolder: 	a NewValueHolder[ false ]
		actionPerformedHolder: 	a NewValueHolder[ nil ]
		askBeforeChangingHolder: 	a NewValueHolder[ false ]
		iconHolder: 	a NewValueHolder[ Form(13x13x32) ]
		menuHolder: 	a NewValueHolder[ a MenuModel ]
		shortcutHolder: 	a NewValueHolder[ nil ]
		commandClass: 	PhLLaunchImageCommand
		contextHolder: 	a NewValueHolder[ a PhLCommandContext ]
		command: 	a PhLLaunchImageCommand


MorphicButtonAdapter>>action
	Receiver: a MorphicButtonAdapter
	Arguments and temporary variables: 

	Receiver's instance variables: 
		dependents: 	a DependentsArray(a PluggableButtonMorph(595057408))
		announceur: 	nil
		model: 	a PhLCommandButton
		widget: 	a PluggableButtonMorph(595057408)
		selector: 	nil


PluggableButtonMorph>>performAction:
	Receiver: a PluggableButtonMorph(595057408)
	Arguments and temporary variables: 
		event: 	[(840@12) mouseUp 96056 nil]
	Receiver's instance variables: 
		bounds: 	(831.0@0.0) corner: (856.0@29.0)
		owner: 	a PanelMorph(365235968)
		submorphs: 	an Array(an AlignmentMorph(569711104))
		fullBounds: 	(831@0) corner: (856@29)
		color: 	(Color r: 0.29 g: 0.28800000000000003 b: 0.28800000000000003 alpha: 1.0)...etc...
		extension: 	a MorphExtension (985686784) [balloonText]  [eventHandler = a Morphi...etc...
		borderWidth: 	1
		borderColor: 	#simple
		model: 	a MorphicButtonAdapter
		label: 	an IconicListItem(318891776)
		icon: 	nil
		getIconSelector: 	nil
		getStateSelector: 	#state
		actionSelector: 	#action
		font: 	nil
		getLabelSelector: 	#label
		getMenuSelector: 	nil
		shortcutCharacter: 	nil
		askBeforeChanging: 	false
		triggerOnMouseDown: 	false
		offColor: 	nil
		onColor: 	nil
		feedbackColor: 	nil
		showSelectionFeedback: 	false
		allButtons: 	nil
		arguments: 	#()
		argumentsProvider: 	nil
		argumentsSelector: 	nil
		gradientLook: 	false
		enabled: 	true
		actionBlock: 	nil
		getColorSelector: 	nil
		getEnabledSelector: 	#enabled
		getFontSelector: 	#font
		lastColor: 	nil
		labelMorph: 	an IconicListItem(318891776)
		iconMorph: 	nil
		iconPosition: 	#left
		lastState: 	false


[ :m | 
(m containsPoint: evt cursorPoint)
	ifTrue: [ m enabled
			ifTrue: [ m performAction: evt ] ] ] in PluggableButtonMorph>>mouseUp:
	Receiver: a PluggableButtonMorph(595057408)
	Arguments and temporary variables: 
		evt: 	[(840@12) mouseUp 96056 nil]
		all: 	an Array(a PluggableButtonMorph(501820160) a PluggableButtonMorph(92421888...etc...
		m: 	a PluggableButtonMorph(595057408)
	Receiver's instance variables: 
		bounds: 	(831.0@0.0) corner: (856.0@29.0)
		owner: 	a PanelMorph(365235968)
		submorphs: 	an Array(an AlignmentMorph(569711104))
		fullBounds: 	(831@0) corner: (856@29)
		color: 	(Color r: 0.29 g: 0.28800000000000003 b: 0.28800000000000003 alpha: 1.0)...etc...
		extension: 	a MorphExtension (985686784) [balloonText]  [eventHandler = a Morphi...etc...
		borderWidth: 	1
		borderColor: 	#simple
		model: 	a MorphicButtonAdapter
		label: 	an IconicListItem(318891776)
		icon: 	nil
		getIconSelector: 	nil
		getStateSelector: 	#state
		actionSelector: 	#action
		font: 	nil
		getLabelSelector: 	#label
		getMenuSelector: 	nil
		shortcutCharacter: 	nil
		askBeforeChanging: 	false
		triggerOnMouseDown: 	false
		offColor: 	nil
		onColor: 	nil
		feedbackColor: 	nil
		showSelectionFeedback: 	false
		allButtons: 	nil
		arguments: 	#()
		argumentsProvider: 	nil
		argumentsSelector: 	nil
		gradientLook: 	false
		enabled: 	true
		actionBlock: 	nil
		getColorSelector: 	nil
		getEnabledSelector: 	#enabled
		getFontSelector: 	#font
		lastColor: 	nil
		labelMorph: 	an IconicListItem(318891776)
		iconMorph: 	nil
		iconPosition: 	#left
		lastState: 	false


Array(SequenceableCollection)>>do:
	Receiver: an Array(a PluggableButtonMorph(501820160) a PluggableButtonMorph(924218880) a PluggableBu...etc...
	Arguments and temporary variables: 
		aBlock: 	[ :m | 
(m containsPoint: evt cursorPoint)
	ifTrue: [ m enabled
			ifTr...etc...
		index: 	5
	Receiver's instance variables: 
an Array(a PluggableButtonMorph(501820160) a PluggableButtonMorph(924218880) a PluggableBu...etc...

PluggableButtonMorph>>mouseUp:
	Receiver: a PluggableButtonMorph(595057408)
	Arguments and temporary variables: 
		evt: 	[(840@12) mouseUp 96056 nil]
		all: 	an Array(a PluggableButtonMorph(501820160) a PluggableButtonMorph(92421888...etc...
	Receiver's instance variables: 
		bounds: 	(831.0@0.0) corner: (856.0@29.0)
		owner: 	a PanelMorph(365235968)
		submorphs: 	an Array(an AlignmentMorph(569711104))
		fullBounds: 	(831@0) corner: (856@29)
		color: 	(Color r: 0.29 g: 0.28800000000000003 b: 0.28800000000000003 alpha: 1.0)...etc...
		extension: 	a MorphExtension (985686784) [balloonText]  [eventHandler = a Morphi...etc...
		borderWidth: 	1
		borderColor: 	#simple
		model: 	a MorphicButtonAdapter
		label: 	an IconicListItem(318891776)
		icon: 	nil
		getIconSelector: 	nil
		getStateSelector: 	#state
		actionSelector: 	#action
		font: 	nil
		getLabelSelector: 	#label
		getMenuSelector: 	nil
		shortcutCharacter: 	nil
		askBeforeChanging: 	false
		triggerOnMouseDown: 	false
		offColor: 	nil
		onColor: 	nil
		feedbackColor: 	nil
		showSelectionFeedback: 	false
		allButtons: 	nil
		arguments: 	#()
		argumentsProvider: 	nil
		argumentsSelector: 	nil
		gradientLook: 	false
		enabled: 	true
		actionBlock: 	nil
		getColorSelector: 	nil
		getEnabledSelector: 	#enabled
		getFontSelector: 	#font
		lastColor: 	nil
		labelMorph: 	an IconicListItem(318891776)
		iconMorph: 	nil
		iconPosition: 	#left
		lastState: 	false


PluggableButtonMorph(Morph)>>handleMouseUp:
	Receiver: a PluggableButtonMorph(595057408)
	Arguments and temporary variables: 
		anEvent: 	[(840@12) mouseUp 96056 nil]
		result: 	nil
	Receiver's instance variables: 
		bounds: 	(831.0@0.0) corner: (856.0@29.0)
		owner: 	a PanelMorph(365235968)
		submorphs: 	an Array(an AlignmentMorph(569711104))
		fullBounds: 	(831@0) corner: (856@29)
		color: 	(Color r: 0.29 g: 0.28800000000000003 b: 0.28800000000000003 alpha: 1.0)...etc...
		extension: 	a MorphExtension (985686784) [balloonText]  [eventHandler = a Morphi...etc...
		borderWidth: 	1
		borderColor: 	#simple
		model: 	a MorphicButtonAdapter
		label: 	an IconicListItem(318891776)
		icon: 	nil
		getIconSelector: 	nil
		getStateSelector: 	#state
		actionSelector: 	#action
		font: 	nil
		getLabelSelector: 	#label
		getMenuSelector: 	nil
		shortcutCharacter: 	nil
		askBeforeChanging: 	false
		triggerOnMouseDown: 	false
		offColor: 	nil
		onColor: 	nil
		feedbackColor: 	nil
		showSelectionFeedback: 	false
		allButtons: 	nil
		arguments: 	#()
		argumentsProvider: 	nil
		argumentsSelector: 	nil
		gradientLook: 	false
		enabled: 	true
		actionBlock: 	nil
		getColorSelector: 	nil
		getEnabledSelector: 	#enabled
		getFontSelector: 	#font
		lastColor: 	nil
		labelMorph: 	an IconicListItem(318891776)
		iconMorph: 	nil
		iconPosition: 	#left
		lastState: 	false



--- The full stack ---
ByteArray(Object)>>errorSubscriptBounds:
ByteArray(Object)>>at:
MultiByteFileStream(PositionableStream)>>nextLittleEndianNumber:
PhLVirtualMachineManager class>>imageFormatNumberFromStream:
[ :stream | self imageFormatNumberFromStream: stream ] in PhLVirtualMachineManager class>>imageFormatNumberFromFile:
[ aBlock value: stream ] in FileReference(AbstractFileReference)>>binaryReadStreamDo:
BlockClosure>>ensure:
FileReference(AbstractFileReference)>>binaryReadStreamDo:
PhLVirtualMachineManager class>>imageFormatNumberFromFile:
PhLVirtualMachineManager>>imageFormatNumber
PhLVirtualMachineManager>>vmFileName
[ :bar | 
bar label: 'Determining Image version'.
vm := self availableVirtualMachines
	at: self vmFileName
	ifAbsent: [ bar
			label: 'Fetching VM to run Pharo ' , self imageVersion , ' images';
			current: 25.
		self fetchVm.
		vm := self availableVirtualMachines at: self vmFileName.
		bar
			label: 'Fetching sources files for Pharo ' , self imageVersion;
			current: 50.
		self fetchSourcesFiles.
		bar
			label: 'Running the image';
			current: 100.
		vm ] ] in PhLVirtualMachineManager>>vm
[ :bar | aBlock value: bar ] in MorphicUIManager>>informUserDuring:
BlockClosure>>cull:
[ ^ block cull: self ] in [ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
[ activeProcess psValueAt: index put: anObject.
aBlock value ] in CurrentJob(DynamicVariable)>>value:during:
BlockClosure>>ensure:
CurrentJob(DynamicVariable)>>value:during:
CurrentJob class(DynamicVariable class)>>value:during:
[ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
BlockClosure>>ensure:
Job>>run
MorphicUIManager(UIManager)>>displayProgress:from:to:during:
MorphicUIManager>>informUserDuring:
PhLVirtualMachineManager>>vm
[ | vmCommand |
vmCommand := (PhLVirtualMachineManager forImage: file pathString) vm.
^ PhLProcessWrapper command: (self launchCommandWith: vmCommand) ] in PhLImage>>launch
BlockClosure>>on:do:
PhLImage>>launch
PhLLaunchImageCommand>>launchImage:
PhLLaunchImageCommand>>launchImageFromDisk
PhLLaunchImageCommand>>execute
PhLLaunchImageCommand(PhLCommand)>>executeIfApplicable
PhLCommandButton>>performAction
MorphicButtonAdapter>>action
PluggableButtonMorph>>performAction:
[ :m | 
(m containsPoint: evt cursorPoint)
	ifTrue: [ m enabled
			ifTrue: [ m performAction: evt ] ] ] in PluggableButtonMorph>>mouseUp:
Array(SequenceableCollection)>>do:
PluggableButtonMorph>>mouseUp:
PluggableButtonMorph(Morph)>>handleMouseUp:
 - - - - - - - - - - - - - - -  
			- - - - - - - - - - - - - - - - - -
MouseButtonEvent>>sentTo:
PluggableButtonMorph(Morph)>>handleEvent:
PluggableButtonMorph(Morph)>>handleFocusEvent:
[ ActiveHand := self.
ActiveEvent := anEvent.
result := focusHolder
	handleFocusEvent: (anEvent transformedBy: (focusHolder transformedFrom: self)) ] in HandMorph>>sendFocusEvent:to:clear:
BlockClosure>>on:do:
WorldMorph(PasteUpMorph)>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
HandMorph>>processEventsFromQueue:
HandMorph>>processEvents
[ :h | 
self activeHand: h.
h processEvents.
self activeHand: nil ] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
WorldMorph>>doOneCycle
WorldMorph class>>doOneCycle
[ [ WorldMorph doOneCycle.
Processor yield.
false ] whileFalse: [  ] ] in MorphicUIManager>>spawnNewProcess
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------

THERE_BE_DRAGONS_HERE
SubscriptOutOfBounds: 4
26 March 2018 2:03:49.433631 pm

VM: Mac OS - intel - 1012.6 - CoInterpreter VMMaker.oscog-eem.2254 uuid: 4f2c2cce-f4a2-469a-93f1-97ed941df0ad Jul 20 2017
StackToRegisterMappingCogit VMMaker.oscog-eem.2252 uuid: 2f3e9b0e-ecd3-4adf-b092-cce2e2587a5c Jul 20 2017
VM: 201707201942 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $ Date: Thu Jul 20 12:42:21 2017 -0700 $ Plugins: 201707201942 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $

Image: Pharo6.0 [Latest update: #60528]

ByteArray(Object)>>errorSubscriptBounds:
	Receiver: #[]
	Arguments and temporary variables: 
		index: 	4
	Receiver's instance variables: 
#[]

ByteArray(Object)>>at:
	Receiver: #[]
	Arguments and temporary variables: 
		index: 	4
	Receiver's instance variables: 
#[]

MultiByteFileStream(PositionableStream)>>nextLittleEndianNumber:
	Receiver: MultiByteFileStream: '/Users/prof/Documents/Pharo/images'
	Arguments and temporary variables: 
		n: 	4
		bytes: 	#[]
		s: 	0
		i: 	4
	Receiver's instance variables: 



PhLVirtualMachineManager class>>imageFormatNumberFromStream:
	Receiver: PhLVirtualMachineManager
	Arguments and temporary variables: 
		aStream: 	MultiByteFileStream: '/Users/prof/Documents/Pharo/images'
		number: 	nil
	Receiver's instance variables: 
		superclass: 	Object
		methodDict: 	a MethodDictionary(#availableVirtualMachines->PhLVirtualMachineMana...etc...
		format: 	65539
		layout: 	a FixedLayout
		instanceVariables: 	nil
		organization: 	a ClassOrganization
		subclasses: 	nil
		name: 	#PhLVirtualMachineManager
		classPool: 	a Dictionary(#VMStore->File @ /Users/prof/Documents/Pharo/vms )
		sharedPools: 	an OrderedCollection()
		environment: 	a SystemDictionary(lots of globals)
		category: 	#'PharoLauncher-Core-Model'
		traitComposition: 	{}
		localSelectors: 	nil


[ :stream | self imageFormatNumberFromStream: stream ] in PhLVirtualMachineManager class>>imageFormatNumberFromFile:
	Receiver: PhLVirtualMachineManager
	Arguments and temporary variables: 
		anImagePath: 	File @ /Users/prof/Documents/Pharo/images
		imageFile: 	File @ /Users/prof/Documents/Pharo/images
		stream: 	MultiByteFileStream: '/Users/prof/Documents/Pharo/images'
	Receiver's instance variables: 
		superclass: 	Object
		methodDict: 	a MethodDictionary(#availableVirtualMachines->PhLVirtualMachineMana...etc...
		format: 	65539
		layout: 	a FixedLayout
		instanceVariables: 	nil
		organization: 	a ClassOrganization
		subclasses: 	nil
		name: 	#PhLVirtualMachineManager
		classPool: 	a Dictionary(#VMStore->File @ /Users/prof/Documents/Pharo/vms )
		sharedPools: 	an OrderedCollection()
		environment: 	a SystemDictionary(lots of globals)
		category: 	#'PharoLauncher-Core-Model'
		traitComposition: 	{}
		localSelectors: 	nil


[ aBlock value: stream ] in FileReference(AbstractFileReference)>>binaryReadStreamDo:
	Receiver: File @ /Users/prof/Documents/Pharo/images
	Arguments and temporary variables: 
		aBlock: 	[ :stream | self imageFormatNumberFromStream: stream ]
		stream: 	MultiByteFileStream: '/Users/prof/Documents/Pharo/images'
	Receiver's instance variables: 
		filesystem: 	a FileSystem
		path: 	Path / 'Users' / 'prof' / 'Documents' / 'Pharo' / 'images'


BlockClosure>>ensure:
	Receiver: [ aBlock value: stream ]
	Arguments and temporary variables: 
		aBlock: 	[ stream close ]
		complete: 	nil
		returnValue: 	nil
	Receiver's instance variables: 
		outerContext: 	FileReference(AbstractFileReference)>>binaryReadStreamDo:
		startpc: 	34
		numArgs: 	0


FileReference(AbstractFileReference)>>binaryReadStreamDo:
	Receiver: File @ /Users/prof/Documents/Pharo/images
	Arguments and temporary variables: 
		aBlock: 	[ :stream | self imageFormatNumberFromStream: stream ]
		stream: 	MultiByteFileStream: '/Users/prof/Documents/Pharo/images'
	Receiver's instance variables: 
		filesystem: 	a FileSystem
		path: 	Path / 'Users' / 'prof' / 'Documents' / 'Pharo' / 'images'


PhLVirtualMachineManager class>>imageFormatNumberFromFile:
	Receiver: PhLVirtualMachineManager
	Arguments and temporary variables: 
		anImagePath: 	File @ /Users/prof/Documents/Pharo/images
		imageFile: 	File @ /Users/prof/Documents/Pharo/images
	Receiver's instance variables: 
		superclass: 	Object
		methodDict: 	a MethodDictionary(#availableVirtualMachines->PhLVirtualMachineMana...etc...
		format: 	65539
		layout: 	a FixedLayout
		instanceVariables: 	nil
		organization: 	a ClassOrganization
		subclasses: 	nil
		name: 	#PhLVirtualMachineManager
		classPool: 	a Dictionary(#VMStore->File @ /Users/prof/Documents/Pharo/vms )
		sharedPools: 	an OrderedCollection()
		environment: 	a SystemDictionary(lots of globals)
		category: 	#'PharoLauncher-Core-Model'
		traitComposition: 	{}
		localSelectors: 	nil


PhLVirtualMachineManager>>imageFormatNumber
	Receiver: a PhLVirtualMachineManager
	Arguments and temporary variables: 

	Receiver's instance variables: 
		imageFile: 	File @ /Users/prof/Documents/Pharo/images
		imageFormatNumber: 	nil
		imageVersion: 	nil


PhLVirtualMachineManager>>vmFileName
	Receiver: a PhLVirtualMachineManager
	Arguments and temporary variables: 
		architecture: 	nil
		pharoVersion: 	nil
	Receiver's instance variables: 
		imageFile: 	File @ /Users/prof/Documents/Pharo/images
		imageFormatNumber: 	nil
		imageVersion: 	nil


[ :bar | 
bar label: 'Determining Image version'.
vm := self availableVirtualMachines
	at: self vmFileName
	ifAbsent: [ bar
			label: 'Fetching VM to run Pharo ' , self imageVersion , ' images';
			current: 25.
		self fetchVm.
		vm := self availableVirtualMachines at: self vmFileName.
		bar
			label: 'Fetching sources files for Pharo ' , self imageVersion;
			current: 50.
		self fetchSourcesFiles.
		bar
			label: 'Running the image';
			current: 100.
		vm ] ] in PhLVirtualMachineManager>>vm
	Receiver: a PhLVirtualMachineManager
	Arguments and temporary variables: 
		vm: 	nil
		bar: 	a Job
	Receiver's instance variables: 
		imageFile: 	File @ /Users/prof/Documents/Pharo/images
		imageFormatNumber: 	nil
		imageVersion: 	nil


[ :bar | aBlock value: bar ] in MorphicUIManager>>informUserDuring:
	Receiver: a MorphicUIManager
	Arguments and temporary variables: 
		aBlock: 	[ :bar | 
bar label: 'Determining Image version'.
vm := self availableV...etc...
		bar: 	a Job
	Receiver's instance variables: 
		interactiveParser: 	nil
		activeTranscript: 	nil


BlockClosure>>cull:
	Receiver: [ :bar | aBlock value: bar ]
	Arguments and temporary variables: 
		anArg: 	a Job
	Receiver's instance variables: 
		outerContext: 	MorphicUIManager>>informUserDuring:
		startpc: 	34
		numArgs: 	1


[ ^ block cull: self ] in [ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
	Receiver: a Job
	Arguments and temporary variables: 

	Receiver's instance variables: 
		block: 	[ :bar | aBlock value: bar ]
		currentValue: 	1
		min: 	1
		max: 	100
		title: 	'Determining Image version'
		children: 	an OrderedCollection()
		isRunning: 	true
		parent: 	nil
		process: 	a Process in nil


[ activeProcess psValueAt: index put: anObject.
aBlock value ] in CurrentJob(DynamicVariable)>>value:during:
	Receiver: a CurrentJob
	Arguments and temporary variables: 
		anObject: 	a Job
		aBlock: 	[ ^ block cull: self ]
		activeProcess: 	a Process in nil
		oldValue: 	nil
	Receiver's instance variables: 
		index: 	8


BlockClosure>>ensure:
	Receiver: [ activeProcess psValueAt: index put: anObject.
aBlock value ]
	Arguments and temporary variables: 
		aBlock: 	[ activeProcess psValueAt: index put: oldValue ]
		complete: 	nil
		returnValue: 	nil
	Receiver's instance variables: 
		outerContext: 	CurrentJob(DynamicVariable)>>value:during:
		startpc: 	47
		numArgs: 	0


CurrentJob(DynamicVariable)>>value:during:
	Receiver: a CurrentJob
	Arguments and temporary variables: 
		anObject: 	a Job
		aBlock: 	[ ^ block cull: self ]
		activeProcess: 	a Process in nil
		oldValue: 	nil
	Receiver's instance variables: 
		index: 	8


CurrentJob class(DynamicVariable class)>>value:during:
	Receiver: CurrentJob
	Arguments and temporary variables: 
		anObject: 	a Job
		aBlock: 	[ ^ block cull: self ]
	Receiver's instance variables: 
		superclass: 	DynamicVariable
		methodDict: 	a MethodDictionary()
		format: 	65537
		layout: 	a FixedLayout
		instanceVariables: 	nil
		organization: 	a ClassOrganization
		subclasses: 	nil
		name: 	#CurrentJob
		classPool: 	a Dictionary()
		sharedPools: 	nil
		environment: 	a SystemDictionary(lots of globals)
		category: 	#'Jobs-Base'
		traitComposition: 	{}
		localSelectors: 	nil
		soleInstance: 	a CurrentJob


[ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
	Receiver: a Job
	Arguments and temporary variables: 

	Receiver's instance variables: 
		block: 	[ :bar | aBlock value: bar ]
		currentValue: 	1
		min: 	1
		max: 	100
		title: 	'Determining Image version'
		children: 	an OrderedCollection()
		isRunning: 	true
		parent: 	nil
		process: 	a Process in nil


BlockClosure>>ensure:
	Receiver: [ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ]
	Arguments and temporary variables: 
		aBlock: 	[ self cleanupAfterRunning ]
		complete: 	nil
		returnValue: 	nil
	Receiver's instance variables: 
		outerContext: 	Job>>run
		startpc: 	41
		numArgs: 	0


Job>>run
	Receiver: a Job
	Arguments and temporary variables: 

	Receiver's instance variables: 
		block: 	[ :bar | aBlock value: bar ]
		currentValue: 	1
		min: 	1
		max: 	100
		title: 	'Determining Image version'
		children: 	an OrderedCollection()
		isRunning: 	true
		parent: 	nil
		process: 	a Process in nil


MorphicUIManager(UIManager)>>displayProgress:from:to:during:
	Receiver: a MorphicUIManager
	Arguments and temporary variables: 
		titleString: 	''
		minVal: 	1
		maxVal: 	100
		workBlock: 	[ :bar | aBlock value: bar ]
	Receiver's instance variables: 
		interactiveParser: 	nil
		activeTranscript: 	nil


MorphicUIManager>>informUserDuring:
	Receiver: a MorphicUIManager
	Arguments and temporary variables: 
		aBlock: 	[ :bar | 
bar label: 'Determining Image version'.
vm := self availableV...etc...
	Receiver's instance variables: 
		interactiveParser: 	nil
		activeTranscript: 	nil


PhLVirtualMachineManager>>vm
	Receiver: a PhLVirtualMachineManager
	Arguments and temporary variables: 
		vm: 	nil
	Receiver's instance variables: 
		imageFile: 	File @ /Users/prof/Documents/Pharo/images
		imageFormatNumber: 	nil
		imageVersion: 	nil


[ | vmCommand |
vmCommand := (PhLVirtualMachineManager forImage: file pathString) vm.
^ PhLProcessWrapper command: (self launchCommandWith: vmCommand) ] in PhLImage>>launch
	Receiver: Image (images)
	Arguments and temporary variables: 
		vmCommand: 	nil
	Receiver's instance variables: 
		file: 	File @ /Users/prof/Documents/Pharo/images
		meta: 	nil


BlockClosure>>on:do:
	Receiver: [ | vmCommand |
vmCommand := (PhLVirtualMachineManager forImage: file pathString) vm.
^ Ph...etc...
	Arguments and temporary variables: 
		exception: 	PhLImageVersionDeterminationError
		handlerAction: 	[ :error | self imageDeterminationErrorAlert: error ]
	Receiver's instance variables: 
		outerContext: 	PhLImage>>launch
		startpc: 	57
		numArgs: 	0


PhLImage>>launch
	Receiver: Image (images)
	Arguments and temporary variables: 

	Receiver's instance variables: 
		file: 	File @ /Users/prof/Documents/Pharo/images
		meta: 	nil


PhLLaunchImageCommand>>launchImage:
	Receiver: a PhLLaunchImageCommand
	Arguments and temporary variables: 
		aPhLImage: 	Image (images)
	Receiver's instance variables: 
		context: 	a PhLCommandContext


PhLLaunchImageCommand>>launchImageFromDisk
	Receiver: a PhLLaunchImageCommand
	Arguments and temporary variables: 
		imagePath: 	'/Users/prof/Documents/Pharo/images'
	Receiver's instance variables: 
		context: 	a PhLCommandContext


PhLLaunchImageCommand>>execute
	Receiver: a PhLLaunchImageCommand
	Arguments and temporary variables: 

	Receiver's instance variables: 
		context: 	a PhLCommandContext


PhLLaunchImageCommand(PhLCommand)>>executeIfApplicable
	Receiver: a PhLLaunchImageCommand
	Arguments and temporary variables: 

	Receiver's instance variables: 
		context: 	a PhLCommandContext


PhLCommandButton>>performAction
	Receiver: a PhLCommandButton
	Arguments and temporary variables: 

	Receiver's instance variables: 
		dependents: 	a DependentsArray(a MorphicButtonAdapter)
		announceur: 	nil
		focusOrder: 	nil
		owner: 	a PhLCommandToolbar
		window: 	a NewValueHolder[ nil ]
		spec: 	a SpecWrapper
		extentHolder: 	a NewValueHolder[ nil ]
		needRebuild: 	a NewValueHolder[ true ]
		additionalKeyBindings: 	a Dictionary(Character space->[ self action ] )
		announcer: 	an Announcer
		keyStrokesForNextFocusHolder: 	a CollectionValueHolder[ an Array() ]
		keyStrokesForPreviousFocusHolder: 	a CollectionValueHolder[ an Array() ]
		windowIcon: 	a NewValueHolder[ nil ]
		aboutText: 	a NewValueHolder[ nil ]
		askOkToClose: 	a NewValueHolder[ false ]
		titleHolder: 	a CollectionValueHolder[ 'Button' ]
		helpHolder: 	a NewValueHolder[ 'Launch' ]
		borderWidth: 	a NewValueHolder[ 0 ]
		borderColor: 	a NewValueHolder[ Color transparent ]
		enabledHolder: 	a NewValueHolder[ true ]
		dragEnabled: 	a NewValueHolder[ false ]
		dropEnabled: 	a NewValueHolder[ false ]
		dragTransformationBlock: 	a NewValueHolder[ [ :item :source | item ] ]
		wantDropBlock: 	a NewValueHolder[ [ :draggedItem :event :source | self dropEnabl...etc...
		acceptDropBlock: 	a NewValueHolder[ [ :draggedItem :event :source |  ] ]
		transferBlock: 	a NewValueHolder[ [ :passenger :source | self transferFor: passe...etc...
		color: 	a NewValueHolder[ (Color r: 0.13 g: 0.13 b: 0.13 alpha: 1.0) ]
		actionHolder: 	a NewValueHolder[ [  ] ]
		labelHolder: 	a CollectionValueHolder[ '' ]
		fontHolder: 	a NewValueHolder[ nil ]
		stateHolder: 	a NewValueHolder[ false ]
		actionPerformedHolder: 	a NewValueHolder[ nil ]
		askBeforeChangingHolder: 	a NewValueHolder[ false ]
		iconHolder: 	a NewValueHolder[ Form(13x13x32) ]
		menuHolder: 	a NewValueHolder[ a MenuModel ]
		shortcutHolder: 	a NewValueHolder[ nil ]
		commandClass: 	PhLLaunchImageCommand
		contextHolder: 	a NewValueHolder[ a PhLCommandContext ]
		command: 	a PhLLaunchImageCommand


MorphicButtonAdapter>>action
	Receiver: a MorphicButtonAdapter
	Arguments and temporary variables: 

	Receiver's instance variables: 
		dependents: 	a DependentsArray(a PluggableButtonMorph(595057408))
		announceur: 	nil
		model: 	a PhLCommandButton
		widget: 	a PluggableButtonMorph(595057408)
		selector: 	nil


PluggableButtonMorph>>performAction:
	Receiver: a PluggableButtonMorph(595057408)
	Arguments and temporary variables: 
		event: 	[(846@22) mouseUp 128366 nil]
	Receiver's instance variables: 
		bounds: 	(831.0@0.0) corner: (856.0@29.0)
		owner: 	a PanelMorph(365235968)
		submorphs: 	an Array(an AlignmentMorph(569711104))
		fullBounds: 	(831@0) corner: (856@29)
		color: 	(Color r: 0.29 g: 0.28800000000000003 b: 0.28800000000000003 alpha: 1.0)...etc...
		extension: 	a MorphExtension (985686784) [balloonText]  [eventHandler = a Morphi...etc...
		borderWidth: 	1
		borderColor: 	#simple
		model: 	a MorphicButtonAdapter
		label: 	an IconicListItem(318891776)
		icon: 	nil
		getIconSelector: 	nil
		getStateSelector: 	#state
		actionSelector: 	#action
		font: 	nil
		getLabelSelector: 	#label
		getMenuSelector: 	nil
		shortcutCharacter: 	nil
		askBeforeChanging: 	false
		triggerOnMouseDown: 	false
		offColor: 	nil
		onColor: 	nil
		feedbackColor: 	nil
		showSelectionFeedback: 	false
		allButtons: 	nil
		arguments: 	#()
		argumentsProvider: 	nil
		argumentsSelector: 	nil
		gradientLook: 	false
		enabled: 	true
		actionBlock: 	nil
		getColorSelector: 	nil
		getEnabledSelector: 	#enabled
		getFontSelector: 	#font
		lastColor: 	nil
		labelMorph: 	an IconicListItem(318891776)
		iconMorph: 	nil
		iconPosition: 	#left
		lastState: 	false


[ :m | 
(m containsPoint: evt cursorPoint)
	ifTrue: [ m enabled
			ifTrue: [ m performAction: evt ] ] ] in PluggableButtonMorph>>mouseUp:
	Receiver: a PluggableButtonMorph(595057408)
	Arguments and temporary variables: 
		evt: 	[(846@22) mouseUp 128366 nil]
		all: 	an Array(a PluggableButtonMorph(501820160) a PluggableButtonMorph(92421888...etc...
		m: 	a PluggableButtonMorph(595057408)
	Receiver's instance variables: 
		bounds: 	(831.0@0.0) corner: (856.0@29.0)
		owner: 	a PanelMorph(365235968)
		submorphs: 	an Array(an AlignmentMorph(569711104))
		fullBounds: 	(831@0) corner: (856@29)
		color: 	(Color r: 0.29 g: 0.28800000000000003 b: 0.28800000000000003 alpha: 1.0)...etc...
		extension: 	a MorphExtension (985686784) [balloonText]  [eventHandler = a Morphi...etc...
		borderWidth: 	1
		borderColor: 	#simple
		model: 	a MorphicButtonAdapter
		label: 	an IconicListItem(318891776)
		icon: 	nil
		getIconSelector: 	nil
		getStateSelector: 	#state
		actionSelector: 	#action
		font: 	nil
		getLabelSelector: 	#label
		getMenuSelector: 	nil
		shortcutCharacter: 	nil
		askBeforeChanging: 	false
		triggerOnMouseDown: 	false
		offColor: 	nil
		onColor: 	nil
		feedbackColor: 	nil
		showSelectionFeedback: 	false
		allButtons: 	nil
		arguments: 	#()
		argumentsProvider: 	nil
		argumentsSelector: 	nil
		gradientLook: 	false
		enabled: 	true
		actionBlock: 	nil
		getColorSelector: 	nil
		getEnabledSelector: 	#enabled
		getFontSelector: 	#font
		lastColor: 	nil
		labelMorph: 	an IconicListItem(318891776)
		iconMorph: 	nil
		iconPosition: 	#left
		lastState: 	false


Array(SequenceableCollection)>>do:
	Receiver: an Array(a PluggableButtonMorph(501820160) a PluggableButtonMorph(924218880) a PluggableBu...etc...
	Arguments and temporary variables: 
		aBlock: 	[ :m | 
(m containsPoint: evt cursorPoint)
	ifTrue: [ m enabled
			ifTr...etc...
		index: 	5
	Receiver's instance variables: 
an Array(a PluggableButtonMorph(501820160) a PluggableButtonMorph(924218880) a PluggableBu...etc...

PluggableButtonMorph>>mouseUp:
	Receiver: a PluggableButtonMorph(595057408)
	Arguments and temporary variables: 
		evt: 	[(846@22) mouseUp 128366 nil]
		all: 	an Array(a PluggableButtonMorph(501820160) a PluggableButtonMorph(92421888...etc...
	Receiver's instance variables: 
		bounds: 	(831.0@0.0) corner: (856.0@29.0)
		owner: 	a PanelMorph(365235968)
		submorphs: 	an Array(an AlignmentMorph(569711104))
		fullBounds: 	(831@0) corner: (856@29)
		color: 	(Color r: 0.29 g: 0.28800000000000003 b: 0.28800000000000003 alpha: 1.0)...etc...
		extension: 	a MorphExtension (985686784) [balloonText]  [eventHandler = a Morphi...etc...
		borderWidth: 	1
		borderColor: 	#simple
		model: 	a MorphicButtonAdapter
		label: 	an IconicListItem(318891776)
		icon: 	nil
		getIconSelector: 	nil
		getStateSelector: 	#state
		actionSelector: 	#action
		font: 	nil
		getLabelSelector: 	#label
		getMenuSelector: 	nil
		shortcutCharacter: 	nil
		askBeforeChanging: 	false
		triggerOnMouseDown: 	false
		offColor: 	nil
		onColor: 	nil
		feedbackColor: 	nil
		showSelectionFeedback: 	false
		allButtons: 	nil
		arguments: 	#()
		argumentsProvider: 	nil
		argumentsSelector: 	nil
		gradientLook: 	false
		enabled: 	true
		actionBlock: 	nil
		getColorSelector: 	nil
		getEnabledSelector: 	#enabled
		getFontSelector: 	#font
		lastColor: 	nil
		labelMorph: 	an IconicListItem(318891776)
		iconMorph: 	nil
		iconPosition: 	#left
		lastState: 	false


PluggableButtonMorph(Morph)>>handleMouseUp:
	Receiver: a PluggableButtonMorph(595057408)
	Arguments and temporary variables: 
		anEvent: 	[(846@22) mouseUp 128366 nil]
		result: 	nil
	Receiver's instance variables: 
		bounds: 	(831.0@0.0) corner: (856.0@29.0)
		owner: 	a PanelMorph(365235968)
		submorphs: 	an Array(an AlignmentMorph(569711104))
		fullBounds: 	(831@0) corner: (856@29)
		color: 	(Color r: 0.29 g: 0.28800000000000003 b: 0.28800000000000003 alpha: 1.0)...etc...
		extension: 	a MorphExtension (985686784) [balloonText]  [eventHandler = a Morphi...etc...
		borderWidth: 	1
		borderColor: 	#simple
		model: 	a MorphicButtonAdapter
		label: 	an IconicListItem(318891776)
		icon: 	nil
		getIconSelector: 	nil
		getStateSelector: 	#state
		actionSelector: 	#action
		font: 	nil
		getLabelSelector: 	#label
		getMenuSelector: 	nil
		shortcutCharacter: 	nil
		askBeforeChanging: 	false
		triggerOnMouseDown: 	false
		offColor: 	nil
		onColor: 	nil
		feedbackColor: 	nil
		showSelectionFeedback: 	false
		allButtons: 	nil
		arguments: 	#()
		argumentsProvider: 	nil
		argumentsSelector: 	nil
		gradientLook: 	false
		enabled: 	true
		actionBlock: 	nil
		getColorSelector: 	nil
		getEnabledSelector: 	#enabled
		getFontSelector: 	#font
		lastColor: 	nil
		labelMorph: 	an IconicListItem(318891776)
		iconMorph: 	nil
		iconPosition: 	#left
		lastState: 	false



--- The full stack ---
ByteArray(Object)>>errorSubscriptBounds:
ByteArray(Object)>>at:
MultiByteFileStream(PositionableStream)>>nextLittleEndianNumber:
PhLVirtualMachineManager class>>imageFormatNumberFromStream:
[ :stream | self imageFormatNumberFromStream: stream ] in PhLVirtualMachineManager class>>imageFormatNumberFromFile:
[ aBlock value: stream ] in FileReference(AbstractFileReference)>>binaryReadStreamDo:
BlockClosure>>ensure:
FileReference(AbstractFileReference)>>binaryReadStreamDo:
PhLVirtualMachineManager class>>imageFormatNumberFromFile:
PhLVirtualMachineManager>>imageFormatNumber
PhLVirtualMachineManager>>vmFileName
[ :bar | 
bar label: 'Determining Image version'.
vm := self availableVirtualMachines
	at: self vmFileName
	ifAbsent: [ bar
			label: 'Fetching VM to run Pharo ' , self imageVersion , ' images';
			current: 25.
		self fetchVm.
		vm := self availableVirtualMachines at: self vmFileName.
		bar
			label: 'Fetching sources files for Pharo ' , self imageVersion;
			current: 50.
		self fetchSourcesFiles.
		bar
			label: 'Running the image';
			current: 100.
		vm ] ] in PhLVirtualMachineManager>>vm
[ :bar | aBlock value: bar ] in MorphicUIManager>>informUserDuring:
BlockClosure>>cull:
[ ^ block cull: self ] in [ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
[ activeProcess psValueAt: index put: anObject.
aBlock value ] in CurrentJob(DynamicVariable)>>value:during:
BlockClosure>>ensure:
CurrentJob(DynamicVariable)>>value:during:
CurrentJob class(DynamicVariable class)>>value:during:
[ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
BlockClosure>>ensure:
Job>>run
MorphicUIManager(UIManager)>>displayProgress:from:to:during:
MorphicUIManager>>informUserDuring:
PhLVirtualMachineManager>>vm
[ | vmCommand |
vmCommand := (PhLVirtualMachineManager forImage: file pathString) vm.
^ PhLProcessWrapper command: (self launchCommandWith: vmCommand) ] in PhLImage>>launch
BlockClosure>>on:do:
PhLImage>>launch
PhLLaunchImageCommand>>launchImage:
PhLLaunchImageCommand>>launchImageFromDisk
PhLLaunchImageCommand>>execute
PhLLaunchImageCommand(PhLCommand)>>executeIfApplicable
PhLCommandButton>>performAction
MorphicButtonAdapter>>action
PluggableButtonMorph>>performAction:
[ :m | 
(m containsPoint: evt cursorPoint)
	ifTrue: [ m enabled
			ifTrue: [ m performAction: evt ] ] ] in PluggableButtonMorph>>mouseUp:
Array(SequenceableCollection)>>do:
PluggableButtonMorph>>mouseUp:
PluggableButtonMorph(Morph)>>handleMouseUp:
 - - - - - - - - - - - - - - -  
			- - - - - - - - - - - - - - - - - -
MouseButtonEvent>>sentTo:
PluggableButtonMorph(Morph)>>handleEvent:
PluggableButtonMorph(Morph)>>handleFocusEvent:
[ ActiveHand := self.
ActiveEvent := anEvent.
result := focusHolder
	handleFocusEvent: (anEvent transformedBy: (focusHolder transformedFrom: self)) ] in HandMorph>>sendFocusEvent:to:clear:
BlockClosure>>on:do:
WorldMorph(PasteUpMorph)>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
HandMorph>>processEventsFromQueue:
HandMorph>>processEvents
[ :h | 
self activeHand: h.
h processEvents.
self activeHand: nil ] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
WorldMorph>>doOneCycle
WorldMorph class>>doOneCycle
[ [ WorldMorph doOneCycle.
Processor yield.
false ] whileFalse: [  ] ] in MorphicUIManager>>spawnNewProcess
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------

Reply via email to