[squeak-dev] Event Theatre in Object Catalog sparks DNU in 6.0-trunk

David T. Lewis lewis at mail.msen.com
Sun Feb 18 16:53:02 UTC 2018


Ugh, I am blind, I see it now. Thanks Bob.

Dave


On Sun, Feb 18, 2018 at 11:23:46AM -0500, David T. Lewis wrote:
> I think I'm getting a bit lost on this, but here are my notes from things
> I looked at this morning:
> 
> I found that opening the Sugar navigator bar ('Show Sugar navigator bar'
> preference) makes the failure go away, but only because that preference
> removes the global flaps.
> 
> The failure can be be easily reproduced with "EventRecordingSpace open"
> with or without Sugar navigator bar open.
> 
> The underlying issue seems to be that Worldlet new (called from
> EventRecordingSpace>>initialize) does not initialize the worldState instance
> variable, which is required for later flap initialization.
> 
> Checking in an Etoys image, Worldlet new also answers an instance with
> nil worldState, so the solution is not to change that initialization.
> 
> Unfortunately, evaluating EventRecordingSpace open in my Etoys image
> crashes my VM, presumably because I am running a 64-bit VM and some plugin
> for GSMCodec may not be updated for 64-bit. I'll need to either use SqueakJS,
> or build a 32-bit interpreter VM, in order to step through this further
> and see what is different in Squeak trunk versus Etoys development image.
> 
> Dave 
> 
> 
> On Sun, Feb 18, 2018 at 06:58:14AM -0500, Bob Arning wrote:
> > Except that #outermostWorldMorph for the Worldlet will return the World 
> > where the <worldState> will be fine.
> > 
> > 
> > On 2/17/18 10:54 PM, David T. Lewis wrote:
> > >Thanks Bob,
> > >
> > >I see now the deprecated method, but I think something else is going wrong.
> > >The original logic from privateOuterDisplayWorld is still present in the
> > >most recent version of PasteUpMorph>>displayWorld. But worldState is nil
> > >when this is called, and that seems to be the cause of the error.
> > >
> > >I can't follow up on it tonight, but I think I'll try to dig back through
> > >some earlier versions of the trunk image and see if I can figure out where
> > >it started failing.
> > >
> > >Dave
> > >
> > >
> > >On Sat, Feb 17, 2018 at 09:36:25PM -0500, Bob Arning wrote:
> > >>PasteUpMorph used to say:
> > >>
> > >>
> > >>displayWorld
> > >>
> > >>?????? self outermostWorldMorph privateOuterDisplayWorld
> > >>
> > >>
> > >>which would work if you remove the "self deprecated" from
> > >>#privateOuterDisplayWorld
> > >>
> > >>
> > >>On 2/17/18 5:05 PM, David T. Lewis wrote:
> > >>>This is an interesting one.
> > >>>
> > >>>We have EventRecordingSpace class>>newStandalone that is trying to create
> > >>>a new
> > >>>instance "capable of standing by itself as a usable morph."
> > >>>
> > >>>This makes an instance with a contentArea that is a Worldlet. Presumabaly
> > >>>that
> > >>>Wordlet is supposed to be and "independent" thing too. But then we get to
> > >>>Worldlet(PasteUpMorph)>>displayWorld, in which the Worldlet tries to use
> > >>>its
> > >>>worldState to display submorphs, but it has no worldState, so boom.
> > >>>
> > >>>It may be necessary to look at an older image to figure out where this is
> > >>>going wrong.
> > >>>
> > >>>Dave
> > >>>
> > >>>p.s. Tim, thanks for posting this question :-)
> > >>>
> > >>>
> > >>>On Sat, Feb 17, 2018 at 11:27:53AM -0800, Tm Jhnsn wrote:
> > >>>>Hi all,
> > >>>>
> > >>>>I am really enjoying the latest versions of Squeak.
> > >>>>
> > >>>>In trying out 6.0-alpha with trunk updates, I found a DNU when doing
> > >>>>normal Morphic tasks.  Sorry if this has already been reported.
> > >>>>
> > >>>>Should be repeatable:
> > >>>>
> > >>>>- open fresh image
> > >>>>- make flaps appear (open a new Morphic project, or World menu -> flaps
> > >>>>-> show shared tabs)
> > >>>>- click Widgets
> > >>>>- drag out an Object Catalog
> > >>>>- click Multimedia
> > >>>>
> > >>>>Something is going on within the Event Theatre item's initialization.
> > >>>>
> > >>>>Seems to be that the "tutorial" Event Theatre Worldlet has a worldState
> > >>>>instance variable which is nil, but it is being sent
> > >>>>#displayWorld:submorphs: by PasteUpMorph>>#displayWorld.  Interestingly,
> > >>>>Worldlet's class comments specifically suggest instances don't have 
> > >>>>their
> > >>>>own worldState.  :D
> > >>>>
> > >>>>Other buttons in the Object Catalog did not result in a DNU for me.
> > >>>>
> > >>>>...stack follows:
> > >>>>
> > >>>>UndefinedObject(Object)>>doesNotUnderstand: #displayWorld:submorphs:
> > >>>>Worldlet(PasteUpMorph)>>displayWorld
> > >>>>[] in Worldlet>>installFlaps
> > >>>>OrderedCollection>>do:
> > >>>>Worldlet>>installFlaps
> > >>>>EventRecordingSpace>>addSuppliesFlap
> > >>>>EventRecordingSpace>>initialize
> > >>>>EventRecordingSpace(Morph)>>initializeToStandAlone
> > >>>>EventRecordingSpace class(Morph class)>>newStandAlone
> > >>>>PartsBin class>>thumbnailForQuad:color:
> > >>>>[] in PartsBin>>listDirection:quadList:buttonClass:
> > >>>>OrderedCollection>>do:
> > >>>>PartsBin>>listDirection:quadList:buttonClass:
> > >>>>PartsBin>>listDirection:quadList:
> > >>>>ObjectsTool>>installQuads:fromButton:
> > >>>>[] in ObjectsTool>>showCategory:fromButton:
> > >>>>BlockClosure>>ensure:
> > >>>>CursorWithMask(Cursor)>>showWhile:
> > >>>>ObjectsTool>>showCategory:fromButton:
> > >>>>SimpleButtonMorph>>doButtonAction
> > >>>>SimpleButtonMorph>>mouseDown:
> > >>>>SimpleButtonMorph(Morph)>>handleMouseDown:
> > >>>>MouseButtonEvent>>sentTo:
> > >>>>SimpleButtonMorph(Morph)>>handleEvent:
> > >>>>MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph:
> > >>>>[] in MorphicEventDispatcher>>dispatchMouseDown:with:
> > >>>>BlockClosure>>ensure:
> > >>>>MorphicEventDispatcher>>dispatchMouseDown:with:
> > >>>>MorphicEventDispatcher>>dispatchEvent:with:
> > >>>>SimpleButtonMorph(Morph)>>processEvent:using:
> > >>>>[] in MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:
> > >>>>Array(SequenceableCollection)>>do:
> > >>>>AlignmentMorph(Morph)>>submorphsDo:
> > >>>>MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:
> > >>>>MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph:
> > >>>>[] in MorphicEventDispatcher>>dispatchMouseDown:with:
> > >>>>BlockClosure>>ensure:
> > >>>>MorphicEventDispatcher>>dispatchMouseDown:with:
> > >>>>MorphicEventDispatcher>>dispatchEvent:with:
> > >>>>AlignmentMorph(Morph)>>processEvent:using:
> > >>>>[] in MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:
> > >>>>Array(SequenceableCollection)>>do:
> > >>>>ObjectsTool(Morph)>>submorphsDo:
> > >>>>MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:
> > >>>>MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph:
> > >>>>[] in MorphicEventDispatcher>>dispatchMouseDown:with:
> > >>>>BlockClosure>>ensure:
> > >>>>MorphicEventDispatcher>>dispatchMouseDown:with:
> > >>>>MorphicEventDispatcher>>dispatchEvent:with:
> > >>>>ObjectsTool(Morph)>>processEvent:using:
> > >>>>[] in MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:
> > >>>>Array(SequenceableCollection)>>do:
> > >>>>PasteUpMorph(Morph)>>submorphsDo:
> > >>>>MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:
> > >>>>MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph:
> > >>>>[] in MorphicEventDispatcher>>dispatchMouseDown:with:
> > >>>>BlockClosure>>ensure:
> > >>>>MorphicEventDispatcher>>dispatchMouseDown:with:
> > >>>>MorphicEventDispatcher>>dispatchEvent:with:
> > >>>>PasteUpMorph(Morph)>>processEvent:using:
> > >>>>[] in PasteUpMorph>>processEvent:using:
> > >>>>BlockClosure>>ensure:
> > >>>>PasteUpMorph>>processEvent:using:
> > >>>>PasteUpMorph(Morph)>>processEvent:
> > >>>>[] in [] in [] in HandMorph>>sendEvent:focus:clear:
> > >>>>BlockClosure>>ensure:
> > >>>>MouseButtonEvent(MorphicEvent)>>becomeActiveDuring:
> > >>>>[] in [] in HandMorph>>sendEvent:focus:clear:
> > >>>>BlockClosure>>ensure:
> > >>>>HandMorph>>becomeActiveDuring:
> > >>>>[] in HandMorph>>sendEvent:focus:clear:
> > >>>>BlockClosure>>ensure:
> > >>>>PasteUpMorph>>becomeActiveDuring:
> > >>>>HandMorph>>sendEvent:focus:clear:
> > >>>>HandMorph>>sendMouseEvent:
> > >>>>HandMorph>>handleEvent:
> > >>>>HandMorph>>processEvents
> > >>>>[] in WorldState>>doOneCycleNowFor:
> > >>>>Array(SequenceableCollection)>>do:
> > >>>>WorldState>>handsDo:
> > >>>>WorldState>>doOneCycleNowFor:
> > >>>>WorldState>>doOneCycleFor:
> > >>>>PasteUpMorph>>doOneCycle
> > >>>>[] in MorphicProject>>spawnNewProcess
> > >>>>[] in BlockClosure>>newProcess
> > >>>>
> > >>>>
> > >>>>Thanks,
> > >>>>Tim
> > >>>>
> > >>>>
> > >
> > 
> 
> > 
> 
> 


More information about the Squeak-dev mailing list