Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
November 2009
- 80 participants
- 1107 messages
Re: [Pharo-project] O2PackageBrowser broken in Pharo 10495
by Damien Cassou
On Sat, Nov 21, 2009 at 9:32 PM, Adrian Lienhard <adi(a)netstyle.ch> wrote:
> David has already fixed some issues a week ago (I know he fixed #1476). But
> there is no new build available yet. Until these new images are available,
> I've reverted the links on the download page to the previous versions, which
> do not have the issue of the O2 package browser.
I will create a new release.
--
Damien Cassou
http://damiencassou.seasidehosting.st
"Lambdas are relegated to relative obscurity until Java makes them
popular by not having them." James Iry
Nov. 22, 2009
Re: [Pharo-project] Safe and Quit can be dangerous
by Schwab,Wilhelm K
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: pharo-project-bounces(a)lists.gforge.inria.fr [mailto:pharo-project-bounces@lists.gforge.inria.fr] On Behalf Of Lukas Renggli
Sent: Sunday, November 22, 2009 11:33 AM
To: Pharo-project(a)lists.gforge.inria.fr
Subject: Re: [Pharo-project] Safe and Quit can be dangerous
2009/11/22 Adrian Lienhard <adi(a)netstyle.ch>:
> 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
Pharo-project(a)lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Nov. 22, 2009
Re: [Pharo-project] (no subject)
by Schwab,Wilhelm K
Lucas,
I do not expect magic, but I do expect it to work, and failing that, candor re limitations. IMHO, the real problem has been a sort of XP snobbery: it appears that those building or integrating what would otherwise be a wonderful tool, have zero interest in preserving comments, and even some contempt for those of who write them. It is far easier to impugn those suggesting improvements than to make it work or to inetegrate fixes. I will spare you second-hand comments about what has been done in other languages and editors, as I have never encountered an RB anywhere but Smalltalk.
I am perfectly happy using the RB only for things where it does not reformat. If it turns out that #promptOnRefactoring meets my needs and/or if format-preservation works, I will extend my use accordingly.
Thanks for working on it.
Bill
-----Original Message-----
From: pharo-project-bounces(a)lists.gforge.inria.fr [mailto:pharo-project-bounces@lists.gforge.inria.fr] On Behalf Of Lukas Renggli
Sent: Sunday, November 22, 2009 10:55 AM
To: Pharo-project(a)lists.gforge.inria.fr
Subject: Re: [Pharo-project] (no subject)
> Interesting news about #promptOnRefactoring. However, you are the first person involved with the RB to ever mention it to me. Â Previously, I was simply told that commenting methods is a waste of time and I would be happier and healthier if I would change my misguided ways.
Don Roberts and John Brant improved the refactoring engine a lot in 2002. I assume that there was some pressure from the VisualWorks and Dolphin folks. Unfortunately Squeak and Pharo people were stuck with the refactoring code from the last century.
>Â Obviously, I take a different view of it, and all the more so having recently ported a lot of aging code to Pharo; comments saved my skin yet again. Â If the RB can be made to respect them, I will eagerly use it.
I think the situation is much better now, but you cannot expect magic.
Lukas
--
Lukas Renggli
http://www.lukas-renggli.ch
_______________________________________________
Pharo-project mailing list
Pharo-project(a)lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Nov. 22, 2009
Re: [Pharo-project] Safe and Quit can be dangerous
by Marcus Denker
On Nov 22, 2009, at 5:33 PM, Lukas Renggli wrote:
> 2009/11/22 Adrian Lienhard <adi(a)netstyle.ch>:
>> 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
Nov. 22, 2009
Re: [Pharo-project] Safe and Quit can be dangerous
by Lukas Renggli
2009/11/22 Adrian Lienhard <adi(a)netstyle.ch>:
> 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
Nov. 22, 2009
Re: [Pharo-project] Safe and Quit can be dangerous
by Adrian Lienhard
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
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Nov. 22, 2009
Re: [Pharo-project] Safe and Quit can be dangerous
by 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: pharo-project-bounces(a)lists.gforge.inria.fr [mailto:pharo-project-bounces@lists.gforge.inria.fr] 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
Pharo-project(a)lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Nov. 22, 2009
[Pharo-project] Safe and Quit can be dangerous
by 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
Nov. 22, 2009
Re: [Pharo-project] (no subject)
by Lukas Renggli
> Interesting news about #promptOnRefactoring. However, you are the first person involved with the RB to ever mention it to me. Â Previously, I was simply told that commenting methods is a waste of time and I would be happier and healthier if I would change my misguided ways.
Don Roberts and John Brant improved the refactoring engine a lot in
2002. I assume that there was some pressure from the VisualWorks and
Dolphin folks. Unfortunately Squeak and Pharo people were stuck with
the refactoring code from the last century.
>Â Obviously, I take a different view of it, and all the more so having recently ported a lot of aging code to Pharo; comments saved my skin yet again. Â If the RB can be made to respect them, I will eagerly use it.
I think the situation is much better now, but you cannot expect magic.
Lukas
--
Lukas Renggli
http://www.lukas-renggli.ch
Nov. 22, 2009
Re: [Pharo-project] (no subject)
by Lukas Renggli
You might want to try and pretty print the complete image and see if
you loose any comments or if comments are moved at the wrong place.
>From within a green browser press "refactor > pretty print" and get a
coffee (it takes a long time).
Note that you might want to disable pretty-printing in the refactoring
changes. The diff looks better with pretty printing enabled, but then
this is not what you get afterwards.
Lukas
2009/11/22 Schwab,Wilhelm K <bschwab(a)anest.ufl.edu>:
> If anyone builds this, I can easily clone one of my images and give it torture test with comments littering method bodies. Â If it can keep the "data collector" code in tact, it works.
>
> Bill
>
>
>
> -----Original Message-----
> From: pharo-project-bounces(a)lists.gforge.inria.fr [mailto:pharo-project-bounces@lists.gforge.inria.fr] On Behalf Of Nicolas Cellier
> Sent: Sunday, November 22, 2009 9:56 AM
> To: Pharo-project(a)lists.gforge.inria.fr
> Subject: Re: [Pharo-project] (no subject)
>
> Without looking at RB code, this is how I would handle it:
> 1) Reify Smalltalk tokens, and create a SpaceToken (can include various separators character and comments)
> Â the tokens just include a copy of corresponding source text.
> 2) Scanner creates a linked list of tokens including SpaceTokens
> 3) Parser parses the stream of tokens and build an AST that retain pointers to the links (firstLink and lastLink)
> Â The advantage of storing links rather than position is that we can add/remove links easily without recomputing positions
> 4) refactoring operates on AST and replaces links content,
> Â eventually if it add or remove links, then some special care of intersticial SpaceToken has to happen.
> 5) printing refactored source code is printing the tokens verbatim (that is just nextPutAll: their contents)
>
> Nicolas
>
> 2009/11/22 Lukas Renggli <renggli(a)gmail.com>:
>>> at one point gwenael changed the parser to handle comments but
>>> apparently the code could not be loaded and it was never integrated. I imagine that now it is too divergent.
>>
>> The code never worked for me. It broke most parts of the Refactoring Engine.
>>
>> The new code is a fresh port from John's repository. There existing
>> port was a total mess, partly broken, partly incomplete, very
>> inefficient and polluted with code from other projects.
>>
>> Lukas
>>
>> --
>> Lukas Renggli
>> http://www.lukas-renggli.ch
>>
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project(a)lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
--
Lukas Renggli
http://www.lukas-renggli.ch
Nov. 22, 2009