[BUG]ByteSymbol(Object)>>doesNotUnderstand: #key
alangrimes at starpower.net
alangrimes at starpower.net
Thu Jun 2 19:02:13 UTC 2005
here insert explanation of what you were doing, suspect changes you've
made and so forth.
[lets see if I can do this right this time...
Okay, I think I got it to work but this "Mister Postman" application
still has HORRIBLE, usibility deficits.. It relies on the user's
clarvoyance in knowing to hit "alt-S" to make it do what every other
mail application in the known universe does automaticly...
]
I was attempting to generate a 3.8 VM on a squeaky 3.8 image,
I did my normal routine of heaping on all of the plugins as internal, --
I don't trust ld.so at all and think that its authors are among the most
evil people ever to sit down at a keyboard...
I was supprised to get a debug box during this excercise...
I think what's going on is that a receient refactoring of Symbol broke
the first line of MessageNode>> asTranslatorNode...
The missing symbol #key is, I beleive, a "red herring" because the CPU
should have taken the ifTrue path... I think the code "isMemberOf:"
should be replaced with something like "isMemberOrSubclassOf:"... But I
don't know if that method exists or what its name is...
2 June 2004 2:51:37 pm
VM: unix - a SmalltalkImage
Image: Squeak3.8 [latest update: #6665]
SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /home/atg/source/trunk/test
Trusted Dir /home/atg/source/trunk/test/secure
Untrusted Dir /home/atg/source/trunk/test/untrusted
ByteSymbol(Object)>>doesNotUnderstand: #key
Receiver: #ifTrue:ifFalse:
Arguments and temporary variables:
aMessage: key
Receiver's instance variables:
#ifTrue:ifFalse:
MessageNode>>asTranslatorNode
Receiver: {self hasEdgeTransform
ifTrue: [self transformPoint: point into: point]
ifFalse: [point ...etc...
Arguments and temporary variables:
sel: nil
args: nil
i: nil
Receiver's instance variables:
comment: nil
pc: nil
receiver: {self hasEdgeTransform}
selector: #ifTrue:ifFalse:
precedence: 3
special: 4
arguments: an OrderedCollection({[self transformPoint: point into:
point]} {[po...etc...
sizes: #(nil nil)
equalNode: nil
caseErrorNode: nil
[] in BlockNode>>asTranslatorNode {[:s | newS := s asTranslatorNode.
newS isStmtList ifTrue: [statementList...]}
Arguments and temporary variables:
statementList: an OrderedCollection(self var: #point declareC: 'int
*point')
newS: self var: #point declareC: 'int *point'
s: {self hasEdgeTransform
ifTrue: [self transformPoint: point into: point]
if...etc...
arg: nil
OrderedCollection>>do:
Receiver: an OrderedCollection({self var: #point declareC: 'int
*point'} {self hasEdgeTransform
ifT...etc...
Arguments and temporary variables:
aBlock: [] in BlockNode>>asTranslatorNode {[:s | newS := s
asTranslatorNode. ...etc...
index: 4
Receiver's instance variables:
array: #(nil nil {self var: #point declareC: 'int *point'} {self
hasEdgeTransfo...etc...
firstIndex: 3
lastIndex: 5
--- The full stack ---
ByteSymbol(Object)>>doesNotUnderstand: #key
MessageNode>>asTranslatorNode
[] in BlockNode>>asTranslatorNode {[:s | newS := s asTranslatorNode.
newS isStmtList ifTrue: [statementList...]}
OrderedCollection>>do:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
BlockNode>>asTranslatorNode
TMethod>>setSelector:args:locals:block:primitive:
MethodNode>>asTranslationMethodOfClass:
[] in VMPluginCodeGenerator(CCodeGenerator)>>addClass: {[:sel :i | bar
value: i. source := aClass sourceCodeAt: sel. self addMe...]}
[] in Set>>doWithIndex: {[:item | aBlock2 value: item value: (index :=
index + 1)]}
Set>>do:
Set>>doWithIndex:
[] in VMPluginCodeGenerator(CCodeGenerator)>>addClass: {[:bar | aClass
selectors doWithIndex: [:sel :i | bar value: i. sour...]}
[] in ProgressInitiationException>>defaultMorphicAction {[result :=
workBlock value: progress]}
BlockContext>>ensure:
ProgressInitiationException>>defaultMorphicAction
ProgressInitiationException>>defaultAction
UndefinedObject>>handleSignal:
MethodContext(ContextPart)>>handleSignal:
MethodContext(ContextPart)>>handleSignal:
ProgressInitiationException(Exception)>>signal
ProgressInitiationException>>display:at:from:to:during:
ProgressInitiationException class>>display:at:from:to:during:
ByteString(String)>>displayProgressAt:from:to:during:
VMPluginCodeGenerator(CCodeGenerator)>>addClass:
BalloonEnginePlugin class(InterpreterPlugin
class)>>buildCodeGeneratorUpTo:
BalloonEnginePlugin class(InterpreterPlugin
class)>>translateInDirectory:doInlining:
UnixVMMaker(VMMaker)>>privateGenerateInternalPlugin:
[] in UnixVMMaker(VMMaker)>>generateInternalPlugins {[:plugin | self
privateGenerateInternalPlugin: plugin]}
[] in UnixVMMaker(VMMaker)>>plugins:do: {[:sym | (Smalltalk
hasClassNamed: sym) ifTrue: [aBlock value: (Smallta...]}
SortedCollection(OrderedCollection)>>do:
UnixVMMaker(VMMaker)>>plugins:do:
UnixVMMaker(VMMaker)>>internalPluginsDo:
UnixVMMaker(VMMaker)>>generateInternalPlugins
UnixVMMaker(VMMaker)>>generateMainVM
UnixVMMaker(VMMaker)>>generateEntire
[] in VMMakerTool>>generateAll {[vmMaker generateEntire]}
BlockContext>>on:do:
VMMakerTool>>generateAll
[] in SimpleButtonMorph>>doButtonAction {[target perform: actionSelector
withArguments: arguments]}
BlockContext>>ensure:
CursorWithMask(Cursor)>>showWhile:
SimpleButtonMorph>>doButtonAction
SimpleButtonMorph>>mouseUp:
SimpleButtonMorph(Morph)>>handleMouseUp:
MouseButtonEvent>>sentTo:
SimpleButtonMorph(Morph)>>handleEvent:
...etc...
More information about the Squeak-dev
mailing list
|