<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>