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 |
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 |
2018-08-16 14:51 GMT+02:00 Nicolas Cellier <[hidden email]>:
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...
|
In reply to this post by Nicolas Cellier
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, |
2018-08-16 15:13 GMT+02:00 Edgar J. De Cleene <[hidden email]>:
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... |
Free forum by Nabble | Edit this page |