[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