[BUG]Preferences class(Object)>>doesNotUnderstand: #soundsEnabled

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

[BUG]Preferences class(Object)>>doesNotUnderstand: #soundsEnabled

Edgar De Cleene
Moving a Morph to TrashMorph
16 August 2018 8:19:32.233754 am

VM: Mac OS - Smalltalk
Image: Squeak5.2alpha [latest update: #18136]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /Users/edgardecleene/Documents/MagallanesSqueak/5dot2
Trusted Dir /foobar/tooBar/forSqueak/bogus/
Untrusted Dir
/Users/edgardecleene/Library/Preferences/Squeak/Internet/Untrusted

Preferences class(Object)>>doesNotUnderstand: #soundsEnabled
    Receiver: Preferences
    Arguments and temporary variables:
        aMessage:     soundsEnabled
        exception:     MessageNotUnderstood: Preferences
class>>soundsEnabled
        resumeValue:     nil
    Receiver's instance variables:
        superclass:     Object
        methodDict:     [2109647]a MethodDictionary()
        format:     0
        instanceVariables:     nil
        organization:     ('as yet unclassified')

        subclasses:     {ServicePreferences . PreferencesTestPreferences}
        name:     #Preferences
        classPool:     [2247793]a Dictionary(#DesktopColor->(Color r: 0.742
g: 1 b: 0.839) ...etc...
        sharedPools:     nil
        environment:     Smalltalk
        category:     #'System-Preferences'
        preferencesDictionary:     [575529]an IdentityDictionary(size 311)

[] in Preferences class>>doesNotUnderstand: #soundsEnabled
    Receiver: Preferences
    Arguments and temporary variables:
        aMessage:     soundsEnabled
    Receiver's instance variables:
        superclass:     Object
        methodDict:     [2109647]a MethodDictionary()
        format:     0
        instanceVariables:     nil
        organization:     ('as yet unclassified')

        subclasses:     {ServicePreferences . PreferencesTestPreferences}
        name:     #Preferences
        classPool:     [2247793]a Dictionary(#DesktopColor->(Color r: 0.742
g: 1 b: 0.839) ...etc...
        sharedPools:     nil
        environment:     Smalltalk
        category:     #'System-Preferences'
        preferencesDictionary:     [575529]an IdentityDictionary(size 311)

[] in Preferences class>>valueOfPreference:ifAbsent:
    Receiver: Preferences
    Arguments and temporary variables:
<<error during printing>
    Receiver's instance variables:
        superclass:     Object
        methodDict:     [2109647]a MethodDictionary()
        format:     0
        instanceVariables:     nil
        organization:     ('as yet unclassified')

        subclasses:     {ServicePreferences . PreferencesTestPreferences}
        name:     #Preferences
        classPool:     [2247793]a Dictionary(#DesktopColor->(Color r: 0.742
g: 1 b: 0.839) ...etc...
        sharedPools:     nil
        environment:     Smalltalk
        category:     #'System-Preferences'
        preferencesDictionary:     [575529]an IdentityDictionary(size 311)

IdentityDictionary(Dictionary)>>at:ifAbsent:
    Receiver: [575529]an IdentityDictionary(size 311)
    Arguments and temporary variables:
        key:     #soundsEnabled
        aBlock:     [closure] in Preferences
class>>valueOfPreference:ifAbsent:
    Receiver's instance variables:
        tally:     311
        array:     {#'PreferencesTestExample>>textPref'->[2348341]a
PragmaPreference#'Textu...etc...

Preferences class>>preferenceAt:ifAbsent:
    Receiver: Preferences
    Arguments and temporary variables:
        aSymbol:     #soundsEnabled
        aBlock:     [closure] in Preferences
class>>valueOfPreference:ifAbsent:
    Receiver's instance variables:
        superclass:     Object
        methodDict:     [2109647]a MethodDictionary()
        format:     0
        instanceVariables:     nil
        organization:     ('as yet unclassified')

        subclasses:     {ServicePreferences . PreferencesTestPreferences}
        name:     #Preferences
        classPool:     [2247793]a Dictionary(#DesktopColor->(Color r: 0.742
g: 1 b: 0.839) ...etc...
        sharedPools:     nil
        environment:     Smalltalk
        category:     #'System-Preferences'
        preferencesDictionary:     [575529]an IdentityDictionary(size 311)

Preferences class>>valueOfPreference:ifAbsent:
    Receiver: Preferences
    Arguments and temporary variables:
        aPreferenceSymbol:     #soundsEnabled
        block:     [closure] in Preferences class>>doesNotUnderstand:
#soundsEnabled
    Receiver's instance variables:
        superclass:     Object
        methodDict:     [2109647]a MethodDictionary()
        format:     0
        instanceVariables:     nil
        organization:     ('as yet unclassified')

        subclasses:     {ServicePreferences . PreferencesTestPreferences}
        name:     #Preferences
        classPool:     [2247793]a Dictionary(#DesktopColor->(Color r: 0.742
g: 1 b: 0.839) ...etc...
        sharedPools:     nil
        environment:     Smalltalk
        category:     #'System-Preferences'
        preferencesDictionary:     [575529]an IdentityDictionary(size 311)

Preferences class>>doesNotUnderstand: #soundsEnabled
    Receiver: Preferences
    Arguments and temporary variables:
        aMessage:     soundsEnabled
    Receiver's instance variables:
        superclass:     Object
        methodDict:     [2109647]a MethodDictionary()
        format:     0
        instanceVariables:     nil
        organization:     ('as yet unclassified')

        subclasses:     {ServicePreferences . PreferencesTestPreferences}
        name:     #Preferences
        classPool:     [2247793]a Dictionary(#DesktopColor->(Color r: 0.742
g: 1 b: 0.839) ...etc...
        sharedPools:     nil
        environment:     Smalltalk
        category:     #'System-Preferences'
        preferencesDictionary:     [575529]an IdentityDictionary(size 311)

SmartTrashCanMorph(TrashCanMorph)>>mouseEnter:
    Receiver: a TrashCanMorph
    Arguments and temporary variables:
        event:     [649@508 649@509 mouseEnter red 59004]
        hand:     [3463596]a HandMorph(3463596)
        firstSub:     [3563712]a Planet(3563712)
    Receiver's instance variables:
        bounds:     645@461 corner: 720@533
        owner:     [2434915]a PasteUpMorph(2434915) [world]
        submorphs:     #()
        fullBounds:     645@461 corner: 720@533
        color:     Color blue
        extension:     [1392989]a MorphExtension (1392989) [balloonText]
[externalName = T...etc...
        image:     Form(72x72x32)
        offImage:     Form(72x72x32)
        pressedImage:     Form(72x72x32)
        state:     #off
        target:     nil
        actionSelector:     #flash
        arguments:     #()
        actWhen:     #buttonUp
        label:     nil
        font:     nil
        textColor:     nil

SmartTrashCanMorph(TrashCanMorph)>>mouseEnterDragging:
    Receiver: a TrashCanMorph
    Arguments and temporary variables:
        evt:     [649@508 649@509 mouseEnter red 59004]
    Receiver's instance variables:
        bounds:     645@461 corner: 720@533
        owner:     [2434915]a PasteUpMorph(2434915) [world]
        submorphs:     #()
        fullBounds:     645@461 corner: 720@533
        color:     Color blue
        extension:     [1392989]a MorphExtension (1392989) [balloonText]
[externalName = T...etc...
        image:     Form(72x72x32)
        offImage:     Form(72x72x32)
        pressedImage:     Form(72x72x32)
        state:     #off
        target:     nil
        actionSelector:     #flash
        arguments:     #()
        actWhen:     #buttonUp
        label:     nil
        font:     nil
        textColor:     nil

SmartTrashCanMorph(Morph)>>handleMouseEnter:
    Receiver: a TrashCanMorph
    Arguments and temporary variables:
        anEvent:     [649@508 649@509 mouseEnter red 59004]
    Receiver's instance variables:
        bounds:     645@461 corner: 720@533
        owner:     [2434915]a PasteUpMorph(2434915) [world]
        submorphs:     #()
        fullBounds:     645@461 corner: 720@533
        color:     Color blue
        extension:     [1392989]a MorphExtension (1392989) [balloonText]
[externalName = T...etc...
        image:     Form(72x72x32)
        offImage:     Form(72x72x32)
        pressedImage:     Form(72x72x32)
        state:     #off
        target:     nil
        actionSelector:     #flash
        arguments:     #()
        actWhen:     #buttonUp
        label:     nil
        font:     nil
        textColor:     nil

MouseMoveEvent(MouseEvent)>>sentTo:
    Receiver: [649@508 649@509 mouseEnter red 59004]
    Arguments and temporary variables:
        anObject:     a TrashCanMorph
    Receiver's instance variables:
        timeStamp:     59004
        source:     [3463596]a HandMorph(3463596)
        type:     #mouseEnter
        buttons:     4
        position:     649@509
        handler:     nil
        wasHandled:     true
        wasIgnored:     false
        startPoint:     649@508
        trail:     {649@509}

MouseMoveEvent>>sentTo:
    Receiver: [649@508 649@509 mouseEnter red 59004]
    Arguments and temporary variables:
        anObject:     a TrashCanMorph
    Receiver's instance variables:
        timeStamp:     59004
        source:     [3463596]a HandMorph(3463596)
        type:     #mouseEnter
        buttons:     4
        position:     649@509
        handler:     nil
        wasHandled:     true
        wasIgnored:     false
        startPoint:     649@508
        trail:     {649@509}

SmartTrashCanMorph(Morph)>>handleEvent:
    Receiver: a TrashCanMorph
    Arguments and temporary variables:
        anEvent:     [649@508 649@509 mouseEnter red 59004]
        filteredEvent:     [649@508 649@509 mouseEnter red 59004]
    Receiver's instance variables:
        bounds:     645@461 corner: 720@533
        owner:     [2434915]a PasteUpMorph(2434915) [world]
        submorphs:     #()
        fullBounds:     645@461 corner: 720@533
        color:     Color blue
        extension:     [1392989]a MorphExtension (1392989) [balloonText]
[externalName = T...etc...
        image:     Form(72x72x32)
        offImage:     Form(72x72x32)
        pressedImage:     Form(72x72x32)
        state:     #off
        target:     nil
        actionSelector:     #flash
        arguments:     #()
        actWhen:     #buttonUp
        label:     nil
        font:     nil
        textColor:     nil

[] in MouseOverHandler>>processMouseOver:
    Receiver: [1672941]a MouseOverHandler
    Arguments and temporary variables:
<<error during printing>
    Receiver's instance variables:
        mouseOverMorphs:     {[81950]a MenuItemMorph(81950)'do it (d)' .
[2532074]a MenuMorph...etc...
        enteredMorphs:     [1407157]a WriteStream
        overMorphs:     [2609100]a WriteStream
        leftMorphs:     [3890734]an OrderedCollection()

Array(SequenceableCollection)>>reverseDo:
    Receiver: {a TrashCanMorph}
    Arguments and temporary variables:
        aBlock:     [closure] in MouseOverHandler>>processMouseOver:
        index:     1
    Receiver's instance variables:
{a TrashCanMorph}

MouseOverHandler>>processMouseOver:
    Receiver: [1672941]a MouseOverHandler
    Arguments and temporary variables:
<<error during printing>
    Receiver's instance variables:
        mouseOverMorphs:     {[81950]a MenuItemMorph(81950)'do it (d)' .
[2532074]a MenuMorph...etc...
        enteredMorphs:     [1407157]a WriteStream
        overMorphs:     [2609100]a WriteStream
        leftMorphs:     [3890734]an OrderedCollection()

HandMorph>>processEvents
    Receiver: [3463596]a HandMorph(3463596)
    Arguments and temporary variables:
        evt:     nil
        evtBuf:     nil
        type:     nil
        hadAny:     false
    Receiver's instance variables:
        bounds:     440@448 corner: 456@464
        owner:     [2434915]a PasteUpMorph(2434915) [world]
        submorphs:     #()
        fullBounds:     440@448 corner: 456@464
        color:     Color blue
        extension:     [968354]a MorphExtension (968354) [eventHandler =
[1227208]an EventH...etc...
        mouseFocus:     nil
        keyboardFocus:     [3890664]a TextMorphForEditView(3890664)
        eventListeners:     nil
        mouseListeners:     nil
        keyboardListeners:     [773911]a WeakArray([388881]a
KeyboardStateWatcher)
        eventCaptureFilters:     nil
        mouseCaptureFilters:     nil
        keyboardCaptureFilters:     [1204688]a WeakArray([3463596]a
HandMorph(3463596))
        mouseClickState:     nil
        mouseOverHandler:     [1672941]a MouseOverHandler
        mouseWheelState:     [1286858]a MouseWheelState
        lastMouseEvent:     [440@448 mouseUp ( red ) 116575]
        targetOffset:     45@22
        damageRecorder:     [2398335]a DamageRecorder
        cacheCanvas:     nil
        cachedCanvasHasHoles:     true
        temporaryCursor:     nil
        temporaryCursorOffset:     nil
        hardwareCursor:     nil
        hasChanged:     true
        savedPatch:     nil
        userInitials:     ''
        lastEventBuffer:     #(1 116575 440 448 0 0 1 1)
        genieGestureProcessor:     nil
        keyboardInterpreter:     [2155632]a MacUnicodeInputInterpreter

[] in WorldState>>doOneCycleNowFor:
    Receiver: [785163]a WorldState
    Arguments and temporary variables:
<<error during printing>
    Receiver's instance variables:
        hands:     {[3463596]a HandMorph(3463596)}
        activeHand:     [3463596]a HandMorph(3463596)
        viewBox:     0@0 corner: 1027@768
        canvas:     [2517135]a FormCanvas on: DisplayScreen(1027x768x32)
        damageRecorder:     [1738851]a DamageRecorder
        stepList:     [3160142]a Heap(StepMessage(#stepAt: -> [490998]an
ImageMorph<dot>(49...etc...
        lastStepTime:     3711871172205
        lastStepMessage:     nil
        lastCycleTime:     3711871172226
        commandHistory:     [2625821]a CommandHistory
        alarms:     [3902213]a MorphicAlarmQueue
        lastAlarmTime:     3711871172205
        remoteServer:     nil
        multiCanvas:     nil
        interCycleDelay:     [2363900]a Delay(20 msecs)

Array(SequenceableCollection)>>do:
    Receiver: {[3463596]a HandMorph(3463596)}
    Arguments and temporary variables:
        aBlock:     [closure] in WorldState>>doOneCycleNowFor:
        index:     1
        indexLimiT:     1
    Receiver's instance variables:
{[3463596]a HandMorph(3463596)}


--- The full stack ---
Preferences class(Object)>>doesNotUnderstand: #soundsEnabled
[] in Preferences class>>doesNotUnderstand: #soundsEnabled
[] in Preferences class>>valueOfPreference:ifAbsent:
IdentityDictionary(Dictionary)>>at:ifAbsent:
Preferences class>>preferenceAt:ifAbsent:
Preferences class>>valueOfPreference:ifAbsent:
Preferences class>>doesNotUnderstand: #soundsEnabled
SmartTrashCanMorph(TrashCanMorph)>>mouseEnter:
SmartTrashCanMorph(TrashCanMorph)>>mouseEnterDragging:
SmartTrashCanMorph(Morph)>>handleMouseEnter:
MouseMoveEvent(MouseEvent)>>sentTo:
MouseMoveEvent>>sentTo:
SmartTrashCanMorph(Morph)>>handleEvent:
[] in MouseOverHandler>>processMouseOver:
Array(SequenceableCollection)>>reverseDo:
MouseOverHandler>>processMouseOver:
HandMorph>>processEvents
[] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in MorphicProject>>spawnNewProcess
[] in BlockClosure>>newProcess




Reply | Threaded
Open this post in threaded view
|

Re: [BUG]Preferences class(Object)>>doesNotUnderstand: #soundsEnabled

Nicolas Cellier
Hi Edgar,
First, I see no such sender of #soundsEnabled in base image, so it's more a problem of uncompatibility with add-on packages (extensions) than a problem of base image, right?

Then, thanks to commit messages in the mailing list, I can trace that Preferences class>>#soundsEnabled - which is a EToys thing - was added in Trunk: System-tfel.902.mcz (which itself is a merge with System-tfel.882).

But unfortunately, I can't easily trace when this message was removed in favour of a doesNotUnderstand: solution...
Maybe it was removed at a time when the mailing list reports were not functional?
Or maybe, the changes were not reported because too long...
(That's a bad feature IMO, on the assumption that code should never be too long, we should not need any such guard anyway...).

The thing to do before/after loading such EToys like extension is to perform Etoys like initialization, and that could well be a responsibility of extension code, rather than of base image. So maybe it's not a problem of Trunk by itself...
The question is how do we advertize the package maintainers about these new responsibilities caused by evolutions of Trunk (understand evolution as shrinking/simplifying)?



2018-08-16 13:26 GMT+02:00 Edgar J. De Cleene <[hidden email]>:
Moving a Morph to TrashMorph
16 August 2018 8:19:32.233754 am

VM: Mac OS - Smalltalk
Image: Squeak5.2alpha [latest update: #18136]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /Users/edgardecleene/Documents/MagallanesSqueak/5dot2
Trusted Dir /foobar/tooBar/forSqueak/bogus/
Untrusted Dir
/Users/edgardecleene/Library/Preferences/Squeak/Internet/Untrusted

Preferences class(Object)>>doesNotUnderstand: #soundsEnabled
    Receiver: Preferences
    Arguments and temporary variables:
        aMessage:     soundsEnabled
        exception:     MessageNotUnderstood: Preferences
class>>soundsEnabled
        resumeValue:     nil
    Receiver's instance variables:
        superclass:     Object
        methodDict:     [2109647]a MethodDictionary()
        format:     0
        instanceVariables:     nil
        organization:     ('as yet unclassified')

        subclasses:     {ServicePreferences . PreferencesTestPreferences}
        name:     #Preferences
        classPool:     [2247793]a Dictionary(#DesktopColor->(Color r: 0.742
g: 1 b: 0.839) ...etc...
        sharedPools:     nil
        environment:     Smalltalk
        category:     #'System-Preferences'
        preferencesDictionary:     [575529]an IdentityDictionary(size 311)

[] in Preferences class>>doesNotUnderstand: #soundsEnabled
    Receiver: Preferences
    Arguments and temporary variables:
        aMessage:     soundsEnabled
    Receiver's instance variables:
        superclass:     Object
        methodDict:     [2109647]a MethodDictionary()
        format:     0
        instanceVariables:     nil
        organization:     ('as yet unclassified')

        subclasses:     {ServicePreferences . PreferencesTestPreferences}
        name:     #Preferences
        classPool:     [2247793]a Dictionary(#DesktopColor->(Color r: 0.742
g: 1 b: 0.839) ...etc...
        sharedPools:     nil
        environment:     Smalltalk
        category:     #'System-Preferences'
        preferencesDictionary:     [575529]an IdentityDictionary(size 311)

[] in Preferences class>>valueOfPreference:ifAbsent:
    Receiver: Preferences
    Arguments and temporary variables:
<<error during printing>
    Receiver's instance variables:
        superclass:     Object
        methodDict:     [2109647]a MethodDictionary()
        format:     0
        instanceVariables:     nil
        organization:     ('as yet unclassified')

        subclasses:     {ServicePreferences . PreferencesTestPreferences}
        name:     #Preferences
        classPool:     [2247793]a Dictionary(#DesktopColor->(Color r: 0.742
g: 1 b: 0.839) ...etc...
        sharedPools:     nil
        environment:     Smalltalk
        category:     #'System-Preferences'
        preferencesDictionary:     [575529]an IdentityDictionary(size 311)

IdentityDictionary(Dictionary)>>at:ifAbsent:
    Receiver: [575529]an IdentityDictionary(size 311)
    Arguments and temporary variables:
        key:     #soundsEnabled
        aBlock:     [closure] in Preferences
class>>valueOfPreference:ifAbsent:
    Receiver's instance variables:
        tally:     311
        array:     {#'PreferencesTestExample>>textPref'->[2348341]a
PragmaPreference#'Textu...etc...

Preferences class>>preferenceAt:ifAbsent:
    Receiver: Preferences
    Arguments and temporary variables:
        aSymbol:     #soundsEnabled
        aBlock:     [closure] in Preferences
class>>valueOfPreference:ifAbsent:
    Receiver's instance variables:
        superclass:     Object
        methodDict:     [2109647]a MethodDictionary()
        format:     0
        instanceVariables:     nil
        organization:     ('as yet unclassified')

        subclasses:     {ServicePreferences . PreferencesTestPreferences}
        name:     #Preferences
        classPool:     [2247793]a Dictionary(#DesktopColor->(Color r: 0.742
g: 1 b: 0.839) ...etc...
        sharedPools:     nil
        environment:     Smalltalk
        category:     #'System-Preferences'
        preferencesDictionary:     [575529]an IdentityDictionary(size 311)

Preferences class>>valueOfPreference:ifAbsent:
    Receiver: Preferences
    Arguments and temporary variables:
        aPreferenceSymbol:     #soundsEnabled
        block:     [closure] in Preferences class>>doesNotUnderstand:
#soundsEnabled
    Receiver's instance variables:
        superclass:     Object
        methodDict:     [2109647]a MethodDictionary()
        format:     0
        instanceVariables:     nil
        organization:     ('as yet unclassified')

        subclasses:     {ServicePreferences . PreferencesTestPreferences}
        name:     #Preferences
        classPool:     [2247793]a Dictionary(#DesktopColor->(Color r: 0.742
g: 1 b: 0.839) ...etc...
        sharedPools:     nil
        environment:     Smalltalk
        category:     #'System-Preferences'
        preferencesDictionary:     [575529]an IdentityDictionary(size 311)

Preferences class>>doesNotUnderstand: #soundsEnabled
    Receiver: Preferences
    Arguments and temporary variables:
        aMessage:     soundsEnabled
    Receiver's instance variables:
        superclass:     Object
        methodDict:     [2109647]a MethodDictionary()
        format:     0
        instanceVariables:     nil
        organization:     ('as yet unclassified')

        subclasses:     {ServicePreferences . PreferencesTestPreferences}
        name:     #Preferences
        classPool:     [2247793]a Dictionary(#DesktopColor->(Color r: 0.742
g: 1 b: 0.839) ...etc...
        sharedPools:     nil
        environment:     Smalltalk
        category:     #'System-Preferences'
        preferencesDictionary:     [575529]an IdentityDictionary(size 311)

SmartTrashCanMorph(TrashCanMorph)>>mouseEnter:
    Receiver: a TrashCanMorph
    Arguments and temporary variables:
        event:     [649@508 649@509 mouseEnter red 59004]
        hand:     [3463596]a HandMorph(3463596)
        firstSub:     [3563712]a Planet(3563712)
    Receiver's instance variables:
        bounds:     645@461 corner: 720@533
        owner:     [2434915]a PasteUpMorph(2434915) [world]
        submorphs:     #()
        fullBounds:     645@461 corner: 720@533
        color:     Color blue
        extension:     [1392989]a MorphExtension (1392989) [balloonText]
[externalName = T...etc...
        image:     Form(72x72x32)
        offImage:     Form(72x72x32)
        pressedImage:     Form(72x72x32)
        state:     #off
        target:     nil
        actionSelector:     #flash
        arguments:     #()
        actWhen:     #buttonUp
        label:     nil
        font:     nil
        textColor:     nil

SmartTrashCanMorph(TrashCanMorph)>>mouseEnterDragging:
    Receiver: a TrashCanMorph
    Arguments and temporary variables:
        evt:     [649@508 649@509 mouseEnter red 59004]
    Receiver's instance variables:
        bounds:     645@461 corner: 720@533
        owner:     [2434915]a PasteUpMorph(2434915) [world]
        submorphs:     #()
        fullBounds:     645@461 corner: 720@533
        color:     Color blue
        extension:     [1392989]a MorphExtension (1392989) [balloonText]
[externalName = T...etc...
        image:     Form(72x72x32)
        offImage:     Form(72x72x32)
        pressedImage:     Form(72x72x32)
        state:     #off
        target:     nil
        actionSelector:     #flash
        arguments:     #()
        actWhen:     #buttonUp
        label:     nil
        font:     nil
        textColor:     nil

SmartTrashCanMorph(Morph)>>handleMouseEnter:
    Receiver: a TrashCanMorph
    Arguments and temporary variables:
        anEvent:     [649@508 649@509 mouseEnter red 59004]
    Receiver's instance variables:
        bounds:     645@461 corner: 720@533
        owner:     [2434915]a PasteUpMorph(2434915) [world]
        submorphs:     #()
        fullBounds:     645@461 corner: 720@533
        color:     Color blue
        extension:     [1392989]a MorphExtension (1392989) [balloonText]
[externalName = T...etc...
        image:     Form(72x72x32)
        offImage:     Form(72x72x32)
        pressedImage:     Form(72x72x32)
        state:     #off
        target:     nil
        actionSelector:     #flash
        arguments:     #()
        actWhen:     #buttonUp
        label:     nil
        font:     nil
        textColor:     nil

MouseMoveEvent(MouseEvent)>>sentTo:
    Receiver: [649@508 649@509 mouseEnter red 59004]
    Arguments and temporary variables:
        anObject:     a TrashCanMorph
    Receiver's instance variables:
        timeStamp:     59004
        source:     [3463596]a HandMorph(3463596)
        type:     #mouseEnter
        buttons:     4
        position:     649@509
        handler:     nil
        wasHandled:     true
        wasIgnored:     false
        startPoint:     649@508
        trail:     {649@509}

MouseMoveEvent>>sentTo:
    Receiver: [649@508 649@509 mouseEnter red 59004]
    Arguments and temporary variables:
        anObject:     a TrashCanMorph
    Receiver's instance variables:
        timeStamp:     59004
        source:     [3463596]a HandMorph(3463596)
        type:     #mouseEnter
        buttons:     4
        position:     649@509
        handler:     nil
        wasHandled:     true
        wasIgnored:     false
        startPoint:     649@508
        trail:     {649@509}

SmartTrashCanMorph(Morph)>>handleEvent:
    Receiver: a TrashCanMorph
    Arguments and temporary variables:
        anEvent:     [649@508 649@509 mouseEnter red 59004]
        filteredEvent:     [649@508 649@509 mouseEnter red 59004]
    Receiver's instance variables:
        bounds:     645@461 corner: 720@533
        owner:     [2434915]a PasteUpMorph(2434915) [world]
        submorphs:     #()
        fullBounds:     645@461 corner: 720@533
        color:     Color blue
        extension:     [1392989]a MorphExtension (1392989) [balloonText]
[externalName = T...etc...
        image:     Form(72x72x32)
        offImage:     Form(72x72x32)
        pressedImage:     Form(72x72x32)
        state:     #off
        target:     nil
        actionSelector:     #flash
        arguments:     #()
        actWhen:     #buttonUp
        label:     nil
        font:     nil
        textColor:     nil

[] in MouseOverHandler>>processMouseOver:
    Receiver: [1672941]a MouseOverHandler
    Arguments and temporary variables:
<<error during printing>
    Receiver's instance variables:
        mouseOverMorphs:     {[81950]a MenuItemMorph(81950)'do it (d)' .
[2532074]a MenuMorph...etc...
        enteredMorphs:     [1407157]a WriteStream
        overMorphs:     [2609100]a WriteStream
        leftMorphs:     [3890734]an OrderedCollection()

Array(SequenceableCollection)>>reverseDo:
    Receiver: {a TrashCanMorph}
    Arguments and temporary variables:
        aBlock:     [closure] in MouseOverHandler>>processMouseOver:
        index:     1
    Receiver's instance variables:
{a TrashCanMorph}

MouseOverHandler>>processMouseOver:
    Receiver: [1672941]a MouseOverHandler
    Arguments and temporary variables:
<<error during printing>
    Receiver's instance variables:
        mouseOverMorphs:     {[81950]a MenuItemMorph(81950)'do it (d)' .
[2532074]a MenuMorph...etc...
        enteredMorphs:     [1407157]a WriteStream
        overMorphs:     [2609100]a WriteStream
        leftMorphs:     [3890734]an OrderedCollection()

HandMorph>>processEvents
    Receiver: [3463596]a HandMorph(3463596)
    Arguments and temporary variables:
        evt:     nil
        evtBuf:     nil
        type:     nil
        hadAny:     false
    Receiver's instance variables:
        bounds:     440@448 corner: 456@464
        owner:     [2434915]a PasteUpMorph(2434915) [world]
        submorphs:     #()
        fullBounds:     440@448 corner: 456@464
        color:     Color blue
        extension:     [968354]a MorphExtension (968354) [eventHandler =
[1227208]an EventH...etc...
        mouseFocus:     nil
        keyboardFocus:     [3890664]a TextMorphForEditView(3890664)
        eventListeners:     nil
        mouseListeners:     nil
        keyboardListeners:     [773911]a WeakArray([388881]a
KeyboardStateWatcher)
        eventCaptureFilters:     nil
        mouseCaptureFilters:     nil
        keyboardCaptureFilters:     [1204688]a WeakArray([3463596]a
HandMorph(3463596))
        mouseClickState:     nil
        mouseOverHandler:     [1672941]a MouseOverHandler
        mouseWheelState:     [1286858]a MouseWheelState
        lastMouseEvent:     [440@448 mouseUp ( red ) 116575]
        targetOffset:     45@22
        damageRecorder:     [2398335]a DamageRecorder
        cacheCanvas:     nil
        cachedCanvasHasHoles:     true
        temporaryCursor:     nil
        temporaryCursorOffset:     nil
        hardwareCursor:     nil
        hasChanged:     true
        savedPatch:     nil
        userInitials:     ''
        lastEventBuffer:     #(1 116575 440 448 0 0 1 1)
        genieGestureProcessor:     nil
        keyboardInterpreter:     [2155632]a MacUnicodeInputInterpreter

[] in WorldState>>doOneCycleNowFor:
    Receiver: [785163]a WorldState
    Arguments and temporary variables:
<<error during printing>
    Receiver's instance variables:
        hands:     {[3463596]a HandMorph(3463596)}
        activeHand:     [3463596]a HandMorph(3463596)
        viewBox:     0@0 corner: 1027@768
        canvas:     [2517135]a FormCanvas on: DisplayScreen(1027x768x32)
        damageRecorder:     [1738851]a DamageRecorder
        stepList:     [3160142]a Heap(StepMessage(#stepAt: -> [490998]an
ImageMorph<dot>(49...etc...
        lastStepTime:     3711871172205
        lastStepMessage:     nil
        lastCycleTime:     3711871172226
        commandHistory:     [2625821]a CommandHistory
        alarms:     [3902213]a MorphicAlarmQueue
        lastAlarmTime:     3711871172205
        remoteServer:     nil
        multiCanvas:     nil
        interCycleDelay:     [2363900]a Delay(20 msecs)

Array(SequenceableCollection)>>do:
    Receiver: {[3463596]a HandMorph(3463596)}
    Arguments and temporary variables:
        aBlock:     [closure] in WorldState>>doOneCycleNowFor:
        index:     1
        indexLimiT:     1
    Receiver's instance variables:
{[3463596]a HandMorph(3463596)}


--- The full stack ---
Preferences class(Object)>>doesNotUnderstand: #soundsEnabled
[] in Preferences class>>doesNotUnderstand: #soundsEnabled
[] in Preferences class>>valueOfPreference:ifAbsent:
IdentityDictionary(Dictionary)>>at:ifAbsent:
Preferences class>>preferenceAt:ifAbsent:
Preferences class>>valueOfPreference:ifAbsent:
Preferences class>>doesNotUnderstand: #soundsEnabled
SmartTrashCanMorph(TrashCanMorph)>>mouseEnter:
SmartTrashCanMorph(TrashCanMorph)>>mouseEnterDragging:
SmartTrashCanMorph(Morph)>>handleMouseEnter:
MouseMoveEvent(MouseEvent)>>sentTo:
MouseMoveEvent>>sentTo:
SmartTrashCanMorph(Morph)>>handleEvent:
[] in MouseOverHandler>>processMouseOver:
Array(SequenceableCollection)>>reverseDo:
MouseOverHandler>>processMouseOver:
HandMorph>>processEvents
[] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in MorphicProject>>spawnNewProcess
[] in BlockClosure>>newProcess







Reply | Threaded
Open this post in threaded view
|

Re: [BUG]Preferences class(Object)>>doesNotUnderstand: #soundsEnabled

Nicolas Cellier


2018-08-16 14:51 GMT+02:00 Nicolas Cellier <[hidden email]>:
Hi Edgar,
First, I see no such sender of #soundsEnabled in base image, so it's more a problem of uncompatibility with add-on packages (extensions) than a problem of base image, right?

Then, thanks to commit messages in the mailing list, I can trace that Preferences class>>#soundsEnabled - which is a EToys thing - was added in Trunk: System-tfel.902.mcz (which itself is a merge with System-tfel.882).

But unfortunately, I can't easily trace when this message was removed in favour of a doesNotUnderstand: solution...
Maybe it was removed at a time when the mailing list reports were not functional?
Or maybe, the changes were not reported because too long...
(That's a bad feature IMO, on the assumption that code should never be too long, we should not need any such guard anyway...).

Nope,
it's because the change (the removal of Preferences class>>#soundsEnabled ) happened in a version not commited in trunk.
then the change was not reported from

Name: System-tfel.911
Author: tfel
Time: 29 August 2016, 4:20:07.411946 pm
UUID: 0242c0ab-04df-994a-adb2-a8c26da259fa
Ancestors: System-tfel.902, System-ul.910

because only the diff to more recent System-ul.910 is shown in mailing list...



The thing to do before/after loading such EToys like extension is to perform Etoys like initialization, and that could well be a responsibility of extension code, rather than of base image. So maybe it's not a problem of Trunk by itself...
The question is how do we advertize the package maintainers about these new responsibilities caused by evolutions of Trunk (understand evolution as shrinking/simplifying)?



Reply | Threaded
Open this post in threaded view
|

Re: [BUG]Preferences class(Object)>>doesNotUnderstand: #soundsEnabled

Edgar De Cleene
In reply to this post by Nicolas Cellier
Re: [squeak-dev] [BUG]Preferences class(Object)>>doesNotUnderstand: #soundsEnabled First, thanks for feedback.
Now I should be the Mantis coordinator and we have now a 5.2 project for made bug reports.
I send another mail asking for how to have a easy mail send from inside Squeak.
Take my ail about soundsEnabled as proof of collecting info for made a Mantis report.
The error comes from importing my old SmartTrashMorph, a long time ago when you throw some morph on Trash a sound is produced.

SoundService soundEnabled is which we have now , so no bug only need change old code


On 16/08/2018, 09:51, "Nicolas Cellier" <[hidden email]> wrote:

Hi Edgar,
First, I see no such sender of #soundsEnabled in base image, so it's more a problem of uncompatibility with add-on packages (extensions) than a problem of base image, right?

Then, thanks to commit messages in the mailing list, I can trace that Preferences class>>#soundsEnabled - which is a EToys thing - was added in Trunk: System-tfel.902.mcz (which itself is a merge with System-tfel.882).

But unfortunately, I can't easily trace when this message was removed in favour of a doesNotUnderstand: solution...
Maybe it was removed at a time when the mailing list reports were not functional?
Or maybe, the changes were not reported because too long...
(That's a bad feature IMO, on the assumption that code should never be too long, we should not need any such guard anyway...).

The thing to do before/after loading such EToys like extension is to perform Etoys like initialization, and that could well be a responsibility of extension code, rather than of base image. So maybe it's not a problem of Trunk by itself...
The question is how do we advertize the package maintainers about these new responsibilities caused by evolutions of Trunk (understand evolution as shrinking/simplifying)?


Reply | Threaded
Open this post in threaded view
|

Re: [BUG]Preferences class(Object)>>doesNotUnderstand: #soundsEnabled

Nicolas Cellier


2018-08-16 15:13 GMT+02:00 Edgar J. De Cleene <[hidden email]>:
First, thanks for feedback.
Now I should be the Mantis coordinator and we have now a 5.2 project for made bug reports.
I send another mail asking for how to have a easy mail send from inside Squeak.
Take my ail about soundsEnabled as proof of collecting info for made a Mantis report.
The error comes from importing my old SmartTrashMorph, a long time ago when you throw some morph on Trash a sound is produced.

SoundService soundEnabled is which we have now , so no bug only need change old code
>

 
Still, we have a responsibility to document what are the major changes and what are the expected uncompatibilities, or even better, the typical refactorings expected from external (client) code...

Even better if we have (semi) automated rewrite rules like promoted by Pharo in case of deprecation.

I would expect to read about this in the release notes, but's it's hard to gather just before releasing if we failed to collect those while we were changing the core classes...