[BUG]SystemDictionary(Object)>>doesNotUnderstand: #allCallsOn:
Scott Wallace
scott.wallace at squeakland.org
Mon Mar 14 08:38:21 UTC 2005
Hi, Robert,
If you're using Viewers, Scriptors, and other etoy facilities, I
suggest you avoid Squeak 3.7.
There was extensive so-called "cleaning" activity that took place in
the run-up to 3.7, which had the result of breaking many things.
Many of the broken things subsequently got discovered and fixed
before the final release of 3.7, but in fact there were few, or no,
serious etoy users involved in either developing or using Squeak 3.7,
so many etoy-related bugs created by the "cleaners" went unnoticed
and unreported, and some of these remain unfixed in 3.7 even today,
such as the one you ran into.
Much more reliable as a system in which to do this kind of
programming would be either the current Squeakland system (from
Squeakland.org,) or the just-around-the-corner Squeak 3.8 from
Squeak.org, currently in its final gamma process.
The fix to the particular bug you report is trivial, but honestly,
I'd suggest you simply steer clear of 3.7 if you want to do scripting.
Cheers,
-- Scott
At 2:06 AM +0000 3/14/05, Robert Hawley wrote:
>Date: Mon, 14 Mar 2005 01:54:25 +0000
>From: rhawley at plymouth.ac.uk
>Subject: [BUG]SystemDictionary(Object)>>doesNotUnderstand: #allCallsOn:
>To: squeak-dev at lists.squeakfoundation.org
>
>here insert explanation of what you were doing, suspect changes you've
>made and so forth:
>
>- I got a "Press me" button from Supplies, opened a viewer, added a
>variable by clicking on the menu at the top, removed the variable by
>using the menu next to it, then message not understood appeared.
>
>- I have reviewed other bug reports and looked up the existing calls of
>allCallsOn:. As this method is defined for the Behavior and
>SystemNavigation classes, having a call to the Smalltalk
>SystemDictionary is possibly what is wrong. My Squeak debugging
>expertise is currently limited - that's as far as I'v got.
>
>
>14 March 2005 1:42:47 am
>
>VM: Win32 - a SmalltalkImage
>Image: Squeak3.7 [latest update: #5989]
>
>SecurityManager state:
>Restricted: false
>FileAccess: true
>SocketAccess: true
>Working Dir C:\Program Files\Squeak
>Trusted Dir C:\Program Files\Squeak\Bob
>Untrusted Dir C:\My Squeak\Bob
>
>SystemDictionary(Object)>>doesNotUnderstand: #allCallsOn:
> Receiver: a SystemDictionary(lots of globals)
> Arguments and temporary variables:
> aMessage: allCallsOn: #setX:
> Receiver's instance variables:
> tally: 2627
> array: #(#WonderlandActor131->WonderlandActor131
>#WAHtmlCanvas->WAHtmlCanvas ni...etc...
> cachedClassNames: nil
>
>Player114(Player)>>removeSlotNamed:
> Receiver: a Player114 (2164) named Button
> Arguments and temporary variables:
> aSlotName: #x
> aSetter: #setX:
> aGetter: #getX
> Receiver's instance variables:
> dependents: nil
> costume: a ScriptableButton<Button>(2858)
> costumes: nil
> x: 3
>
>[] in MenuItemMorph>>invokeWithEvent: {[(selArgCount := selector
>numArgs) = 0 ifTrue: [target perform: selector] ...]}
> Arguments and temporary variables:
> evt: [777 at 108 mouseUp 20272015]
> selArgCount: 1
> w: a PasteUpMorph(2796) [world]
>
>BlockContext>>ensure:
> Receiver: [] in MenuItemMorph>>invokeWithEvent: {[(selArgCount :=
>selector numArgs) = 0 ifTrue: [t...etc...
> Arguments and temporary variables:
> aBlock: [] in CursorWithMask(Cursor)>>showWhile:
>{[oldcursor show]}
> returnValue: nil
> b: nil
> Receiver's instance variables:
> sender: BlockContext>>ensure:
> pc: 145
> stackp: 0
> nargs: 0
> startpc: 124
> home: MenuItemMorph>>invokeWithEvent:
>
>
>--- The full stack ---
>SystemDictionary(Object)>>doesNotUnderstand: #allCallsOn:
>Player114(Player)>>removeSlotNamed:
>[] in MenuItemMorph>>invokeWithEvent: {[(selArgCount := selector
>numArgs) = 0 ifTrue: [target perform: selector] ...]}
>BlockContext>>ensure:
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>CursorWithMask(Cursor)>>showWhile:
>MenuItemMorph>>invokeWithEvent:
>MenuItemMorph>>mouseUp:
>MenuItemMorph>>handleMouseUp:
>MouseButtonEvent>>sentTo:
>MenuItemMorph(Morph)>>handleEvent:
>MorphicEventDispatcher>>dispatchDefault:with:
>MorphicEventDispatcher>>dispatchEvent:with:
>MenuItemMorph(Morph)>>processEvent:using:
>MorphicEventDispatcher>>dispatchDefault:with:
>MorphicEventDispatcher>>dispatchEvent:with:
>MenuMorph(Morph)>>processEvent:using:
>MenuMorph(Morph)>>processEvent:
>MenuMorph>>handleFocusEvent:
>[] in HandMorph>>sendFocusEvent:to:clear: {[ActiveHand := self.
>ActiveEvent := anEvent. result := focusHolder han...]}
>[] in PasteUpMorph>>becomeActiveDuring: {[aBlock value]}
>BlockContext>>on:do:
>PasteUpMorph>>becomeActiveDuring:
>HandMorph>>sendFocusEvent:to:clear:
>HandMorph>>sendEvent:focus:clear:
>HandMorph>>sendMouseEvent:
>HandMorph>>handleEvent:
>HandMorph>>processEvents
>[] in WorldState>>doOneCycleNowFor: {[:h | ActiveHand := h. h
>processEvents. capturingGesture := capturingGest...]}
>Array(SequenceableCollection)>>do:
>WorldState>>handsDo:
>WorldState>>doOneCycleNowFor:
>WorldState>>doOneCycleFor:
>PasteUpMorph>>doOneCycle
>[] in Project class>>spawnNewProcess {[[World doOneCycle. Processor
>yield. false] whileFalse. nil]}
>[] in BlockContext>>newProcess {[self value. Processor
>terminateActive]}
More information about the Squeak-dev
mailing list
|