<div dir="ltr"><div>Hi Edgar,</div><div>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?<br></div><div><br></div><div>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).</div><div><br></div><div>But unfortunately, I can't easily trace when this message was removed in favour of a doesNotUnderstand: solution...</div><div>Maybe it was removed at a time when the mailing list reports were not functional?</div><div>Or maybe, the changes were not reported because too long...</div><div>(That's a bad feature IMO, on the assumption that code should never be too long, we should not need any such guard anyway...).</div><div><br></div><div>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...</div><div>The question is how do we advertize the package maintainers about these new responsibilities caused by evolutions of Trunk (understand evolution as shrinking/simplifying)?<br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2018-08-16 13:26 GMT+02:00 Edgar J. De Cleene <span dir="ltr"><<a href="mailto:edgardec2005@gmail.com" target="_blank">edgardec2005@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Moving a Morph to TrashMorph<br>
16 August 2018 8:19:32.233754 am<br>
<br>
VM: Mac OS - Smalltalk<br>
Image: Squeak5.2alpha [latest update: #18136]<br>
<br>
SecurityManager state:<br>
Restricted: false<br>
FileAccess: true<br>
SocketAccess: true<br>
Working Dir /Users/edgardecleene/<wbr>Documents/MagallanesSqueak/<wbr>5dot2<br>
Trusted Dir /foobar/tooBar/forSqueak/<wbr>bogus/<br>
Untrusted Dir <br>
/Users/edgardecleene/Library/<wbr>Preferences/Squeak/Internet/<wbr>Untrusted<br>
<br>
Preferences class(Object)>><wbr>doesNotUnderstand: #soundsEnabled<br>
    Receiver: Preferences<br>
    Arguments and temporary variables:<br>
        aMessage:     soundsEnabled<br>
        exception:     MessageNotUnderstood: Preferences<br>
class>>soundsEnabled<br>
        resumeValue:     nil<br>
    Receiver's instance variables:<br>
        superclass:     Object<br>
        methodDict:     [2109647]a MethodDictionary()<br>
        format:     0<br>
        instanceVariables:     nil<br>
        organization:     ('as yet unclassified')<br>
<br>
        subclasses:     {ServicePreferences . PreferencesTestPreferences}<br>
        name:     #Preferences<br>
        classPool:     [2247793]a Dictionary(#DesktopColor->(<wbr>Color r: 0.742<br>
g: 1 b: 0.839) ...etc...<br>
        sharedPools:     nil<br>
        environment:     Smalltalk<br>
        category:     #'System-Preferences'<br>
        preferencesDictionary:     [575529]an IdentityDictionary(size 311)<br>
<br>
[] in Preferences class>>doesNotUnderstand: #soundsEnabled<br>
    Receiver: Preferences<br>
    Arguments and temporary variables:<br>
        aMessage:     soundsEnabled<br>
    Receiver's instance variables:<br>
        superclass:     Object<br>
        methodDict:     [2109647]a MethodDictionary()<br>
        format:     0<br>
        instanceVariables:     nil<br>
        organization:     ('as yet unclassified')<br>
<br>
        subclasses:     {ServicePreferences . PreferencesTestPreferences}<br>
        name:     #Preferences<br>
        classPool:     [2247793]a Dictionary(#DesktopColor->(<wbr>Color r: 0.742<br>
g: 1 b: 0.839) ...etc...<br>
        sharedPools:     nil<br>
        environment:     Smalltalk<br>
        category:     #'System-Preferences'<br>
        preferencesDictionary:     [575529]an IdentityDictionary(size 311)<br>
<br>
[] in Preferences class>>valueOfPreference:<wbr>ifAbsent:<br>
    Receiver: Preferences<br>
    Arguments and temporary variables:<br>
<<error during printing><br>
    Receiver's instance variables:<br>
        superclass:     Object<br>
        methodDict:     [2109647]a MethodDictionary()<br>
        format:     0<br>
        instanceVariables:     nil<br>
        organization:     ('as yet unclassified')<br>
<br>
        subclasses:     {ServicePreferences . PreferencesTestPreferences}<br>
        name:     #Preferences<br>
        classPool:     [2247793]a Dictionary(#DesktopColor->(<wbr>Color r: 0.742<br>
g: 1 b: 0.839) ...etc...<br>
        sharedPools:     nil<br>
        environment:     Smalltalk<br>
        category:     #'System-Preferences'<br>
        preferencesDictionary:     [575529]an IdentityDictionary(size 311)<br>
<br>
IdentityDictionary(Dictionary)<wbr>>>at:ifAbsent:<br>
    Receiver: [575529]an IdentityDictionary(size 311)<br>
    Arguments and temporary variables:<br>
        key:     #soundsEnabled<br>
        aBlock:     [closure] in Preferences<br>
class>>valueOfPreference:<wbr>ifAbsent:<br>
    Receiver's instance variables:<br>
        tally:     311<br>
        array:     {#'PreferencesTestExample>><wbr>textPref'->[2348341]a<br>
PragmaPreference#'Textu...etc.<wbr>..<br>
<br>
Preferences class>>preferenceAt:ifAbsent:<br>
    Receiver: Preferences<br>
    Arguments and temporary variables:<br>
        aSymbol:     #soundsEnabled<br>
        aBlock:     [closure] in Preferences<br>
class>>valueOfPreference:<wbr>ifAbsent:<br>
    Receiver's instance variables:<br>
        superclass:     Object<br>
        methodDict:     [2109647]a MethodDictionary()<br>
        format:     0<br>
        instanceVariables:     nil<br>
        organization:     ('as yet unclassified')<br>
<br>
        subclasses:     {ServicePreferences . PreferencesTestPreferences}<br>
        name:     #Preferences<br>
        classPool:     [2247793]a Dictionary(#DesktopColor->(<wbr>Color r: 0.742<br>
g: 1 b: 0.839) ...etc...<br>
        sharedPools:     nil<br>
        environment:     Smalltalk<br>
        category:     #'System-Preferences'<br>
        preferencesDictionary:     [575529]an IdentityDictionary(size 311)<br>
<br>
Preferences class>>valueOfPreference:<wbr>ifAbsent:<br>
    Receiver: Preferences<br>
    Arguments and temporary variables:<br>
        aPreferenceSymbol:     #soundsEnabled<br>
        block:     [closure] in Preferences class>>doesNotUnderstand:<br>
#soundsEnabled<br>
    Receiver's instance variables:<br>
        superclass:     Object<br>
        methodDict:     [2109647]a MethodDictionary()<br>
        format:     0<br>
        instanceVariables:     nil<br>
        organization:     ('as yet unclassified')<br>
<br>
        subclasses:     {ServicePreferences . PreferencesTestPreferences}<br>
        name:     #Preferences<br>
        classPool:     [2247793]a Dictionary(#DesktopColor->(<wbr>Color r: 0.742<br>
g: 1 b: 0.839) ...etc...<br>
        sharedPools:     nil<br>
        environment:     Smalltalk<br>
        category:     #'System-Preferences'<br>
        preferencesDictionary:     [575529]an IdentityDictionary(size 311)<br>
<br>
Preferences class>>doesNotUnderstand: #soundsEnabled<br>
    Receiver: Preferences<br>
    Arguments and temporary variables:<br>
        aMessage:     soundsEnabled<br>
    Receiver's instance variables:<br>
        superclass:     Object<br>
        methodDict:     [2109647]a MethodDictionary()<br>
        format:     0<br>
        instanceVariables:     nil<br>
        organization:     ('as yet unclassified')<br>
<br>
        subclasses:     {ServicePreferences . PreferencesTestPreferences}<br>
        name:     #Preferences<br>
        classPool:     [2247793]a Dictionary(#DesktopColor->(<wbr>Color r: 0.742<br>
g: 1 b: 0.839) ...etc...<br>
        sharedPools:     nil<br>
        environment:     Smalltalk<br>
        category:     #'System-Preferences'<br>
        preferencesDictionary:     [575529]an IdentityDictionary(size 311)<br>
<br>
SmartTrashCanMorph(<wbr>TrashCanMorph)>>mouseEnter:<br>
    Receiver: a TrashCanMorph<br>
    Arguments and temporary variables:<br>
        event:     [649@508 649@509 mouseEnter red 59004]<br>
        hand:     [3463596]a HandMorph(3463596)<br>
        firstSub:     [3563712]a Planet(3563712)<br>
    Receiver's instance variables:<br>
        bounds:     645@461 corner: 720@533<br>
        owner:     [2434915]a PasteUpMorph(2434915) [world]<br>
        submorphs:     #()<br>
        fullBounds:     645@461 corner: 720@533<br>
        color:     Color blue<br>
        extension:     [1392989]a MorphExtension (1392989) [balloonText]<br>
[externalName = T...etc...<br>
        image:     Form(72x72x32)<br>
        offImage:     Form(72x72x32)<br>
        pressedImage:     Form(72x72x32)<br>
        state:     #off<br>
        target:     nil<br>
        actionSelector:     #flash<br>
        arguments:     #()<br>
        actWhen:     #buttonUp<br>
        label:     nil<br>
        font:     nil<br>
        textColor:     nil<br>
<br>
SmartTrashCanMorph(<wbr>TrashCanMorph)>><wbr>mouseEnterDragging:<br>
    Receiver: a TrashCanMorph<br>
    Arguments and temporary variables:<br>
        evt:     [649@508 649@509 mouseEnter red 59004]<br>
    Receiver's instance variables:<br>
        bounds:     645@461 corner: 720@533<br>
        owner:     [2434915]a PasteUpMorph(2434915) [world]<br>
        submorphs:     #()<br>
        fullBounds:     645@461 corner: 720@533<br>
        color:     Color blue<br>
        extension:     [1392989]a MorphExtension (1392989) [balloonText]<br>
[externalName = T...etc...<br>
        image:     Form(72x72x32)<br>
        offImage:     Form(72x72x32)<br>
        pressedImage:     Form(72x72x32)<br>
        state:     #off<br>
        target:     nil<br>
        actionSelector:     #flash<br>
        arguments:     #()<br>
        actWhen:     #buttonUp<br>
        label:     nil<br>
        font:     nil<br>
        textColor:     nil<br>
<br>
SmartTrashCanMorph(Morph)>><wbr>handleMouseEnter:<br>
    Receiver: a TrashCanMorph<br>
    Arguments and temporary variables:<br>
        anEvent:     [649@508 649@509 mouseEnter red 59004]<br>
    Receiver's instance variables:<br>
        bounds:     645@461 corner: 720@533<br>
        owner:     [2434915]a PasteUpMorph(2434915) [world]<br>
        submorphs:     #()<br>
        fullBounds:     645@461 corner: 720@533<br>
        color:     Color blue<br>
        extension:     [1392989]a MorphExtension (1392989) [balloonText]<br>
[externalName = T...etc...<br>
        image:     Form(72x72x32)<br>
        offImage:     Form(72x72x32)<br>
        pressedImage:     Form(72x72x32)<br>
        state:     #off<br>
        target:     nil<br>
        actionSelector:     #flash<br>
        arguments:     #()<br>
        actWhen:     #buttonUp<br>
        label:     nil<br>
        font:     nil<br>
        textColor:     nil<br>
<br>
MouseMoveEvent(MouseEvent)>><wbr>sentTo:<br>
    Receiver: [649@508 649@509 mouseEnter red 59004]<br>
    Arguments and temporary variables:<br>
        anObject:     a TrashCanMorph<br>
    Receiver's instance variables:<br>
        timeStamp:     59004<br>
        source:     [3463596]a HandMorph(3463596)<br>
        type:     #mouseEnter<br>
        buttons:     4<br>
        position:     649@509<br>
        handler:     nil<br>
        wasHandled:     true<br>
        wasIgnored:     false<br>
        startPoint:     649@508<br>
        trail:     {649@509}<br>
<br>
MouseMoveEvent>>sentTo:<br>
    Receiver: [649@508 649@509 mouseEnter red 59004]<br>
    Arguments and temporary variables:<br>
        anObject:     a TrashCanMorph<br>
    Receiver's instance variables:<br>
        timeStamp:     59004<br>
        source:     [3463596]a HandMorph(3463596)<br>
        type:     #mouseEnter<br>
        buttons:     4<br>
        position:     649@509<br>
        handler:     nil<br>
        wasHandled:     true<br>
        wasIgnored:     false<br>
        startPoint:     649@508<br>
        trail:     {649@509}<br>
<br>
SmartTrashCanMorph(Morph)>><wbr>handleEvent:<br>
    Receiver: a TrashCanMorph<br>
    Arguments and temporary variables:<br>
        anEvent:     [649@508 649@509 mouseEnter red 59004]<br>
        filteredEvent:     [649@508 649@509 mouseEnter red 59004]<br>
    Receiver's instance variables:<br>
        bounds:     645@461 corner: 720@533<br>
        owner:     [2434915]a PasteUpMorph(2434915) [world]<br>
        submorphs:     #()<br>
        fullBounds:     645@461 corner: 720@533<br>
        color:     Color blue<br>
        extension:     [1392989]a MorphExtension (1392989) [balloonText]<br>
[externalName = T...etc...<br>
        image:     Form(72x72x32)<br>
        offImage:     Form(72x72x32)<br>
        pressedImage:     Form(72x72x32)<br>
        state:     #off<br>
        target:     nil<br>
        actionSelector:     #flash<br>
        arguments:     #()<br>
        actWhen:     #buttonUp<br>
        label:     nil<br>
        font:     nil<br>
        textColor:     nil<br>
<br>
[] in MouseOverHandler>><wbr>processMouseOver:<br>
    Receiver: [1672941]a MouseOverHandler<br>
    Arguments and temporary variables:<br>
<<error during printing><br>
    Receiver's instance variables:<br>
        mouseOverMorphs:     {[81950]a MenuItemMorph(81950)'do it (d)' .<br>
[2532074]a MenuMorph...etc...<br>
        enteredMorphs:     [1407157]a WriteStream<br>
        overMorphs:     [2609100]a WriteStream<br>
        leftMorphs:     [3890734]an OrderedCollection()<br>
<br>
Array(SequenceableCollection)><wbr>>reverseDo:<br>
    Receiver: {a TrashCanMorph}<br>
    Arguments and temporary variables:<br>
        aBlock:     [closure] in MouseOverHandler>><wbr>processMouseOver:<br>
        index:     1<br>
    Receiver's instance variables:<br>
{a TrashCanMorph}<br>
<br>
MouseOverHandler>><wbr>processMouseOver:<br>
    Receiver: [1672941]a MouseOverHandler<br>
    Arguments and temporary variables:<br>
<<error during printing><br>
    Receiver's instance variables:<br>
        mouseOverMorphs:     {[81950]a MenuItemMorph(81950)'do it (d)' .<br>
[2532074]a MenuMorph...etc...<br>
        enteredMorphs:     [1407157]a WriteStream<br>
        overMorphs:     [2609100]a WriteStream<br>
        leftMorphs:     [3890734]an OrderedCollection()<br>
<br>
HandMorph>>processEvents<br>
    Receiver: [3463596]a HandMorph(3463596)<br>
    Arguments and temporary variables:<br>
        evt:     nil<br>
        evtBuf:     nil<br>
        type:     nil<br>
        hadAny:     false<br>
    Receiver's instance variables:<br>
        bounds:     440@448 corner: 456@464<br>
        owner:     [2434915]a PasteUpMorph(2434915) [world]<br>
        submorphs:     #()<br>
        fullBounds:     440@448 corner: 456@464<br>
        color:     Color blue<br>
        extension:     [968354]a MorphExtension (968354) [eventHandler =<br>
[1227208]an EventH...etc...<br>
        mouseFocus:     nil<br>
        keyboardFocus:     [3890664]a TextMorphForEditView(3890664)<br>
        eventListeners:     nil<br>
        mouseListeners:     nil<br>
        keyboardListeners:     [773911]a WeakArray([388881]a<br>
KeyboardStateWatcher)<br>
        eventCaptureFilters:     nil<br>
        mouseCaptureFilters:     nil<br>
        keyboardCaptureFilters:     [1204688]a WeakArray([3463596]a<br>
HandMorph(3463596))<br>
        mouseClickState:     nil<br>
        mouseOverHandler:     [1672941]a MouseOverHandler<br>
        mouseWheelState:     [1286858]a MouseWheelState<br>
        lastMouseEvent:     [440@448 mouseUp ( red ) 116575]<br>
        targetOffset:     45@22<br>
        damageRecorder:     [2398335]a DamageRecorder<br>
        cacheCanvas:     nil<br>
        cachedCanvasHasHoles:     true<br>
        temporaryCursor:     nil<br>
        temporaryCursorOffset:     nil<br>
        hardwareCursor:     nil<br>
        hasChanged:     true<br>
        savedPatch:     nil<br>
        userInitials:     ''<br>
        lastEventBuffer:     #(1 116575 440 448 0 0 1 1)<br>
        genieGestureProcessor:     nil<br>
        keyboardInterpreter:     [2155632]a MacUnicodeInputInterpreter<br>
<br>
[] in WorldState>>doOneCycleNowFor:<br>
    Receiver: [785163]a WorldState<br>
    Arguments and temporary variables:<br>
<<error during printing><br>
    Receiver's instance variables:<br>
        hands:     {[3463596]a HandMorph(3463596)}<br>
        activeHand:     [3463596]a HandMorph(3463596)<br>
        viewBox:     0@0 corner: 1027@768<br>
        canvas:     [2517135]a FormCanvas on: DisplayScreen(1027x768x32)<br>
        damageRecorder:     [1738851]a DamageRecorder<br>
        stepList:     [3160142]a Heap(StepMessage(#stepAt: -> [490998]an<br>
ImageMorph<dot>(49...etc...<br>
        lastStepTime:     3711871172205<br>
        lastStepMessage:     nil<br>
        lastCycleTime:     3711871172226<br>
        commandHistory:     [2625821]a CommandHistory<br>
        alarms:     [3902213]a MorphicAlarmQueue<br>
        lastAlarmTime:     3711871172205<br>
        remoteServer:     nil<br>
        multiCanvas:     nil<br>
        interCycleDelay:     [2363900]a Delay(20 msecs)<br>
<br>
Array(SequenceableCollection)><wbr>>do:<br>
    Receiver: {[3463596]a HandMorph(3463596)}<br>
    Arguments and temporary variables:<br>
        aBlock:     [closure] in WorldState>>doOneCycleNowFor:<br>
        index:     1<br>
        indexLimiT:     1<br>
    Receiver's instance variables:<br>
{[3463596]a HandMorph(3463596)}<br>
<br>
<br>
--- The full stack ---<br>
Preferences class(Object)>><wbr>doesNotUnderstand: #soundsEnabled<br>
[] in Preferences class>>doesNotUnderstand: #soundsEnabled<br>
[] in Preferences class>>valueOfPreference:<wbr>ifAbsent:<br>
IdentityDictionary(Dictionary)<wbr>>>at:ifAbsent:<br>
Preferences class>>preferenceAt:ifAbsent:<br>
Preferences class>>valueOfPreference:<wbr>ifAbsent:<br>
Preferences class>>doesNotUnderstand: #soundsEnabled<br>
SmartTrashCanMorph(<wbr>TrashCanMorph)>>mouseEnter:<br>
SmartTrashCanMorph(<wbr>TrashCanMorph)>><wbr>mouseEnterDragging:<br>
SmartTrashCanMorph(Morph)>><wbr>handleMouseEnter:<br>
MouseMoveEvent(MouseEvent)>><wbr>sentTo:<br>
MouseMoveEvent>>sentTo:<br>
SmartTrashCanMorph(Morph)>><wbr>handleEvent:<br>
[] in MouseOverHandler>><wbr>processMouseOver:<br>
Array(SequenceableCollection)><wbr>>reverseDo:<br>
MouseOverHandler>><wbr>processMouseOver:<br>
HandMorph>>processEvents<br>
[] in WorldState>>doOneCycleNowFor:<br>
Array(SequenceableCollection)><wbr>>do:<br>
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<br>
WorldState>>handsDo:<br>
WorldState>>doOneCycleNowFor:<br>
WorldState>>doOneCycleFor:<br>
PasteUpMorph>>doOneCycle<br>
[] in MorphicProject>><wbr>spawnNewProcess<br>
[] in BlockClosure>>newProcess<br>
<br>
<br>
<br>
<br>
</blockquote></div><br></div>