[squeak-dev] MNU: Parser >> #contents

Frank Shearar frank.shearar at gmail.com
Wed Sep 25 10:12:53 UTC 2013


I'm running with Compiler-nice.274.

What's weirder is in that top stack frame (Compiler >>
#evaluate:in:to:notifying:ifFailed:logged: the following all show up
as red, because they're references to instvars that don't exist:
class, sourceStream, context, requestor.

That's because the CompiledMethod that's running is not actually the
right CompiledMethod! It's from some ancient pre-CompilationCue
Compiler instance. Or at least so I suspect because that Compiler
instance has a nil 'cue' instvar.

If it helps, the PointerFinder says this of the offending context:

globals: Environment
declarations: IdentityDictionary
#World -> PasteUpMorph
submorphs: Array
1: SystemWindow
model: ObjectExplorer
currentSelection: ObjectExplorerWrapper
item: CompiledMethod

In contrast, PointerFinder on: (Compiler >>
#evaluate:in:to:notifying:ifFail:logged:) says:

CLASS: SmalltalkImage class
superclass: Object class
subclasses: Array
445: Compiler class
methodDict: MethodDictionary
array: Array
39: CompiledMethod.

Here's the stack trace:

25 September 2013 11:02:59.952 am

VM: unix - Smalltalk
Image: Squeak4.5 [latest update: #13159]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /home/frank/Documents/squeak-ci/target
Trusted Dir /home/frank/Documents/squeak-ci/target/secure
Untrusted Dir /home/frank/Documents/squeak-ci/target/My Squeak

Parser(Object)>>doesNotUnderstand: #contents
Receiver: a Parser
Arguments and temporary variables:
aMessage: contents
exception: MessageNotUnderstood: Parser>>contents
resumeValue: nil
Receiver's instance variables:
source: a ReadStream
mark: 3360
hereChar: $􏿿
aheadChar: $􏿿
token: #'􏿿'
tokenType: #doIt
currentComment: nil
buffer: a WriteStream
typeTable: #(#xBinary #xBinary #xBinary #xBinary #xBinary #xBinary
#xBinary #xB...etc...
here: #'􏿿'
hereType: #doIt
hereMark: 3360
hereEnd: 3359
prevMark: 3358
prevEnd: 3358
encoder: {an EncoderForV3PlusClosures}
parseNode: {[^ [| config manifest |
(FileDirectory default / '..' readOnlyFile...etc...
failBlock: [closure] in Compiler>>translate:noPattern:ifFail:
requestorOffset: 0
tempsMark: 1
doitFlag: true
properties: an AdditionalMethodState (1229)
queriedUnusedTemporaries: nil
cue: nil

Compiler>>evaluate:in:to:notifying:ifFail:logged:
Receiver: a Compiler
Arguments and temporary variables:
textOrStream: '[| config manifest |
((FileDirectory default / ''..'') readOnlyF...etc...
aContext: nil
receiver: nil
aRequestor: nil
failBlock: [closure] in Compiler class>>evaluate:for:notifying:logged:
logFlag: true
methodNode: DoIt
^ [| config manifest |
(FileDirectory default / '..' readOnl...etc...
method: (UndefinedObject>>#DoIt "a CompiledMethod(959)")
value: WorldState
toLog: nil
itsSelection: nil
itsSelectionString: nil
Receiver's instance variables:
parser: a Parser
cue: nil

Compiler class>>evaluate:for:notifying:logged:
Receiver: Compiler
Arguments and temporary variables:
textOrString: '[| config manifest |
((FileDirectory default / ''..'') readOnlyF...etc...
anObject: nil
aController: nil
logFlag: true
Receiver's instance variables:
superclass: Object
methodDict: a MethodDictionary(#compile:ifFail:->(Compiler>>#compile:ifFail:
"a...etc...
format: 134
instanceVariables: #('parser' 'cue')
organization: ('public access' compile:ifFail:
compile:in:notifying:ifFail: com...etc...
subclasses: nil
name: #Compiler
classPool: a Dictionary()
sharedPools: nil
environment: Smalltalk
category: #'Compiler-Kernel'

Compiler class>>evaluate:for:logged:
Receiver: Compiler
Arguments and temporary variables:
textOrString: '[| config manifest |
((FileDirectory default / ''..'') readOnlyF...etc...
anObject: nil
logFlag: true
Receiver's instance variables:
superclass: Object
methodDict: a MethodDictionary(#compile:ifFail:->(Compiler>>#compile:ifFail:
"a...etc...
format: 134
instanceVariables: #('parser' 'cue')
organization: ('public access' compile:ifFail:
compile:in:notifying:ifFail: com...etc...
subclasses: nil
name: #Compiler
classPool: a Dictionary()
sharedPools: nil
environment: Smalltalk
category: #'Compiler-Kernel'

Compiler class>>evaluate:logged:
Receiver: Compiler
Arguments and temporary variables:
textOrString: '[| config manifest |
((FileDirectory default / ''..'') readOnlyF...etc...
logFlag: true
Receiver's instance variables:
superclass: Object
methodDict: a MethodDictionary(#compile:ifFail:->(Compiler>>#compile:ifFail:
"a...etc...
format: 134
instanceVariables: #('parser' 'cue')
organization: ('public access' compile:ifFail:
compile:in:notifying:ifFail: com...etc...
subclasses: nil
name: #Compiler
classPool: a Dictionary()
sharedPools: nil
environment: Smalltalk
category: #'Compiler-Kernel'

[] in [] in RWBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
Receiver: a RWBinaryOrTextStream
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
collection: '[| config manifest |
((FileDirectory default / ''..'') readOnlyFil...etc...
position: 3359
readLimit: 3359
writeLimit: 3359
isBinary: false

BlockClosure>>on:do:
Receiver: [closure] in [] in
RWBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
Arguments and temporary variables:
exception: InMidstOfFileinNotification
handlerAction: [closure] in [] in
RWBinaryOrTextStream(PositionableStream)>>fil...etc...
handlerActive: true
Receiver's instance variables:
outerContext: [] in
RWBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:...etc...
startpc: 146
numArgs: 0

[] in RWBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
Receiver: a RWBinaryOrTextStream
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
collection: '[| config manifest |
((FileDirectory default / ''..'') readOnlyFil...etc...
position: 3359
readLimit: 3359
writeLimit: 3359
isBinary: false

[] in [] in MorphicUIManager>>displayProgress:at:from:to:during:
Receiver: a MorphicUIManager
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
toolBuilder: nil

BlockClosure>>on:do:
Receiver: [closure] in [] in
MorphicUIManager>>displayProgress:at:from:to:during:
Arguments and temporary variables:
exception: ProgressNotification
handlerAction: [closure] in [] in
MorphicUIManager>>displayProgress:at:from:to:...etc...
handlerActive: true
Receiver's instance variables:
outerContext: [] in MorphicUIManager>>displayProgress:at:from:to:during:
startpc: 86
numArgs: 0

[] in MorphicUIManager>>displayProgress:at:from:to:during:
Receiver: a MorphicUIManager
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
toolBuilder: nil

BlockClosure>>ensure:
Receiver: [closure] in MorphicUIManager>>displayProgress:at:from:to:during:
Arguments and temporary variables:
aBlock: [closure] in MorphicUIManager>>displayProgress:at:from:to:during:
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: MorphicUIManager>>displayProgress:at:from:to:during:
startpc: 79
numArgs: 0

MorphicUIManager>>displayProgress:at:from:to:during:
Receiver: a MorphicUIManager
Arguments and temporary variables:
titleString: 'Reading a stream'
aPoint: 400 at 300
minVal: 0
maxVal: 3359
workBlock: [closure] in
RWBinaryOrTextStream(PositionableStream)>>fileInAnnounc...etc...
progress: [closure] in SystemProgressMorph>>position:label:min:max:
result: #(nil)
Receiver's instance variables:
toolBuilder: nil

ProgressInitiationException>>defaultResumeValue
Receiver: ProgressInitiationException:
Arguments and temporary variables:

Receiver's instance variables:
messageText: nil
tag: nil
signalContext: ProgressInitiationException(Exception)>>signal
handlerContext: nil
outerContext: nil
workBlock: [closure] in
RWBinaryOrTextStream(PositionableStream)>>fileInAnnounc...etc...
maxVal: 3359
minVal: 0
aPoint: 400 at 300
progressTitle: 'Reading a stream'

ProgressInitiationException(Exception)>>resume
Receiver: ProgressInitiationException:
Arguments and temporary variables:

Receiver's instance variables:
messageText: nil
tag: nil
signalContext: ProgressInitiationException(Exception)>>signal
handlerContext: nil
outerContext: nil
workBlock: [closure] in
RWBinaryOrTextStream(PositionableStream)>>fileInAnnounc...etc...
maxVal: 3359
minVal: 0
aPoint: 400 at 300
progressTitle: 'Reading a stream'

ProgressInitiationException>>defaultAction
Receiver: ProgressInitiationException:
Arguments and temporary variables:

Receiver's instance variables:
messageText: nil
tag: nil
signalContext: ProgressInitiationException(Exception)>>signal
handlerContext: nil
outerContext: nil
workBlock: [closure] in
RWBinaryOrTextStream(PositionableStream)>>fileInAnnounc...etc...
maxVal: 3359
minVal: 0
aPoint: 400 at 300
progressTitle: 'Reading a stream'

UndefinedObject>>handleSignal:
Receiver: nil
Arguments and temporary variables:
exception: ProgressInitiationException:
Receiver's instance variables:
nil

ProgressInitiationException(Exception)>>signal
Receiver: ProgressInitiationException:
Arguments and temporary variables:

Receiver's instance variables:
messageText: nil
tag: nil
signalContext: ProgressInitiationException(Exception)>>signal
handlerContext: nil
outerContext: nil
workBlock: [closure] in
RWBinaryOrTextStream(PositionableStream)>>fileInAnnounc...etc...
maxVal: 3359
minVal: 0
aPoint: 400 at 300
progressTitle: 'Reading a stream'

ProgressInitiationException>>display:at:from:to:during:
Receiver: ProgressInitiationException:
Arguments and temporary variables:
argString: 'Reading a stream'
argPoint: 400 at 300
argMinVal: 0
argMaxVal: 3359
argWorkBlock: [closure] in
RWBinaryOrTextStream(PositionableStream)>>fileInAnno...etc...
Receiver's instance variables:
messageText: nil
tag: nil
signalContext: ProgressInitiationException(Exception)>>signal
handlerContext: nil
outerContext: nil
workBlock: [closure] in
RWBinaryOrTextStream(PositionableStream)>>fileInAnnounc...etc...
maxVal: 3359
minVal: 0
aPoint: 400 at 300
progressTitle: 'Reading a stream'


--- The full stack ---
Parser(Object)>>doesNotUnderstand: #contents
Compiler>>evaluate:in:to:notifying:ifFail:logged:
Compiler class>>evaluate:for:notifying:logged:
Compiler class>>evaluate:for:logged:
Compiler class>>evaluate:logged:
[] in [] in RWBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
BlockClosure>>on:do:
[] in RWBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
[] in [] in MorphicUIManager>>displayProgress:at:from:to:during:
BlockClosure>>on:do:
[] in MorphicUIManager>>displayProgress:at:from:to:during:
BlockClosure>>ensure:
MorphicUIManager>>displayProgress:at:from:to:during:
ProgressInitiationException>>defaultResumeValue
ProgressInitiationException(Exception)>>resume
ProgressInitiationException>>defaultAction
UndefinedObject>>handleSignal:
ProgressInitiationException(Exception)>>signal
ProgressInitiationException>>display:at:from:to:during:
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ProgressInitiationException class>>display:at:from:to:during:
ByteString(String)>>displayProgressAt:from:to:during:
ByteString(String)>>displayProgressFrom:to:during:
RWBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
RWBinaryOrTextStream(PositionableStream)>>fileIn
CodeLoader>>installSourceFile:
[] in CodeLoader>>installSourceFiles
Array(SequenceableCollection)>>do:
CodeLoader>>installSourceFiles
ProjectLauncher>>startUpAfterLogin
ProjectLauncher>>startUp
[] in [] in [] in AutoStart class>>startUp:
WorldState>>runStepMethodsIn:
PasteUpMorph>>runStepMethods
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in Project class>>spawnNewProcess
[] in BlockClosure>>newProcess


More information about the Squeak-dev mailing list