Status: Accepted Owner: da...@teleport.com Labels: Type-ReportDefect Milestone-1.2 New issue 3763 by da...@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: