[Pharo-project] Issue 3763 in pharo: assert failure during Decompiler>>popIntoTemporaryVariable:

pharo at googlecode.com pharo at googlecode.com
Sat Feb 26 18:11:01 CET 2011


Status: Accepted
Owner: da... at teleport.com
Labels: Type-ReportDefect Milestone-1.2

New issue 3763 by da... at teleport.com: assert failure during  
Decompiler>>popIntoTemporaryVariable:
http://code.google.com/p/pharo/issues/detail?id=3763

If you fill an issue for the first time, please read "How to report bugs"
at http://www.pharo-project.org/community/issue-tracking

Pharo image: dev
Pharo core version: Pharo1.2rc2Latest update: #12338
Virtual machine used: Squeak 4.2.5beta1U (Mac)

-----------------------
using a fresh image load MetacelloBrowser:

Gofer new
	squeaksource: 'MetacelloBrowser';
	package: 'ConfigurationOfMetacelloBrowser';
	load.
((Smalltalk at: #ConfigurationOfMetacelloBrowser) project version:  
#development) load.

Create a directory repository and save a new version of  
ConfigurationOfPharoSound into the directory repository....save a copy of  
the image.

Then open the MetacelloBrowser:

   MetacelloBrowser open

You will get a cascade of Assert debuggers ... not sure what is actually  
triggering the problem since the debugger is failing to open. Here's the  
stack from the debug log:

THERE_BE_DRAGONS_HERE
AssertionFailure: Assertion failed
26 February 2011 8:52:51 am

VM: Mac OS - intel - 1066 - Squeak4.1 of 17 April 2010 [latest update:  
#9957] Squeak VM 4.2.5b1
Image: Pharo1.2rc2 [Latest update: #12338]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /Users/dhenrich/Pharo/Pharo-1.2
Trusted Dir /foobar/tooBar/forSqueak/bogus
Untrusted Dir /Users/dhenrich/Library/Preferences/Squeak/Internet/My Squeak

BlockClosure>>assert
	Receiver: [(tempVector := tempVars
					at: offset + 1
					ifAbsent: [ParseNode basicNew]) isTemp
	...etc...
	Arguments and temporary variables:

	Receiver's instance variables:
		outerContext: 	Decompiler>>popIntoTemporaryVariable:
		startpc: 	137
		numArgs: 	0


Decompiler>>popIntoTemporaryVariable:
	Receiver: a Decompiler
	Arguments and temporary variables:
		offset: 	6
		maybeTVTag: 	#pushNewArray->#(nil)
		start: 	nil
		i: 	nil
		iLimiT: 	nil
		tempVector: 	an Array({a ParseNode})
	Receiver's instance variables:
		sender: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod...etc...
		pc: 	82
		constructor: 	{a DecompilerConstructorForClosures}
		method: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod...etc...
		instVars: 	#(nil nil nil nil nil nil nil nil nil nil nil)
		tempVars: 	an Array({required} {packageMap} {reqd} {allReqd} {map} {_r6})
		constTable: 	an Array({self} {true} {false} {nil} {-1} {0} {1} {2})
		stack: 	an OrderedCollection(#pushNewArray->#(nil))
		statements: 	an OrderedCollection({reqd := required copy} {allReqd := Set  
new} {...etc...
		lastPc: 	81
		exit: 	nil
		caseExits: 	an OrderedCollection()
		lastJumpPc: 	nil
		lastReturnPc: 	nil
		limit: 	140
		hasValue: 	nil
		blockStackBase: 	0
		numLocalTemps: 	0
		blockStartsToTempVars: 	a Dictionary(65->an Array({required} {packageMap}  
{reqd}...etc...
		tempVarCount: 	7


Decompiler(InstructionStream)>>interpretNextInstructionFor:
	Receiver: a Decompiler
	Arguments and temporary variables:
		client: 	a Decompiler
		byte: 	110
		type: 	6
		offset: 	14
		method: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod...etc...
	Receiver's instance variables:
		sender: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod...etc...
		pc: 	82
		constructor: 	{a DecompilerConstructorForClosures}
		method: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod...etc...
		instVars: 	#(nil nil nil nil nil nil nil nil nil nil nil)
		tempVars: 	an Array({required} {packageMap} {reqd} {allReqd} {map} {_r6})
		constTable: 	an Array({self} {true} {false} {nil} {-1} {0} {1} {2})
		stack: 	an OrderedCollection(#pushNewArray->#(nil))
		statements: 	an OrderedCollection({reqd := required copy} {allReqd := Set  
new} {...etc...
		lastPc: 	81
		exit: 	nil
		caseExits: 	an OrderedCollection()
		lastJumpPc: 	nil
		lastReturnPc: 	nil
		limit: 	140
		hasValue: 	nil
		blockStackBase: 	0
		numLocalTemps: 	0
		blockStartsToTempVars: 	a Dictionary(65->an Array({required} {packageMap}  
{reqd}...etc...
		tempVarCount: 	7


Decompiler>>interpretNextInstructionFor:
	Receiver: a Decompiler
	Arguments and temporary variables:
		client: 	a Decompiler
		code: 	nil
		varNames: 	nil
		i: 	nil
		iLimiT: 	nil
	Receiver's instance variables:
		sender: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod...etc...
		pc: 	82
		constructor: 	{a DecompilerConstructorForClosures}
		method: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod...etc...
		instVars: 	#(nil nil nil nil nil nil nil nil nil nil nil)
		tempVars: 	an Array({required} {packageMap} {reqd} {allReqd} {map} {_r6})
		constTable: 	an Array({self} {true} {false} {nil} {-1} {0} {1} {2})
		stack: 	an OrderedCollection(#pushNewArray->#(nil))
		statements: 	an OrderedCollection({reqd := required copy} {allReqd := Set  
new} {...etc...
		lastPc: 	81
		exit: 	nil
		caseExits: 	an OrderedCollection()
		lastJumpPc: 	nil
		lastReturnPc: 	nil
		limit: 	140
		hasValue: 	nil
		blockStackBase: 	0
		numLocalTemps: 	0
		blockStartsToTempVars: 	a Dictionary(65->an Array({required} {packageMap}  
{reqd}...etc...
		tempVarCount: 	7


Decompiler>>statementsTo:
	Receiver: a Decompiler
	Arguments and temporary variables:
		end: 	140
		blockPos: 	3
		stackPos: 	0
		t: 	nil
	Receiver's instance variables:
		sender: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod...etc...
		pc: 	82
		constructor: 	{a DecompilerConstructorForClosures}
		method: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod...etc...
		instVars: 	#(nil nil nil nil nil nil nil nil nil nil nil)
		tempVars: 	an Array({required} {packageMap} {reqd} {allReqd} {map} {_r6})
		constTable: 	an Array({self} {true} {false} {nil} {-1} {0} {1} {2})
		stack: 	an OrderedCollection(#pushNewArray->#(nil))
		statements: 	an OrderedCollection({reqd := required copy} {allReqd := Set  
new} {...etc...
		lastPc: 	81
		exit: 	nil
		caseExits: 	an OrderedCollection()
		lastJumpPc: 	nil
		lastReturnPc: 	nil
		limit: 	140
		hasValue: 	nil
		blockStackBase: 	0
		numLocalTemps: 	0
		blockStartsToTempVars: 	a Dictionary(65->an Array({required} {packageMap}  
{reqd}...etc...
		tempVarCount: 	7


Decompiler>>blockTo:
	Receiver: a Decompiler
	Arguments and temporary variables:
		end: 	140
		exprs: 	nil
		block: 	nil
		oldBase: 	0
	Receiver's instance variables:
		sender: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod...etc...
		pc: 	82
		constructor: 	{a DecompilerConstructorForClosures}
		method: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod...etc...
		instVars: 	#(nil nil nil nil nil nil nil nil nil nil nil)
		tempVars: 	an Array({required} {packageMap} {reqd} {allReqd} {map} {_r6})
		constTable: 	an Array({self} {true} {false} {nil} {-1} {0} {1} {2})
		stack: 	an OrderedCollection(#pushNewArray->#(nil))
		statements: 	an OrderedCollection({reqd := required copy} {allReqd := Set  
new} {...etc...
		lastPc: 	81
		exit: 	nil
		caseExits: 	an OrderedCollection()
		lastJumpPc: 	nil
		lastReturnPc: 	nil
		limit: 	140
		hasValue: 	nil
		blockStackBase: 	0
		numLocalTemps: 	0
		blockStartsToTempVars: 	a Dictionary(65->an Array({required} {packageMap}  
{reqd}...etc...
		tempVarCount: 	7


Decompiler>>jump:if:
	Receiver: a Decompiler
	Arguments and temporary variables:
		dist: 	61
		condition: 	true
		savePc: 	79
		sign: 	true
		elsePc: 	77
		elseStart: 	140
		end: 	172
		cond: 	nil
		ifExpr: 	{reqd isEmpty}
		thenBlock: 	nil
		elseBlock: 	nil
		thenJump: 	nil
		elseJump: 	nil
		condHasValue: 	nil
		isIfNil: 	false
		saveStack: 	an OrderedCollection()
		blockBody: 	nil
		elseDist: 	nil
	Receiver's instance variables:
		sender: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod...etc...
		pc: 	82
		constructor: 	{a DecompilerConstructorForClosures}
		method: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod...etc...
		instVars: 	#(nil nil nil nil nil nil nil nil nil nil nil)
		tempVars: 	an Array({required} {packageMap} {reqd} {allReqd} {map} {_r6})
		constTable: 	an Array({self} {true} {false} {nil} {-1} {0} {1} {2})
		stack: 	an OrderedCollection(#pushNewArray->#(nil))
		statements: 	an OrderedCollection({reqd := required copy} {allReqd := Set  
new} {...etc...
		lastPc: 	81
		exit: 	nil
		caseExits: 	an OrderedCollection()
		lastJumpPc: 	nil
		lastReturnPc: 	nil
		limit: 	140
		hasValue: 	nil
		blockStackBase: 	0
		numLocalTemps: 	0
		blockStartsToTempVars: 	a Dictionary(65->an Array({required} {packageMap}  
{reqd}...etc...
		tempVarCount: 	7


Decompiler(InstructionStream)>>interpretNextInstructionFor:
	Receiver: a Decompiler
	Arguments and temporary variables:
		client: 	a Decompiler
		byte: 	61
		type: 	10
		offset: 	8
		method: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod...etc...
	Receiver's instance variables:
		sender: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod...etc...
		pc: 	82
		constructor: 	{a DecompilerConstructorForClosures}
		method: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod...etc...
		instVars: 	#(nil nil nil nil nil nil nil nil nil nil nil)
		tempVars: 	an Array({required} {packageMap} {reqd} {allReqd} {map} {_r6})
		constTable: 	an Array({self} {true} {false} {nil} {-1} {0} {1} {2})
		stack: 	an OrderedCollection(#pushNewArray->#(nil))
		statements: 	an OrderedCollection({reqd := required copy} {allReqd := Set  
new} {...etc...
		lastPc: 	81
		exit: 	nil
		caseExits: 	an OrderedCollection()
		lastJumpPc: 	nil
		lastReturnPc: 	nil
		limit: 	140
		hasValue: 	nil
		blockStackBase: 	0
		numLocalTemps: 	0
		blockStartsToTempVars: 	a Dictionary(65->an Array({required} {packageMap}  
{reqd}...etc...
		tempVarCount: 	7


Decompiler>>interpretNextInstructionFor:
	Receiver: a Decompiler
	Arguments and temporary variables:
		client: 	a Decompiler
		code: 	nil
		varNames: 	nil
		i: 	nil
		iLimiT: 	nil
	Receiver's instance variables:
		sender: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod...etc...
		pc: 	82
		constructor: 	{a DecompilerConstructorForClosures}
		method: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod...etc...
		instVars: 	#(nil nil nil nil nil nil nil nil nil nil nil)
		tempVars: 	an Array({required} {packageMap} {reqd} {allReqd} {map} {_r6})
		constTable: 	an Array({self} {true} {false} {nil} {-1} {0} {1} {2})
		stack: 	an OrderedCollection(#pushNewArray->#(nil))
		statements: 	an OrderedCollection({reqd := required copy} {allReqd := Set  
new} {...etc...
		lastPc: 	81
		exit: 	nil
		caseExits: 	an OrderedCollection()
		lastJumpPc: 	nil
		lastReturnPc: 	nil
		limit: 	140
		hasValue: 	nil
		blockStackBase: 	0
		numLocalTemps: 	0
		blockStartsToTempVars: 	a Dictionary(65->an Array({required} {packageMap}  
{reqd}...etc...
		tempVarCount: 	7


Decompiler>>statementsTo:
	Receiver: a Decompiler
	Arguments and temporary variables:
		end: 	172
		blockPos: 	0
		stackPos: 	0
		t: 	nil
	Receiver's instance variables:
		sender: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod...etc...
		pc: 	82
		constructor: 	{a DecompilerConstructorForClosures}
		method: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod...etc...
		instVars: 	#(nil nil nil nil nil nil nil nil nil nil nil)
		tempVars: 	an Array({required} {packageMap} {reqd} {allReqd} {map} {_r6})
		constTable: 	an Array({self} {true} {false} {nil} {-1} {0} {1} {2})
		stack: 	an OrderedCollection(#pushNewArray->#(nil))
		statements: 	an OrderedCollection({reqd := required copy} {allReqd := Set  
new} {...etc...
		lastPc: 	81
		exit: 	nil
		caseExits: 	an OrderedCollection()
		lastJumpPc: 	nil
		lastReturnPc: 	nil
		limit: 	140
		hasValue: 	nil
		blockStackBase: 	0
		numLocalTemps: 	0
		blockStartsToTempVars: 	a Dictionary(65->an Array({required} {packageMap}  
{reqd}...etc...
		tempVarCount: 	7


Decompiler>>blockTo:
	Receiver: a Decompiler
	Arguments and temporary variables:
		end: 	172
		exprs: 	nil
		block: 	nil
		oldBase: 	nil
	Receiver's instance variables:
		sender: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod...etc...
		pc: 	82
		constructor: 	{a DecompilerConstructorForClosures}
		method: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod...etc...
		instVars: 	#(nil nil nil nil nil nil nil nil nil nil nil)
		tempVars: 	an Array({required} {packageMap} {reqd} {allReqd} {map} {_r6})
		constTable: 	an Array({self} {true} {false} {nil} {-1} {0} {1} {2})
		stack: 	an OrderedCollection(#pushNewArray->#(nil))
		statements: 	an OrderedCollection({reqd := required copy} {allReqd := Set  
new} {...etc...
		lastPc: 	81
		exit: 	nil
		caseExits: 	an OrderedCollection()
		lastJumpPc: 	nil
		lastReturnPc: 	nil
		limit: 	140
		hasValue: 	nil
		blockStackBase: 	0
		numLocalTemps: 	0
		blockStartsToTempVars: 	a Dictionary(65->an Array({required} {packageMap}  
{reqd}...etc...
		tempVarCount: 	7


Decompiler>>decompile:in:method:using:
	Receiver: a Decompiler
	Arguments and temporary variables:
		aSelector: 	#resolveToLoadableSpecs:map:
		aClass: 	MetacelloMCVersionSpec
		aMethod: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMetho...etc...
		aConstructor: 	{a DecompilerConstructorForClosures}
		block: 	nil
		node: 	nil
	Receiver's instance variables:
		sender: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod...etc...
		pc: 	82
		constructor: 	{a DecompilerConstructorForClosures}
		method: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod...etc...
		instVars: 	#(nil nil nil nil nil nil nil nil nil nil nil)
		tempVars: 	an Array({required} {packageMap} {reqd} {allReqd} {map} {_r6})
		constTable: 	an Array({self} {true} {false} {nil} {-1} {0} {1} {2})
		stack: 	an OrderedCollection(#pushNewArray->#(nil))
		statements: 	an OrderedCollection({reqd := required copy} {allReqd := Set  
new} {...etc...
		lastPc: 	81
		exit: 	nil
		caseExits: 	an OrderedCollection()
		lastJumpPc: 	nil
		lastReturnPc: 	nil
		limit: 	140
		hasValue: 	nil
		blockStackBase: 	0
		numLocalTemps: 	0
		blockStartsToTempVars: 	a Dictionary(65->an Array({required} {packageMap}  
{reqd}...etc...
		tempVarCount: 	7


Decompiler>>decompile:in:method:
	Receiver: a Decompiler
	Arguments and temporary variables:
		aSelector: 	#resolveToLoadableSpecs:map:
		aClass: 	MetacelloMCVersionSpec
		aMethod: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMetho...etc...
	Receiver's instance variables:
		sender: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod...etc...
		pc: 	82
		constructor: 	{a DecompilerConstructorForClosures}
		method: 	(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod...etc...
		instVars: 	#(nil nil nil nil nil nil nil nil nil nil nil)
		tempVars: 	an Array({required} {packageMap} {reqd} {allReqd} {map} {_r6})
		constTable: 	an Array({self} {true} {false} {nil} {-1} {0} {1} {2})
		stack: 	an OrderedCollection(#pushNewArray->#(nil))
		statements: 	an OrderedCollection({reqd := required copy} {allReqd := Set  
new} {...etc...
		lastPc: 	81
		exit: 	nil
		caseExits: 	an OrderedCollection()
		lastJumpPc: 	nil
		lastReturnPc: 	nil
		limit: 	140
		hasValue: 	nil
		blockStackBase: 	0
		numLocalTemps: 	0
		blockStartsToTempVars: 	a Dictionary(65->an Array({required} {packageMap}  
{reqd}...etc...
		tempVarCount: 	7


CompiledMethod>>decompileWithTemps
	Receiver: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod(236716032)")
	Arguments and temporary variables:
		class: 	MetacelloMCVersionSpec
		selector: 	#resolveToLoadableSpecs:map:
	Receiver's instance variables:
(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a  
CompiledMethod(236716032)")

Decompiler>>decompileBlock:
	Receiver: a Decompiler
	Arguments and temporary variables:





More information about the Pharo-project mailing list