[squeak-dev] [BUG]Preferences class(Object)>>doesNotUnderstand: #soundsEnabled
Nicolas Cellier
nicolas.cellier.aka.nice at gmail.com
Thu Aug 16 12:51:24 UTC 2018
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 <edgardec2005 at gmail.com>:
> 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 at 508 649 at 509 mouseEnter red 59004]
> hand: [3463596]a HandMorph(3463596)
> firstSub: [3563712]a Planet(3563712)
> Receiver's instance variables:
> bounds: 645 at 461 corner: 720 at 533
> owner: [2434915]a PasteUpMorph(2434915) [world]
> submorphs: #()
> fullBounds: 645 at 461 corner: 720 at 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 at 508 649 at 509 mouseEnter red 59004]
> Receiver's instance variables:
> bounds: 645 at 461 corner: 720 at 533
> owner: [2434915]a PasteUpMorph(2434915) [world]
> submorphs: #()
> fullBounds: 645 at 461 corner: 720 at 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 at 508 649 at 509 mouseEnter red 59004]
> Receiver's instance variables:
> bounds: 645 at 461 corner: 720 at 533
> owner: [2434915]a PasteUpMorph(2434915) [world]
> submorphs: #()
> fullBounds: 645 at 461 corner: 720 at 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 at 508 649 at 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 at 509
> handler: nil
> wasHandled: true
> wasIgnored: false
> startPoint: 649 at 508
> trail: {649 at 509}
>
> MouseMoveEvent>>sentTo:
> Receiver: [649 at 508 649 at 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 at 509
> handler: nil
> wasHandled: true
> wasIgnored: false
> startPoint: 649 at 508
> trail: {649 at 509}
>
> SmartTrashCanMorph(Morph)>>handleEvent:
> Receiver: a TrashCanMorph
> Arguments and temporary variables:
> anEvent: [649 at 508 649 at 509 mouseEnter red 59004]
> filteredEvent: [649 at 508 649 at 509 mouseEnter red 59004]
> Receiver's instance variables:
> bounds: 645 at 461 corner: 720 at 533
> owner: [2434915]a PasteUpMorph(2434915) [world]
> submorphs: #()
> fullBounds: 645 at 461 corner: 720 at 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 at 448 corner: 456 at 464
> owner: [2434915]a PasteUpMorph(2434915) [world]
> submorphs: #()
> fullBounds: 440 at 448 corner: 456 at 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 at 448 mouseUp ( red ) 116575]
> targetOffset: 45 at 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 at 0 corner: 1027 at 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
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20180816/e297b37b/attachment.html>
More information about the Squeak-dev
mailing list
|