Safe and Quit can be dangerous

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

Safe and Quit can be dangerous

Lukas Renggli
I clicked on 'safe and quit' in the latest Pharo 1.0rc1 image. Just
before the window closed I saw a debugger popping up and now my image
is broken. The VM crashes shortly after being able to interact with
it. This is not the first time that happened to me.

Below the stack trace of the debugger.

Cheers,
Lukas

MessageNotUnderstood: receiver of "isEmpty" is nil
22 November 2009 1:24:56 pm

VM: Mac OS - intel - 1062 - Squeak3.8.1 of '28 Aug 2006' [latest
update: #6747] Squeak VM 4.1.1b2
Image: Pharo1.0rc1 [Latest update: #10492]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /Users/renggli/University/pharo/PetitParser
Trusted Dir /foobar/tooBar/forSqueak/bogus
Untrusted Dir /Users/renggli/Library/Preferences/Squeak/Internet/My Squeak

UndefinedObject(Object)>>doesNotUnderstand: #isEmpty
        Receiver: nil
        Arguments and temporary variables:
                aMessage: isEmpty
                exception: MessageNotUnderstood: receiver of "isEmpty" is nil
                resumeValue: nil
        Receiver's instance variables:
nil

MouseOverHandler>>processMouseOver:
        Receiver: a MouseOverHandler
        Arguments and temporary variables:
<<error during printing>
        Receiver's instance variables:
                mouseOverMorphs: an Array(a PluggableStandardWindow(1005) a
PasteUpMorph(1622) ...etc...
                enteredMorphs: nil
                overMorphs: nil
                leftMorphs: nil

HandMorph>>processEvents
        Receiver: a HandMorph(3216)
        Arguments and temporary variables:
                evt: nil
                evtBuf: nil
                type: nil
                hadAny: nil
        Receiver's instance variables:
                bounds: 120@108 corner: 136@124
                owner: a PasteUpMorph(1622) [world]
                submorphs: #()
                fullBounds: 120@108 corner: 136@124
                color: Color blue
                extension: a MorphExtension (539) [eventHandler = an EventHandler]
                mouseFocus: nil
                keyboardFocus: a PluggableButtonMorph(2190)
                eventListeners: nil
                mouseListeners: nil
                keyboardListeners: nil
                mouseClickState: nil
                mouseOverHandler: a MouseOverHandler
                lastMouseEvent: [120@108 mouseUp 2857590 nil]
                targetOffset: 29@11
                damageRecorder: a DamageRecorder
                cacheCanvas: nil
                cachedCanvasHasHoles: true
                temporaryCursor: nil
                temporaryCursorOffset: nil
                hardwareCursor: nil
                hasChanged: true
                savedPatch: nil
                userInitials: ''
                lastEventBuffer: #(1 2857590 120 108 0 0 0 1)
                lastKeyScanCode: 35
                combinedChar: nil

[] in WorldState>>doOneCycleNowFor:
        Receiver: a WorldState
        Arguments and temporary variables:
                h: a HandMorph(3216)
        Receiver's instance variables:
                hands: an Array(a HandMorph(3216))
                viewBox: 0@0 corner: 1314@916
                canvas: a FormCanvas on: DisplayScreen(1314x916x32)
                damageRecorder: a DamageRecorder
                stepList: a Heap(StepMessage(#stepAt: -> a PreDebugWindow(1012))(a
PreDebugWind...etc...
                lastStepTime: 2857650
                lastStepMessage: nil
                lastCycleTime: 2857677
                commandHistory: a CommandHistory
                alarms: a Heap()
                lastAlarmTime: 2857650

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

WorldState>>handsDo:
        Receiver: a WorldState
        Arguments and temporary variables:
                aBlock: [closure] in WorldState>>doOneCycleNowFor:
        Receiver's instance variables:
                hands: an Array(a HandMorph(3216))
                viewBox: 0@0 corner: 1314@916
                canvas: a FormCanvas on: DisplayScreen(1314x916x32)
                damageRecorder: a DamageRecorder
                stepList: a Heap(StepMessage(#stepAt: -> a PreDebugWindow(1012))(a
PreDebugWind...etc...
                lastStepTime: 2857650
                lastStepMessage: nil
                lastCycleTime: 2857677
                commandHistory: a CommandHistory
                alarms: a Heap()
                lastAlarmTime: 2857650

WorldState>>doOneCycleNowFor:
        Receiver: a WorldState
        Arguments and temporary variables:
                aWorld: a PasteUpMorph(1622) [world]
        Receiver's instance variables:
                hands: an Array(a HandMorph(3216))
                viewBox: 0@0 corner: 1314@916
                canvas: a FormCanvas on: DisplayScreen(1314x916x32)
                damageRecorder: a DamageRecorder
                stepList: a Heap(StepMessage(#stepAt: -> a PreDebugWindow(1012))(a
PreDebugWind...etc...
                lastStepTime: 2857650
                lastStepMessage: nil
                lastCycleTime: 2857677
                commandHistory: a CommandHistory
                alarms: a Heap()
                lastAlarmTime: 2857650

WorldState>>doOneCycleFor:
        Receiver: a WorldState
        Arguments and temporary variables:
                aWorld: a PasteUpMorph(1622) [world]
        Receiver's instance variables:
                hands: an Array(a HandMorph(3216))
                viewBox: 0@0 corner: 1314@916
                canvas: a FormCanvas on: DisplayScreen(1314x916x32)
                damageRecorder: a DamageRecorder
                stepList: a Heap(StepMessage(#stepAt: -> a PreDebugWindow(1012))(a
PreDebugWind...etc...
                lastStepTime: 2857650
                lastStepMessage: nil
                lastCycleTime: 2857677
                commandHistory: a CommandHistory
                alarms: a Heap()
                lastAlarmTime: 2857650

PasteUpMorph>>doOneCycle
        Receiver: a PasteUpMorph(1622) [world]
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: 0@0 corner: 1314@916
                owner: nil
                submorphs: an Array(a TaskbarMorph(3095) a PreDebugWindow(1012) a
SystemWindow(...etc...
                fullBounds: nil
                color: (Color r: 0.97 g: 0.98 b: 1.0)
                extension: a MorphExtension (2543) [eventHandler = an EventHandler]
 [other:  (...etc...
                borderWidth: 0
                borderColor: (Color r: 0.03 g: 0.02 b: 0.0)
                presenter: a Presenter (1246)
                model: a MorphicModel(1926)
                cursor: 1
                padding: 3
                backgroundMorph: nil
                isPartsBin: nil
                autoLineLayout: false
                indicateCursor: nil
                resizeToFit: nil
                wantsMouseOverHalos: nil
                worldState: a WorldState
                griddingOn: nil

[] in Project class>>spawnNewProcess
        Receiver: Project
        Arguments and temporary variables:

        Receiver's instance variables:
                superclass: Model
                methodDict: a MethodDictionary(size 167)
                format: 172
                instanceVariables: #('world' 'changeSet' 'transcript'
'parentProject' 'previous...etc...
                organization: ('*Polymorph-Widgets'
assureTaskbarPresenceMatchesPreference crea...etc...
                subclasses: nil
                name: #Project
                classPool: a Dictionary(#AllProjects->an OrderedCollection(a
Project(Unnamed)) ...etc...
                sharedPools: nil
                environment: Smalltalk
                category: #'System-Support'
                traitComposition: {}
                localSelectors: nil

[] in BlockClosure>>newProcess
        Receiver: [closure] in Project class>>spawnNewProcess
        Arguments and temporary variables:

        Receiver's instance variables:
                outerContext: Project class>>spawnNewProcess
                startpc: 53
                numArgs: 0


--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand: #isEmpty
MouseOverHandler>>processMouseOver:
HandMorph>>processEvents
[] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in Project class>>spawnNewProcess
[] in BlockClosure>>newProcess
------------------------------------------------------------

--
Lukas Renggli
http://www.lukas-renggli.ch

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Safe and Quit can be dangerous

Schwab,Wilhelm K
Lukas,

I wish you good luck in recovering your work; hopefully the change log will allow you to avoid losses.  Perhaps a toolsmith among us can take a look at Ian Bartholomew's Chunk Browser for Dolphin and do something similar on Pharo; it is a very helpful tool.  Another one I would like to see is Ghoul, which provides a debugger-like view of Dolphin's crash logs.

Not at all to say "I told you so," I have been arguing against save+quit for years, precissely because I was shafted by it in the past.  That was on Smalltalk/V, but I have been skiddish about it ever since.  If something bad happens post-save, you have no chance to fix it.  In your case, the image might have melted down anyway, so good backups and recovery tools are a must.

Bill


-----Original Message-----
From: [hidden email] [mailto:[hidden email]] On Behalf Of Lukas Renggli
Sent: Sunday, November 22, 2009 11:02 AM
To: Pharo Development
Subject: [Pharo-project] Safe and Quit can be dangerous

I clicked on 'safe and quit' in the latest Pharo 1.0rc1 image. Just before the window closed I saw a debugger popping up and now my image is broken. The VM crashes shortly after being able to interact with it. This is not the first time that happened to me.

Below the stack trace of the debugger.

Cheers,
Lukas

MessageNotUnderstood: receiver of "isEmpty" is nil
22 November 2009 1:24:56 pm

VM: Mac OS - intel - 1062 - Squeak3.8.1 of '28 Aug 2006' [latest
update: #6747] Squeak VM 4.1.1b2
Image: Pharo1.0rc1 [Latest update: #10492]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /Users/renggli/University/pharo/PetitParser
Trusted Dir /foobar/tooBar/forSqueak/bogus Untrusted Dir /Users/renggli/Library/Preferences/Squeak/Internet/My Squeak

UndefinedObject(Object)>>doesNotUnderstand: #isEmpty
        Receiver: nil
        Arguments and temporary variables:
                aMessage: isEmpty
                exception: MessageNotUnderstood: receiver of "isEmpty" is nil
                resumeValue: nil
        Receiver's instance variables:
nil

MouseOverHandler>>processMouseOver:
        Receiver: a MouseOverHandler
        Arguments and temporary variables:
<<error during printing>
        Receiver's instance variables:
                mouseOverMorphs: an Array(a PluggableStandardWindow(1005) a
PasteUpMorph(1622) ...etc...
                enteredMorphs: nil
                overMorphs: nil
                leftMorphs: nil

HandMorph>>processEvents
        Receiver: a HandMorph(3216)
        Arguments and temporary variables:
                evt: nil
                evtBuf: nil
                type: nil
                hadAny: nil
        Receiver's instance variables:
                bounds: 120@108 corner: 136@124
                owner: a PasteUpMorph(1622) [world]
                submorphs: #()
                fullBounds: 120@108 corner: 136@124
                color: Color blue
                extension: a MorphExtension (539) [eventHandler = an EventHandler]
                mouseFocus: nil
                keyboardFocus: a PluggableButtonMorph(2190)
                eventListeners: nil
                mouseListeners: nil
                keyboardListeners: nil
                mouseClickState: nil
                mouseOverHandler: a MouseOverHandler
                lastMouseEvent: [120@108 mouseUp 2857590 nil]
                targetOffset: 29@11
                damageRecorder: a DamageRecorder
                cacheCanvas: nil
                cachedCanvasHasHoles: true
                temporaryCursor: nil
                temporaryCursorOffset: nil
                hardwareCursor: nil
                hasChanged: true
                savedPatch: nil
                userInitials: ''
                lastEventBuffer: #(1 2857590 120 108 0 0 0 1)
                lastKeyScanCode: 35
                combinedChar: nil

[] in WorldState>>doOneCycleNowFor:
        Receiver: a WorldState
        Arguments and temporary variables:
                h: a HandMorph(3216)
        Receiver's instance variables:
                hands: an Array(a HandMorph(3216))
                viewBox: 0@0 corner: 1314@916
                canvas: a FormCanvas on: DisplayScreen(1314x916x32)
                damageRecorder: a DamageRecorder
                stepList: a Heap(StepMessage(#stepAt: -> a PreDebugWindow(1012))(a
PreDebugWind...etc...
                lastStepTime: 2857650
                lastStepMessage: nil
                lastCycleTime: 2857677
                commandHistory: a CommandHistory
                alarms: a Heap()
                lastAlarmTime: 2857650

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

WorldState>>handsDo:
        Receiver: a WorldState
        Arguments and temporary variables:
                aBlock: [closure] in WorldState>>doOneCycleNowFor:
        Receiver's instance variables:
                hands: an Array(a HandMorph(3216))
                viewBox: 0@0 corner: 1314@916
                canvas: a FormCanvas on: DisplayScreen(1314x916x32)
                damageRecorder: a DamageRecorder
                stepList: a Heap(StepMessage(#stepAt: -> a PreDebugWindow(1012))(a
PreDebugWind...etc...
                lastStepTime: 2857650
                lastStepMessage: nil
                lastCycleTime: 2857677
                commandHistory: a CommandHistory
                alarms: a Heap()
                lastAlarmTime: 2857650

WorldState>>doOneCycleNowFor:
        Receiver: a WorldState
        Arguments and temporary variables:
                aWorld: a PasteUpMorph(1622) [world]
        Receiver's instance variables:
                hands: an Array(a HandMorph(3216))
                viewBox: 0@0 corner: 1314@916
                canvas: a FormCanvas on: DisplayScreen(1314x916x32)
                damageRecorder: a DamageRecorder
                stepList: a Heap(StepMessage(#stepAt: -> a PreDebugWindow(1012))(a
PreDebugWind...etc...
                lastStepTime: 2857650
                lastStepMessage: nil
                lastCycleTime: 2857677
                commandHistory: a CommandHistory
                alarms: a Heap()
                lastAlarmTime: 2857650

WorldState>>doOneCycleFor:
        Receiver: a WorldState
        Arguments and temporary variables:
                aWorld: a PasteUpMorph(1622) [world]
        Receiver's instance variables:
                hands: an Array(a HandMorph(3216))
                viewBox: 0@0 corner: 1314@916
                canvas: a FormCanvas on: DisplayScreen(1314x916x32)
                damageRecorder: a DamageRecorder
                stepList: a Heap(StepMessage(#stepAt: -> a PreDebugWindow(1012))(a
PreDebugWind...etc...
                lastStepTime: 2857650
                lastStepMessage: nil
                lastCycleTime: 2857677
                commandHistory: a CommandHistory
                alarms: a Heap()
                lastAlarmTime: 2857650

PasteUpMorph>>doOneCycle
        Receiver: a PasteUpMorph(1622) [world]
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: 0@0 corner: 1314@916
                owner: nil
                submorphs: an Array(a TaskbarMorph(3095) a PreDebugWindow(1012) a
SystemWindow(...etc...
                fullBounds: nil
                color: (Color r: 0.97 g: 0.98 b: 1.0)
                extension: a MorphExtension (2543) [eventHandler = an EventHandler]
 [other:  (...etc...
                borderWidth: 0
                borderColor: (Color r: 0.03 g: 0.02 b: 0.0)
                presenter: a Presenter (1246)
                model: a MorphicModel(1926)
                cursor: 1
                padding: 3
                backgroundMorph: nil
                isPartsBin: nil
                autoLineLayout: false
                indicateCursor: nil
                resizeToFit: nil
                wantsMouseOverHalos: nil
                worldState: a WorldState
                griddingOn: nil

[] in Project class>>spawnNewProcess
        Receiver: Project
        Arguments and temporary variables:

        Receiver's instance variables:
                superclass: Model
                methodDict: a MethodDictionary(size 167)
                format: 172
                instanceVariables: #('world' 'changeSet' 'transcript'
'parentProject' 'previous...etc...
                organization: ('*Polymorph-Widgets'
assureTaskbarPresenceMatchesPreference crea...etc...
                subclasses: nil
                name: #Project
                classPool: a Dictionary(#AllProjects->an OrderedCollection(a
Project(Unnamed)) ...etc...
                sharedPools: nil
                environment: Smalltalk
                category: #'System-Support'
                traitComposition: {}
                localSelectors: nil

[] in BlockClosure>>newProcess
        Receiver: [closure] in Project class>>spawnNewProcess
        Arguments and temporary variables:

        Receiver's instance variables:
                outerContext: Project class>>spawnNewProcess
                startpc: 53
                numArgs: 0


--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand: #isEmpty
MouseOverHandler>>processMouseOver:
HandMorph>>processEvents
[] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in Project class>>spawnNewProcess
[] in BlockClosure>>newProcess
------------------------------------------------------------

--
Lukas Renggli
http://www.lukas-renggli.ch

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Safe and Quit can be dangerous

Adrian Lienhard
In reply to this post by Lukas Renggli
This seems related to

http://code.google.com/p/pharo/issues/detail?id=889

which was only integrated in 1.1. I don't understand why we didn't put  
this in 1.0 too.

Adrian


On Nov 22, 2009, at 17:02 , Lukas Renggli wrote:

> I clicked on 'safe and quit' in the latest Pharo 1.0rc1 image. Just
> before the window closed I saw a debugger popping up and now my image
> is broken. The VM crashes shortly after being able to interact with
> it. This is not the first time that happened to me.
>
> Below the stack trace of the debugger.
>
> Cheers,
> Lukas
>
> MessageNotUnderstood: receiver of "isEmpty" is nil
> 22 November 2009 1:24:56 pm
>
> VM: Mac OS - intel - 1062 - Squeak3.8.1 of '28 Aug 2006' [latest
> update: #6747] Squeak VM 4.1.1b2
> Image: Pharo1.0rc1 [Latest update: #10492]
>
> SecurityManager state:
> Restricted: false
> FileAccess: true
> SocketAccess: true
> Working Dir /Users/renggli/University/pharo/PetitParser
> Trusted Dir /foobar/tooBar/forSqueak/bogus
> Untrusted Dir /Users/renggli/Library/Preferences/Squeak/Internet/My  
> Squeak
>
> UndefinedObject(Object)>>doesNotUnderstand: #isEmpty
> Receiver: nil
> Arguments and temporary variables:
> aMessage: isEmpty
> exception: MessageNotUnderstood: receiver of "isEmpty" is nil
> resumeValue: nil
> Receiver's instance variables:
> nil
>
> MouseOverHandler>>processMouseOver:
> Receiver: a MouseOverHandler
> Arguments and temporary variables:
> <<error during printing>
> Receiver's instance variables:
> mouseOverMorphs: an Array(a PluggableStandardWindow(1005) a
> PasteUpMorph(1622) ...etc...
> enteredMorphs: nil
> overMorphs: nil
> leftMorphs: nil
>
> HandMorph>>processEvents
> Receiver: a HandMorph(3216)
> Arguments and temporary variables:
> evt: nil
> evtBuf: nil
> type: nil
> hadAny: nil
> Receiver's instance variables:
> bounds: 120@108 corner: 136@124
> owner: a PasteUpMorph(1622) [world]
> submorphs: #()
> fullBounds: 120@108 corner: 136@124
> color: Color blue
> extension: a MorphExtension (539) [eventHandler = an EventHandler]
> mouseFocus: nil
> keyboardFocus: a PluggableButtonMorph(2190)
> eventListeners: nil
> mouseListeners: nil
> keyboardListeners: nil
> mouseClickState: nil
> mouseOverHandler: a MouseOverHandler
> lastMouseEvent: [120@108 mouseUp 2857590 nil]
> targetOffset: 29@11
> damageRecorder: a DamageRecorder
> cacheCanvas: nil
> cachedCanvasHasHoles: true
> temporaryCursor: nil
> temporaryCursorOffset: nil
> hardwareCursor: nil
> hasChanged: true
> savedPatch: nil
> userInitials: ''
> lastEventBuffer: #(1 2857590 120 108 0 0 0 1)
> lastKeyScanCode: 35
> combinedChar: nil
>
> [] in WorldState>>doOneCycleNowFor:
> Receiver: a WorldState
> Arguments and temporary variables:
> h: a HandMorph(3216)
> Receiver's instance variables:
> hands: an Array(a HandMorph(3216))
> viewBox: 0@0 corner: 1314@916
> canvas: a FormCanvas on: DisplayScreen(1314x916x32)
> damageRecorder: a DamageRecorder
> stepList: a Heap(StepMessage(#stepAt: -> a PreDebugWindow(1012))(a
> PreDebugWind...etc...
> lastStepTime: 2857650
> lastStepMessage: nil
> lastCycleTime: 2857677
> commandHistory: a CommandHistory
> alarms: a Heap()
> lastAlarmTime: 2857650
>
> Array(SequenceableCollection)>>do:
> Receiver: an Array(a HandMorph(3216))
> Arguments and temporary variables:
> aBlock: [closure] in WorldState>>doOneCycleNowFor:
> index: 1
> indexLimiT: 1
> Receiver's instance variables:
> an Array(a HandMorph(3216))
>
> WorldState>>handsDo:
> Receiver: a WorldState
> Arguments and temporary variables:
> aBlock: [closure] in WorldState>>doOneCycleNowFor:
> Receiver's instance variables:
> hands: an Array(a HandMorph(3216))
> viewBox: 0@0 corner: 1314@916
> canvas: a FormCanvas on: DisplayScreen(1314x916x32)
> damageRecorder: a DamageRecorder
> stepList: a Heap(StepMessage(#stepAt: -> a PreDebugWindow(1012))(a
> PreDebugWind...etc...
> lastStepTime: 2857650
> lastStepMessage: nil
> lastCycleTime: 2857677
> commandHistory: a CommandHistory
> alarms: a Heap()
> lastAlarmTime: 2857650
>
> WorldState>>doOneCycleNowFor:
> Receiver: a WorldState
> Arguments and temporary variables:
> aWorld: a PasteUpMorph(1622) [world]
> Receiver's instance variables:
> hands: an Array(a HandMorph(3216))
> viewBox: 0@0 corner: 1314@916
> canvas: a FormCanvas on: DisplayScreen(1314x916x32)
> damageRecorder: a DamageRecorder
> stepList: a Heap(StepMessage(#stepAt: -> a PreDebugWindow(1012))(a
> PreDebugWind...etc...
> lastStepTime: 2857650
> lastStepMessage: nil
> lastCycleTime: 2857677
> commandHistory: a CommandHistory
> alarms: a Heap()
> lastAlarmTime: 2857650
>
> WorldState>>doOneCycleFor:
> Receiver: a WorldState
> Arguments and temporary variables:
> aWorld: a PasteUpMorph(1622) [world]
> Receiver's instance variables:
> hands: an Array(a HandMorph(3216))
> viewBox: 0@0 corner: 1314@916
> canvas: a FormCanvas on: DisplayScreen(1314x916x32)
> damageRecorder: a DamageRecorder
> stepList: a Heap(StepMessage(#stepAt: -> a PreDebugWindow(1012))(a
> PreDebugWind...etc...
> lastStepTime: 2857650
> lastStepMessage: nil
> lastCycleTime: 2857677
> commandHistory: a CommandHistory
> alarms: a Heap()
> lastAlarmTime: 2857650
>
> PasteUpMorph>>doOneCycle
> Receiver: a PasteUpMorph(1622) [world]
> Arguments and temporary variables:
>
> Receiver's instance variables:
> bounds: 0@0 corner: 1314@916
> owner: nil
> submorphs: an Array(a TaskbarMorph(3095) a PreDebugWindow(1012) a
> SystemWindow(...etc...
> fullBounds: nil
> color: (Color r: 0.97 g: 0.98 b: 1.0)
> extension: a MorphExtension (2543) [eventHandler = an EventHandler]
> [other:  (...etc...
> borderWidth: 0
> borderColor: (Color r: 0.03 g: 0.02 b: 0.0)
> presenter: a Presenter (1246)
> model: a MorphicModel(1926)
> cursor: 1
> padding: 3
> backgroundMorph: nil
> isPartsBin: nil
> autoLineLayout: false
> indicateCursor: nil
> resizeToFit: nil
> wantsMouseOverHalos: nil
> worldState: a WorldState
> griddingOn: nil
>
> [] in Project class>>spawnNewProcess
> Receiver: Project
> Arguments and temporary variables:
>
> Receiver's instance variables:
> superclass: Model
> methodDict: a MethodDictionary(size 167)
> format: 172
> instanceVariables: #('world' 'changeSet' 'transcript'
> 'parentProject' 'previous...etc...
> organization: ('*Polymorph-Widgets'
> assureTaskbarPresenceMatchesPreference crea...etc...
> subclasses: nil
> name: #Project
> classPool: a Dictionary(#AllProjects->an OrderedCollection(a
> Project(Unnamed)) ...etc...
> sharedPools: nil
> environment: Smalltalk
> category: #'System-Support'
> traitComposition: {}
> localSelectors: nil
>
> [] in BlockClosure>>newProcess
> Receiver: [closure] in Project class>>spawnNewProcess
> Arguments and temporary variables:
>
> Receiver's instance variables:
> outerContext: Project class>>spawnNewProcess
> startpc: 53
> numArgs: 0
>
>
> --- The full stack ---
> UndefinedObject(Object)>>doesNotUnderstand: #isEmpty
> MouseOverHandler>>processMouseOver:
> HandMorph>>processEvents
> [] in WorldState>>doOneCycleNowFor:
> Array(SequenceableCollection)>>do:
> WorldState>>handsDo:
> WorldState>>doOneCycleNowFor:
> WorldState>>doOneCycleFor:
> PasteUpMorph>>doOneCycle
> [] in Project class>>spawnNewProcess
> [] in BlockClosure>>newProcess
> ------------------------------------------------------------
>
> --
> Lukas Renggli
> http://www.lukas-renggli.ch
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Safe and Quit can be dangerous

Lukas Renggli
2009/11/22 Adrian Lienhard <[hidden email]>:
> This seems related to
>
> http://code.google.com/p/pharo/issues/detail?id=889
>
> which was only integrated in 1.1. I don't understand why we didn't put
> this in 1.0 too.

Indeed, that looks related.

@Bill: Thanks for sharing the ideas. There is a browser (Tools >
Recover Lost Changes) where you can see restore most changes. Luckily
I just committed everything to Monticello, so this is no big deal. I
will just have to build a new image the next time I continue ...

Lukas

--
Lukas Renggli
http://www.lukas-renggli.ch

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Safe and Quit can be dangerous

Marcus Denker-3

On Nov 22, 2009, at 5:33 PM, Lukas Renggli wrote:

> 2009/11/22 Adrian Lienhard <[hidden email]>:
>> This seems related to
>>
>> http://code.google.com/p/pharo/issues/detail?id=889
>>
>> which was only integrated in 1.1. I don't understand why we didn't put
>> this in 1.0 too.
>
> Indeed, that looks related.
>

I tagged it 1.0 and unclosed it.


        Marcus

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Safe and Quit can be dangerous

Schwab,Wilhelm K
In reply to this post by Lukas Renggli
Lukas,

Glad to hear your code is safe.  I am aware of the recover lost changes feature, and have been helped by it once or twice, but I find it cumbersome compared to Ian's Chunk Browser; he did a wonderful job with it, and archives of the Dolphin groups are full of testimonials.

Bill




-----Original Message-----
From: [hidden email] [mailto:[hidden email]] On Behalf Of Lukas Renggli
Sent: Sunday, November 22, 2009 11:33 AM
To: [hidden email]
Subject: Re: [Pharo-project] Safe and Quit can be dangerous

2009/11/22 Adrian Lienhard <[hidden email]>:
> This seems related to
>
> http://code.google.com/p/pharo/issues/detail?id=889
>
> which was only integrated in 1.1. I don't understand why we didn't put
> this in 1.0 too.

Indeed, that looks related.

@Bill: Thanks for sharing the ideas. There is a browser (Tools > Recover Lost Changes) where you can see restore most changes. Luckily I just committed everything to Monticello, so this is no big deal. I will just have to build a new image the next time I continue ...

Lukas

--
Lukas Renggli
http://www.lukas-renggli.ch

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project