Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- 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
October 2009
- 86 participants
- 1118 messages
Re: [Pharo-project] HashTable vs Dictionary
by Lukas Renggli
Yeah, that could be a problem. Strangely SystemDictionary is a
subclass of IdentityDictionary.
It can be easily fixed, don't know if this has much of an impact on
performance if the dictionary is smaller:
SystemDictionary superclass: Dictionary.
SystemDictionary allInstances do: [ :each | each rehash ]
Lukas
2009/10/25 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
> Ok I see. I would be curious to see if SystemDictionary does not
> degrade once we load
> Moose, Mondrian, Glamour....
>
>>> So this means that by default we have bad performance. no?
>>
>> No.
>>
>> In a fresh Pharo Web image less than 6% of the keys in Dictionaries
>> and less than 10% of the values in Sets have a weak-hashes. Moreover
>> the largest set with weak-hash values has 516 elements (on average
>> only 1.8 elements), the largest dictionary with weak-hash keys has
>> 1002 elements (on average only 4.3 elements). Using HashTable in such
>> a situation would introduce a major speed penalty and waste a lot of
>> memory.
>>
>> It would be cool if the Set and the Dictionary would choose their
>> implementation strategy automatically depending on the use-case. In a
>> standard Pharo image however that would just be the current
>> implementation. There are simply no instances in the image where it
>> would be worthwhile (large amount of data with bad hash) to use a
>> HashMap.
>>
>> 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
>
--
Lukas Renggli
http://www.lukas-renggli.ch
Oct. 25, 2009
Re: [Pharo-project] HashTable vs Dictionary
by Stéphane Ducasse
I was told that they had that and they removed it in VA5 I guess.
On Oct 22, 2009, at 8:00 PM, John M McIntosh wrote:
> In the far past Visual Age would become the implementation logic for
> Sets depending
> on how big the set was, so for example with 10 elements it would be
> linear list. Of course
> it's been 14 years, perhaps I'm remembering it wrong.
>
> On 2009-10-22, at 6:46 AM, Lukas Renggli wrote:
>
>>> So this means that by default we have bad performance. no?
>>
>> No.
>>
>> In a fresh Pharo Web image less than 6% of the keys in Dictionaries
>> and less than 10% of the values in Sets have a weak-hashes. Moreover
>> the largest set with weak-hash values has 516 elements (on average
>> only 1.8 elements), the largest dictionary with weak-hash keys has
>> 1002 elements (on average only 4.3 elements). Using HashTable in such
>> a situation would introduce a major speed penalty and waste a lot of
>> memory.
>>
>> It would be cool if the Set and the Dictionary would choose their
>> implementation strategy automatically depending on the use-case. In a
>> standard Pharo image however that would just be the current
>> implementation. There are simply no instances in the image where it
>> would be worthwhile (large amount of data with bad hash) to use a
>> HashMap.
>>
>> 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
>
> --
> =
> =
> =
> =
> =
> ======================================================================
> John M. McIntosh <johnmci(a)smalltalkconsulting.com> Twitter:
> squeaker68882
> Corporate Smalltalk Consulting Ltd. http://
> www.smalltalkconsulting.com
> =
> =
> =
> =
> =
> ======================================================================
>
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Oct. 25, 2009
Re: [Pharo-project] HashTable vs Dictionary
by Stéphane Ducasse
Ok I see. I would be curious to see if SystemDictionary does not
degrade once we load
Moose, Mondrian, Glamour....
>> So this means that by default we have bad performance. no?
>
> No.
>
> In a fresh Pharo Web image less than 6% of the keys in Dictionaries
> and less than 10% of the values in Sets have a weak-hashes. Moreover
> the largest set with weak-hash values has 516 elements (on average
> only 1.8 elements), the largest dictionary with weak-hash keys has
> 1002 elements (on average only 4.3 elements). Using HashTable in such
> a situation would introduce a major speed penalty and waste a lot of
> memory.
>
> It would be cool if the Set and the Dictionary would choose their
> implementation strategy automatically depending on the use-case. In a
> standard Pharo image however that would just be the current
> implementation. There are simply no instances in the image where it
> would be worthwhile (large amount of data with bad hash) to use a
> HashMap.
>
> 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
Oct. 25, 2009
[Pharo-project] [update 1.1] #11018
by Stéphane Ducasse
11018
-----
- Issue 1258 Number-readFrom-followUp
There is no use invoking SqNumberParser with
failBlock: [^ self error: ...]
because this is the default behaviour...
- Fix FontTest>>#testResetAfterEmphasized.
aFont derivativeFonts cannot be assumed to store emphasized versions
indexed by their emph code.
- adds squeezeNumberOutOfString: to Number, as discussed in the Pharo
workshop. On the way, it fixes an issue in SqNumberParser, where it
would return itself rather than the result of the failblack, when
parsing fails.
Also, a test is added to test and document the new squeezing number
out of strings behavior.
Oct. 25, 2009
[Pharo-project] Traits composition question
by Igor Stasenko
Suppose i having a trait grouping
Trait named: #TraitGroup
uses: TraitA + TraitB + .... TraitN
category: 'foo'
and suppose i want to use TraitGroup in one of my classes, but
excluding one of the traits in the list above.. i.e. something like:
Object subclass: #Myclass
uses: TraitGroup - TraitA
..
but the above code don't seem to work..
Any clues, how i can do that?
Is such kind of composition possible at all?
--
Best regards,
Igor Stasenko AKA sig.
Oct. 25, 2009
[Pharo-project] Feature request: All uses of Trait
by Igor Stasenko
It would be cool to have a 'references-to' support for traits.
Or maybe its there already?
How can i quickly look, what classes using the trait?
--
Best regards,
Igor Stasenko AKA sig.
Oct. 25, 2009
[Pharo-project] hashing collections
by Ralph Boland
Food for thought:
In my finite state machine generator I do a lot of
hashing of sometimes large collections.
For performance reasons I created hash value storing versions
of the relevant collection classes. Getting the hash value
of the hashed version of a collection was then very fast
(accessing an instance value) and the hash values were good.
For example, for Array I created HashArray The hash
value of a HashArray was the XOR of the hash values of
the elements of the HashArray. Note that this meant
that each time you changed the entry in a HashArray
you had to update the hash value.
So for HashArray at: index put: object would look something
like:
hash := (hash xor: object hash) xor: (self at: index).
super at: index put: object.
If you like living on the edge you could instead leave out updating
the hash value until you put the HashArray object where its hash
value would be needed (like a Set or Dictionary (key)).
This is of course error prone but then
putting collections in Sets or Dictionaries (keys)
is inherently error prone anyway because modifying the collection
changes its hash value thus breaking every Set or Dictionary
containing the collection.
I would be temped to have all real collection classes (e.g. not Interval)
not be storable in Sets or Dictionaries (key) at all and instead require
hash versions of the collection be used but of course this would
surely break a lot of things.
Ralph Boland
--
Quantum Theory cannot save us from the
tyranny of a deterministic universe.
But it does give God something to do.
Oct. 25, 2009
Re: [Pharo-project] Improve pharo modularity: a first step
by csrabak@bol.com.br
Em 23/10/2009 08:50, Stéphane Ducasse <stephane.ducasse(a)inria.fr> escreveu
> Jannik
> may be we should have
>
> PackageCore
> PackageTest
> PackageSetting
> PackageExamples
>
> in the future
I would like to canvass for
PackageDocumentation
as well.
Oct. 24, 2009
Re: [Pharo-project] Improve pharo modularity: a first step
by csrabak@bol.com.br
Em 23/10/2009 05:02, Laval Jannik <jannik.laval(a)gmail.com> escreveu:
> Hi all,
> I would like to improve the modularity of packages in pharo.
> A first simple thing that I see, is methods "example" use a lot of
> things in the system. And create cycles between packages.
> So, I propose to create a new package named "Examples" and put in
> it all methods named "example2"...
I agree there are opportunities for improvement in Pharo's packages but I see the attempt to lump _all_ examples in a single package as a backward move.
I think a better approach would be similar to the on going discussion on the tests packages. We should have the package for the specific functionality, some convention on the test (generally Unit Test, which some argue also make as some part of the usage examples) related package, and some convention on example related package. I would argue even further that we should have a documentation related package, but that will digression right now!
my .019999....
--
Cesar Rabak
Oct. 24, 2009
Re: [Pharo-project] Broken "Recover Lost Changes"
by John Toohey
I loaded the changes file into Emacs, deleted everything except the changes
since the last save point, and then I got errors on the Traits code. I then
deleted those line, and managed to filein the code successfully. I have a
copy of the image and changes file that was made just before I had the
crash. I've zipped to to ca 16MB, so I can send those if they would be of
help.
On Sat, Oct 24, 2009 at 15:09, Adrian Lienhard <adi(a)netstyle.ch> wrote:
> You can try to delete the part you posted below (including the last !).
>
> In case you can/want to send me your changeset (or the image and
> changes file) I can take a look.
>
> Just to make sure, you selected the top item in the list shown after
> selecting Tools > "Recover lost changes..."?
>
> Cheers,
> Adrian
>
>
> On Oct 24, 2009, at 19:38 , John Toohey wrote:
>
> > Not sure, this is the line from the changes file on disk :-
> >
> > !Trait method!
> > open
> > self status: #Opened
> > !
> >
> > On Sat, Oct 24, 2009 at 03:09, Stéphane Ducasse
> > <stephane.ducasse(a)inria.fr>wrote:
> >
> >> I think that the closure code shake a lot of foundation and that it
> >> will take some cycles to get a stable system.
> >> Now self is indeed not a message so was a period missing in your
> >> code?
> >>
> >> Setf
> >>
> >> On Oct 23, 2009, at 10:27 PM, John Toohey wrote:
> >>
> >>> I have a 4 day old image that just froze. After restarting, I tried
> >>> to recover the code changes since I saved my image yesterday, but
> >>> the list of changes in the tool are an unordered list going back to
> >>> February of this year. Even old code of mine from that time was in
> >>> the list. After about an hour I managed to manually select the
> >>> changes I've made since yesterday, and file them out. When I try to
> >>> file them back in, I get an error from the debugger, and cannot
> >>> continue. Anyone know what I can do to recover my source, or point
> >>> me in the right direction to recover from this.
> >>>
> >>> This is the stacktrace from the debugger :-
> >>>
> >>> From: jt(a)parspro.com
> >>> To: Pharo-project(a)lists.gforge.inria.fr
> >>> Subject: [BUG]UndefinedObject(Object)>>doesNotUnderstand: #self
> >>>
> >>> here insert explanation of what you were doing, suspect changes
> >>> you've made and so forth.
> >>>
> >>> 23 October 2009 4:19:05 pm
> >>>
> >>> VM: Mac OS - intel - 1058 - Squeak3.8.1 of '28 Aug 2006' [latest
> >>> update: #6747] Squeak VM 4.1.1b2
> >>> Image: Pharo1.0beta [Latest update: #10477]
> >>>
> >>> SecurityManager state:
> >>> Restricted: false
> >>> FileAccess: true
> >>> SocketAccess: true
> >>> Working Dir /Users/jpt/Dev/repos/Dev-Images/PharoCore-1.0-10477-BETA
> >>> Trusted Dir /foobar/tooBar/forSqueak/bogus
> >>> Untrusted Dir /Users/jpt/Library/Preferences/Squeak/Internet/My
> >>> Squeak
> >>>
> >>> UndefinedObject(Object)>>doesNotUnderstand: #self
> >>> Receiver: nil
> >>> Arguments and temporary variables:
> >>> aMessage: self
> >>> exception: MessageNotUnderstood: receiver of
> >>> "self" is
> >> nil
> >>> resumeValue: nil
> >>> Receiver's instance variables:
> >>> nil
> >>>
> >>> UndefinedObject>>DoIt
> >>> Receiver: nil
> >>> Arguments and temporary variables:
> >>>
> >>> Receiver's instance variables:
> >>> nil
> >>>
> >>> Compiler>>evaluate:in:to:notifying:ifFail:logged:
> >>> Receiver: a Compiler
> >>> Arguments and temporary variables:
> >>> textOrStream: 'publish
> >>> self status: #Opened
> >>> '
> >>> aContext: nil
> >>> receiver: nil
> >>> aRequestor: nil
> >>> failBlock: [closure] in Compiler
> >>> class>>evaluate:for:notifying:logged:
> >>> logFlag: false
> >>> methodNode: DoIt
> >>> ^ publish self status: #Opened
> >>> method: a CompiledMethod(982:
> >> UndefinedObject>>DoIt)
> >>> value: nil
> >>> toLog: nil
> >>> itsSelection: nil
> >>> itsSelectionString: nil
> >>> Receiver's instance variables:
> >>> sourceStream: a ReadStream 'publish
> >>> self status: #Opened
> >>> '
> >>> requestor: nil
> >>> class: UndefinedObject
> >>> category: nil
> >>> context: nil
> >>> parser: a Parser
> >>>
> >>> Compiler class>>evaluate:for:notifying:logged:
> >>> Receiver: Compiler
> >>> Arguments and temporary variables:
> >>> textOrString: 'publish
> >>> self status: #Opened
> >>> '
> >>> anObject: nil
> >>> aController: nil
> >>> logFlag: false
> >>> Receiver's instance variables:
> >>> superclass: Object
> >>> methodDict: a MethodDictionary
> >>> (#compile:in:classified:notifying:ifFail:->a Comp...etc...
> >>> format: 142
> >>> instanceVariables: #('sourceStream' 'requestor'
> >> 'class'
> >>> 'category' 'context' 'p...etc...
> >>> organization: ('deprecated'
> >> format:in:notifying:contentsSymbol:)
> >>> ('error handli...etc...
> >>> subclasses: nil
> >>> name: #Compiler
> >>> classPool: a Dictionary()
> >>> sharedPools: nil
> >>> environment: Smalltalk
> >>> category: #'Compiler-Kernel'
> >>> traitComposition: nil
> >>> localSelectors: nil
> >>>
> >>> Compiler class>>evaluate:for:logged:
> >>> Receiver: Compiler
> >>> Arguments and temporary variables:
> >>> textOrString: 'publish
> >>> self status: #Opened
> >>> '
> >>> anObject: nil
> >>> logFlag: false
> >>> Receiver's instance variables:
> >>> superclass: Object
> >>> methodDict: a MethodDictionary
> >>> (#compile:in:classified:notifying:ifFail:->a Comp...etc...
> >>> format: 142
> >>> instanceVariables: #('sourceStream' 'requestor'
> >> 'class'
> >>> 'category' 'context' 'p...etc...
> >>> organization: ('deprecated'
> >> format:in:notifying:contentsSymbol:)
> >>> ('error handli...etc...
> >>> subclasses: nil
> >>> name: #Compiler
> >>> classPool: a Dictionary()
> >>> sharedPools: nil
> >>> environment: Smalltalk
> >>> category: #'Compiler-Kernel'
> >>> traitComposition: nil
> >>> localSelectors: nil
> >>>
> >>> Compiler class>>evaluate:
> >>> Receiver: Compiler
> >>> Arguments and temporary variables:
> >>> textOrString: 'publish
> >>> self status: #Opened
> >>> '
> >>> Receiver's instance variables:
> >>> superclass: Object
> >>> methodDict: a MethodDictionary
> >>> (#compile:in:classified:notifying:ifFail:->a Comp...etc...
> >>> format: 142
> >>> instanceVariables: #('sourceStream' 'requestor'
> >> 'class'
> >>> 'category' 'context' 'p...etc...
> >>> organization: ('deprecated'
> >> format:in:notifying:contentsSymbol:)
> >>> ('error handli...etc...
> >>> subclasses: nil
> >>> name: #Compiler
> >>> classPool: a Dictionary()
> >>> sharedPools: nil
> >>> environment: Smalltalk
> >>> category: #'Compiler-Kernel'
> >>> traitComposition: nil
> >>> localSelectors: nil
> >>>
> >>> [] in ChangeRecord>>fileIn
> >>> Receiver: a ChangeRecord
> >>> Arguments and temporary variables:
> >>> <<error during printing>
> >>> Receiver's instance variables:
> >>> file: MultiByteFileStream:
> >> '/Users/jpt/Dev/repos/Dev-Images/
> >>> PharoCore-1.0-10477...etc...
> >>> position: 29712
> >>> type: #doIt
> >>> class: nil
> >>> category: nil
> >>> meta: nil
> >>> stamp: nil
> >>>
> >>> BlockClosure>>ensure:
> >>> Receiver: [closure] in ChangeRecord>>fileIn
> >>> Arguments and temporary variables:
> >>> aBlock: [closure] in
> >> CursorWithMask(Cursor)>>showWhile:
> >>> returnValue: nil
> >>> b: nil
> >>> Receiver's instance variables:
> >>> outerContext: ChangeRecord>>fileIn
> >>> startpc: 107
> >>> numArgs: 0
> >>>
> >>> CursorWithMask(Cursor)>>showWhile:
> >>> Receiver: ((CursorWithMask
> >>> extent: 16@16
> >>> depth: 1
> >>> fromArray: #(
> >>> 2r0
> >>> 2r0
> >>> 2r0
> >>> 2r10000000010...etc...
> >>> Arguments and temporary variables:
> >>> aBlock: [closure] in ChangeRecord>>fileIn
> >>> oldcursor: ((CursorWithMask
> >>> extent: 16@16
> >>> depth: 1
> >>> fromArray: #(
> >>> 2r0
> >>> 2r1...etc...
> >>> Receiver's instance variables:
> >>> bits: a Bitmap of length 16
> >>> width: 16
> >>> height: 16
> >>> depth: 1
> >>> offset: -1@-1
> >>> maskForm: Form(16x16x1)
> >>>
> >>> ChangeRecord>>fileIn
> >>> Receiver: a ChangeRecord
> >>> Arguments and temporary variables:
> >>> <<error during printing>
> >>> Receiver's instance variables:
> >>> file: MultiByteFileStream:
> >> '/Users/jpt/Dev/repos/Dev-Images/
> >>> PharoCore-1.0-10477...etc...
> >>> position: 29712
> >>> type: #doIt
> >>> class: nil
> >>> category: nil
> >>> meta: nil
> >>> stamp: nil
> >>>
> >>> [] in ChangeList>>fileInSelections
> >>> Receiver: a ChangeList
> >>> Arguments and temporary variables:
> >>> any: true
> >>> selected: a ChangeRecord
> >>> item: #(true)
> >>> Receiver's instance variables:
> >>> dependents: a DependentsArray(a SystemWindow(252) a
> >>> PluggableListMorphOfMany(33...etc...
> >>> contents: ''
> >>> currentCompiledMethod: nil
> >>> contentsSymbol: #showDiffs
> >>> changeList: an OrderedCollection(a ChangeRecord a
> >> ChangeRecord a
> >>> ChangeRecord a...etc...
> >>> list: an OrderedCollection('do it: ''From
> >>> Pharo1.0beta of
> >>> 16...ber 2009 at 3:57...etc...
> >>> listIndex: 0
> >>> listSelections: #(true true true true true true
> >> true true true
> >>> true true true t...etc...
> >>> file: MultiByteFileStream:
> >> '/Users/jpt/Dev/repos/Dev-Images/
> >>> PharoCore-1.0-10477...etc...
> >>> lostMethodPointer: nil
> >>> showsVersions: nil
> >>>
> >>> Array(SequenceableCollection)>>with:do:
> >>> Receiver: #(true true true true true true true true true true
> >>> true
> >>> true true true true true true tru...etc...
> >>> Arguments and temporary variables:
> >>> otherCollection: an OrderedCollection(a
> >>> ChangeRecord
> >> a
> >>> ChangeRecord a ChangeRec...etc...
> >>> twoArgBlock: [closure] in
> >>> ChangeList>>fileInSelections
> >>> index: 171
> >>> indexLimiT: 274
> >>> Receiver's instance variables:
> >>> #(true true true true true true true true true true true true true
> >>> true true true true tru...etc...
> >>>
> >>> ChangeList>>fileInSelections
> >>> Receiver: a ChangeList
> >>> Arguments and temporary variables:
> >>> any: #(true)
> >>> Receiver's instance variables:
> >>> dependents: a DependentsArray(a SystemWindow(252) a
> >>> PluggableListMorphOfMany(33...etc...
> >>> contents: ''
> >>> currentCompiledMethod: nil
> >>> contentsSymbol: #showDiffs
> >>> changeList: an OrderedCollection(a ChangeRecord a
> >> ChangeRecord a
> >>> ChangeRecord a...etc...
> >>> list: an OrderedCollection('do it: ''From
> >>> Pharo1.0beta of
> >>> 16...ber 2009 at 3:57...etc...
> >>> listIndex: 0
> >>> listSelections: #(true true true true true true
> >> true true true
> >>> true true true t...etc...
> >>> file: MultiByteFileStream:
> >> '/Users/jpt/Dev/repos/Dev-Images/
> >>> PharoCore-1.0-10477...etc...
> >>> lostMethodPointer: nil
> >>> showsVersions: nil
> >>>
> >>> PluggableButtonMorph>>performAction
> >>> Receiver: a PluggableButtonMorph(824)
> >>> Arguments and temporary variables:
> >>>
> >>> Receiver's instance variables:
> >>> bounds: 1408@359 corner: 1749@383
> >>> owner: an AlignmentMorph(3699)
> >>> submorphs: an Array(an AlignmentMorph(921))
> >>> fullBounds: 1408@359 corner: 1749@383
> >>> color: (Color r: 0.827 g: 0.827 b: 0.827)
> >>> extension: a MorphExtension (1404) [balloonText]
> >> [other:
> >>> (layoutPolicy -> a T...etc...
> >>> borderWidth: 0
> >>> borderColor: Color transparent
> >>> model: a ChangeList
> >>> label: 'file in selections'
> >>> getStateSelector: nil
> >>> actionSelector: #fileInSelections
> >>> getLabelSelector: nil
> >>> getMenuSelector: nil
> >>> shortcutCharacter: nil
> >>> askBeforeChanging: true
> >>> triggerOnMouseDown: false
> >>> offColor: Color white
> >>> onColor: Color white
> >>> feedbackColor: nil
> >>> showSelectionFeedback: false
> >>> allButtons: nil
> >>> arguments: #()
> >>> argumentsProvider: nil
> >>> argumentsSelector: nil
> >>>
> >>> [] in PluggableButtonMorph>>mouseUp:
> >>> Receiver: a PluggableButtonMorph(824)
> >>> Arguments and temporary variables:
> >>> <<error during printing>
> >>> Receiver's instance variables:
> >>> bounds: 1408@359 corner: 1749@383
> >>> owner: an AlignmentMorph(3699)
> >>> submorphs: an Array(an AlignmentMorph(921))
> >>> fullBounds: 1408@359 corner: 1749@383
> >>> color: (Color r: 0.827 g: 0.827 b: 0.827)
> >>> extension: a MorphExtension (1404) [balloonText]
> >> [other:
> >>> (layoutPolicy -> a T...etc...
> >>> borderWidth: 0
> >>> borderColor: Color transparent
> >>> model: a ChangeList
> >>> label: 'file in selections'
> >>> getStateSelector: nil
> >>> actionSelector: #fileInSelections
> >>> getLabelSelector: nil
> >>> getMenuSelector: nil
> >>> shortcutCharacter: nil
> >>> askBeforeChanging: true
> >>> triggerOnMouseDown: false
> >>> offColor: Color white
> >>> onColor: Color white
> >>> feedbackColor: nil
> >>> showSelectionFeedback: false
> >>> allButtons: nil
> >>> arguments: #()
> >>> argumentsProvider: nil
> >>> argumentsSelector: nil
> >>>
> >>> Array(SequenceableCollection)>>do:
> >>> Receiver: an Array(a PluggableButtonMorph(786) a
> >>> PluggableButtonMorph(3485) a PluggableButtonMorph(5...etc...
> >>> Arguments and temporary variables:
> >>> aBlock: [closure] in
> >>> PluggableButtonMorph>>mouseUp:
> >>> index: 4
> >>> indexLimiT: 4
> >>> Receiver's instance variables:
> >>> an Array(a PluggableButtonMorph(786) a PluggableButtonMorph(3485) a
> >>> PluggableButtonMorph(5...etc...
> >>>
> >>> PluggableButtonMorph>>mouseUp:
> >>> Receiver: a PluggableButtonMorph(824)
> >>> Arguments and temporary variables:
> >>> evt: [1518@375 mouseUp 3690378 nil]
> >>> all: an Array(a PluggableButtonMorph(786) a
> >> PluggableButtonMorph
> >>> (3485) a Plugga...etc...
> >>> Receiver's instance variables:
> >>> bounds: 1408@359 corner: 1749@383
> >>> owner: an AlignmentMorph(3699)
> >>> submorphs: an Array(an AlignmentMorph(921))
> >>> fullBounds: 1408@359 corner: 1749@383
> >>> color: (Color r: 0.827 g: 0.827 b: 0.827)
> >>> extension: a MorphExtension (1404) [balloonText]
> >> [other:
> >>> (layoutPolicy -> a T...etc...
> >>> borderWidth: 0
> >>> borderColor: Color transparent
> >>> model: a ChangeList
> >>> label: 'file in selections'
> >>> getStateSelector: nil
> >>> actionSelector: #fileInSelections
> >>> getLabelSelector: nil
> >>> getMenuSelector: nil
> >>> shortcutCharacter: nil
> >>> askBeforeChanging: true
> >>> triggerOnMouseDown: false
> >>> offColor: Color white
> >>> onColor: Color white
> >>> feedbackColor: nil
> >>> showSelectionFeedback: false
> >>> allButtons: nil
> >>> arguments: #()
> >>> argumentsProvider: nil
> >>> argumentsSelector: nil
> >>>
> >>> PluggableButtonMorph(Morph)>>handleMouseUp:
> >>> Receiver: a PluggableButtonMorph(824)
> >>> Arguments and temporary variables:
> >>> anEvent: [1518@375 mouseUp 3690378 nil]
> >>> Receiver's instance variables:
> >>> bounds: 1408@359 corner: 1749@383
> >>> owner: an AlignmentMorph(3699)
> >>> submorphs: an Array(an AlignmentMorph(921))
> >>> fullBounds: 1408@359 corner: 1749@383
> >>> color: (Color r: 0.827 g: 0.827 b: 0.827)
> >>> extension: a MorphExtension (1404) [balloonText]
> >> [other:
> >>> (layoutPolicy -> a T...etc...
> >>> borderWidth: 0
> >>> borderColor: Color transparent
> >>> model: a ChangeList
> >>> label: 'file in selections'
> >>> getStateSelector: nil
> >>> actionSelector: #fileInSelections
> >>> getLabelSelector: nil
> >>> getMenuSelector: nil
> >>> shortcutCharacter: nil
> >>> askBeforeChanging: true
> >>> triggerOnMouseDown: false
> >>> offColor: Color white
> >>> onColor: Color white
> >>> feedbackColor: nil
> >>> showSelectionFeedback: false
> >>> allButtons: nil
> >>> arguments: #()
> >>> argumentsProvider: nil
> >>> argumentsSelector: nil
> >>>
> >>> MouseButtonEvent>>sentTo:
> >>> Receiver: [1518@375 mouseUp 3690378 nil]
> >>> Arguments and temporary variables:
> >>> anObject: a PluggableButtonMorph(824)
> >>> Receiver's instance variables:
> >>> timeStamp: 3690378
> >>> source: a HandMorph(3216)
> >>> windowIndex: nil
> >>> type: #mouseUp
> >>> buttons: 0
> >>> position: 1518@375
> >>> handler: nil
> >>> wasHandled: true
> >>> whichButton: 4
> >>>
> >>> PluggableButtonMorph(Morph)>>handleEvent:
> >>> Receiver: a PluggableButtonMorph(824)
> >>> Arguments and temporary variables:
> >>> anEvent: [1518@375 mouseUp 3690378 nil]
> >>> Receiver's instance variables:
> >>> bounds: 1408@359 corner: 1749@383
> >>> owner: an AlignmentMorph(3699)
> >>> submorphs: an Array(an AlignmentMorph(921))
> >>> fullBounds: 1408@359 corner: 1749@383
> >>> color: (Color r: 0.827 g: 0.827 b: 0.827)
> >>> extension: a MorphExtension (1404) [balloonText]
> >> [other:
> >>> (layoutPolicy -> a T...etc...
> >>> borderWidth: 0
> >>> borderColor: Color transparent
> >>> model: a ChangeList
> >>> label: 'file in selections'
> >>> getStateSelector: nil
> >>> actionSelector: #fileInSelections
> >>> getLabelSelector: nil
> >>> getMenuSelector: nil
> >>> shortcutCharacter: nil
> >>> askBeforeChanging: true
> >>> triggerOnMouseDown: false
> >>> offColor: Color white
> >>> onColor: Color white
> >>> feedbackColor: nil
> >>> showSelectionFeedback: false
> >>> allButtons: nil
> >>> arguments: #()
> >>> argumentsProvider: nil
> >>> argumentsSelector: nil
> >>>
> >>> PluggableButtonMorph(Morph)>>handleFocusEvent:
> >>> Receiver: a PluggableButtonMorph(824)
> >>> Arguments and temporary variables:
> >>> anEvent: [1518@375 mouseUp 3690378 nil]
> >>> Receiver's instance variables:
> >>> bounds: 1408@359 corner: 1749@383
> >>> owner: an AlignmentMorph(3699)
> >>> submorphs: an Array(an AlignmentMorph(921))
> >>> fullBounds: 1408@359 corner: 1749@383
> >>> color: (Color r: 0.827 g: 0.827 b: 0.827)
> >>> extension: a MorphExtension (1404) [balloonText]
> >> [other:
> >>> (layoutPolicy -> a T...etc...
> >>> borderWidth: 0
> >>> borderColor: Color transparent
> >>> model: a ChangeList
> >>> label: 'file in selections'
> >>> getStateSelector: nil
> >>> actionSelector: #fileInSelections
> >>> getLabelSelector: nil
> >>> getMenuSelector: nil
> >>> shortcutCharacter: nil
> >>> askBeforeChanging: true
> >>> triggerOnMouseDown: false
> >>> offColor: Color white
> >>> onColor: Color white
> >>> feedbackColor: nil
> >>> showSelectionFeedback: false
> >>> allButtons: nil
> >>> arguments: #()
> >>> argumentsProvider: nil
> >>> argumentsSelector: nil
> >>>
> >>> [] in HandMorph>>sendFocusEvent:to:clear:
> >>> Receiver: a HandMorph(3216)
> >>> Arguments and temporary variables:
> >>> <<error during printing>
> >>> Receiver's instance variables:
> >>> bounds: 1661@782 corner: 1677@798
> >>> owner: a PasteUpMorph(1622) [world]
> >>> submorphs: #()
> >>> fullBounds: 1661@782 corner: 1677@798
> >>> color: Color blue
> >>> extension: a MorphExtension (539) [eventHandler
> >>> = an
> >> EventHandler]
> >>> mouseFocus: nil
> >>> keyboardFocus: nil
> >>> eventListeners: nil
> >>> mouseListeners: nil
> >>> keyboardListeners: nil
> >>> mouseClickState: nil
> >>> mouseOverHandler: a MouseOverHandler
> >>> lastMouseEvent: [1661@782 mouseUp 3788444 nil]
> >>> targetOffset: 99@6
> >>> damageRecorder: a DamageRecorder
> >>> cacheCanvas: nil
> >>> cachedCanvasHasHoles: true
> >>> temporaryCursor: nil
> >>> temporaryCursorOffset: nil
> >>> hardwareCursor: nil
> >>> hasChanged: true
> >>> savedPatch: nil
> >>> userInitials: ''
> >>> lastEventBuffer: #(1 3788444 1661 782 0 0 0 1)
> >>> lastKeyScanCode: 126
> >>> combinedChar: nil
> >>>
> >>> [] in PasteUpMorph>>becomeActiveDuring:
> >>> Receiver: a PasteUpMorph(1622) [world]
> >>> Arguments and temporary variables:
> >>> <<error during printing>
> >>> Receiver's instance variables:
> >>> bounds: 0@0 corner: 1920@1178
> >>> owner: nil
> >>> submorphs: an Array(a TaskbarMorph(3095) a
> >> SystemWindow(3356) a
> >>> SystemWindow(25...etc...
> >>> fullBounds: nil
> >>> color: Color gray
> >>> extension: a MorphExtension (2543) [eventHandler
> >>> = an
> >>> EventHandler] [other: (...etc...
> >>> borderWidth: 0
> >>> borderColor: (Color r: 0.5 g: 0.5 b: 0.5)
> >>> 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
> >>>
> >>> BlockClosure>>on:do:
> >>> Receiver: [closure] in PasteUpMorph>>becomeActiveDuring:
> >>> Arguments and temporary variables:
> >>> exception: Error
> >>> handlerAction: [closure] in
> >> PasteUpMorph>>becomeActiveDuring:
> >>> handlerActive: false
> >>> Receiver's instance variables:
> >>> outerContext: PasteUpMorph>>becomeActiveDuring:
> >>> startpc: 67
> >>> numArgs: 0
> >>>
> >>> PasteUpMorph>>becomeActiveDuring:
> >>> Receiver: a PasteUpMorph(1622) [world]
> >>> Arguments and temporary variables:
> >>> aBlock: [closure] in
> >> HandMorph>>sendFocusEvent:to:clear:
> >>> priorWorld: a PasteUpMorph(1622) [world]
> >>> priorHand: a HandMorph(3216)
> >>> priorEvent: [1518@375 mouseOver red nil nil]
> >>> Receiver's instance variables:
> >>> bounds: 0@0 corner: 1920@1178
> >>> owner: nil
> >>> submorphs: an Array(a TaskbarMorph(3095) a
> >> SystemWindow(3356) a
> >>> SystemWindow(25...etc...
> >>> fullBounds: nil
> >>> color: Color gray
> >>> extension: a MorphExtension (2543) [eventHandler
> >>> = an
> >>> EventHandler] [other: (...etc...
> >>> borderWidth: 0
> >>> borderColor: (Color r: 0.5 g: 0.5 b: 0.5)
> >>> 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
> >>>
> >>> HandMorph>>sendFocusEvent:to:clear:
> >>> Receiver: a HandMorph(3216)
> >>> Arguments and temporary variables:
> >>> anEvent: [1518@375 mouseUp 3690378 nil]
> >>> focusHolder: a PluggableButtonMorph(824)
> >>> aBlock: [closure] in HandMorph>>sendMouseEvent:
> >>> w: a PasteUpMorph(1622) [world]
> >>> result: #(nil)
> >>> Receiver's instance variables:
> >>> bounds: 1661@782 corner: 1677@798
> >>> owner: a PasteUpMorph(1622) [world]
> >>> submorphs: #()
> >>> fullBounds: 1661@782 corner: 1677@798
> >>> color: Color blue
> >>> extension: a MorphExtension (539) [eventHandler
> >>> = an
> >> EventHandler]
> >>> mouseFocus: nil
> >>> keyboardFocus: nil
> >>> eventListeners: nil
> >>> mouseListeners: nil
> >>> keyboardListeners: nil
> >>> mouseClickState: nil
> >>> mouseOverHandler: a MouseOverHandler
> >>> lastMouseEvent: [1661@782 mouseUp 3788444 nil]
> >>> targetOffset: 99@6
> >>> damageRecorder: a DamageRecorder
> >>> cacheCanvas: nil
> >>> cachedCanvasHasHoles: true
> >>> temporaryCursor: nil
> >>> temporaryCursorOffset: nil
> >>> hardwareCursor: nil
> >>> hasChanged: true
> >>> savedPatch: nil
> >>> userInitials: ''
> >>> lastEventBuffer: #(1 3788444 1661 782 0 0 0 1)
> >>> lastKeyScanCode: 126
> >>> combinedChar: nil
> >>>
> >>> HandMorph>>sendEvent:focus:clear:
> >>> Receiver: a HandMorph(3216)
> >>> Arguments and temporary variables:
> >>> anEvent: [1518@375 mouseUp 3690378 nil]
> >>> focusHolder: a PluggableButtonMorph(824)
> >>> aBlock: [closure] in HandMorph>>sendMouseEvent:
> >>> result: nil
> >>> Receiver's instance variables:
> >>> bounds: 1661@782 corner: 1677@798
> >>> owner: a PasteUpMorph(1622) [world]
> >>> submorphs: #()
> >>> fullBounds: 1661@782 corner: 1677@798
> >>> color: Color blue
> >>> extension: a MorphExtension (539) [eventHandler
> >>> = an
> >> EventHandler]
> >>> mouseFocus: nil
> >>> keyboardFocus: nil
> >>> eventListeners: nil
> >>> mouseListeners: nil
> >>> keyboardListeners: nil
> >>> mouseClickState: nil
> >>> mouseOverHandler: a MouseOverHandler
> >>> lastMouseEvent: [1661@782 mouseUp 3788444 nil]
> >>> targetOffset: 99@6
> >>> damageRecorder: a DamageRecorder
> >>> cacheCanvas: nil
> >>> cachedCanvasHasHoles: true
> >>> temporaryCursor: nil
> >>> temporaryCursorOffset: nil
> >>> hardwareCursor: nil
> >>> hasChanged: true
> >>> savedPatch: nil
> >>> userInitials: ''
> >>> lastEventBuffer: #(1 3788444 1661 782 0 0 0 1)
> >>> lastKeyScanCode: 126
> >>> combinedChar: nil
> >>>
> >>> HandMorph>>sendMouseEvent:
> >>> Receiver: a HandMorph(3216)
> >>> Arguments and temporary variables:
> >>> anEvent: [1518@375 mouseUp 3690378 nil]
> >>> Receiver's instance variables:
> >>> bounds: 1661@782 corner: 1677@798
> >>> owner: a PasteUpMorph(1622) [world]
> >>> submorphs: #()
> >>> fullBounds: 1661@782 corner: 1677@798
> >>> color: Color blue
> >>> extension: a MorphExtension (539) [eventHandler
> >>> = an
> >> EventHandler]
> >>> mouseFocus: nil
> >>> keyboardFocus: nil
> >>> eventListeners: nil
> >>> mouseListeners: nil
> >>> keyboardListeners: nil
> >>> mouseClickState: nil
> >>> mouseOverHandler: a MouseOverHandler
> >>> lastMouseEvent: [1661@782 mouseUp 3788444 nil]
> >>> targetOffset: 99@6
> >>> damageRecorder: a DamageRecorder
> >>> cacheCanvas: nil
> >>> cachedCanvasHasHoles: true
> >>> temporaryCursor: nil
> >>> temporaryCursorOffset: nil
> >>> hardwareCursor: nil
> >>> hasChanged: true
> >>> savedPatch: nil
> >>> userInitials: ''
> >>> lastEventBuffer: #(1 3788444 1661 782 0 0 0 1)
> >>> lastKeyScanCode: 126
> >>> combinedChar: nil
> >>>
> >>> HandMorph>>handleEvent:
> >>> Receiver: a HandMorph(3216)
> >>> Arguments and temporary variables:
> >>> anEvent: [1518@375 mouseUp 3690378 nil]
> >>> evt: [1518@375 mouseUp 3690378 nil]
> >>> ofs: nil
> >>> Receiver's instance variables:
> >>> bounds: 1661@782 corner: 1677@798
> >>> owner: a PasteUpMorph(1622) [world]
> >>> submorphs: #()
> >>> fullBounds: 1661@782 corner: 1677@798
> >>> color: Color blue
> >>> extension: a MorphExtension (539) [eventHandler
> >>> = an
> >> EventHandler]
> >>> mouseFocus: nil
> >>> keyboardFocus: nil
> >>> eventListeners: nil
> >>> mouseListeners: nil
> >>> keyboardListeners: nil
> >>> mouseClickState: nil
> >>> mouseOverHandler: a MouseOverHandler
> >>> lastMouseEvent: [1661@782 mouseUp 3788444 nil]
> >>> targetOffset: 99@6
> >>> damageRecorder: a DamageRecorder
> >>> cacheCanvas: nil
> >>> cachedCanvasHasHoles: true
> >>> temporaryCursor: nil
> >>> temporaryCursorOffset: nil
> >>> hardwareCursor: nil
> >>> hasChanged: true
> >>> savedPatch: nil
> >>> userInitials: ''
> >>> lastEventBuffer: #(1 3788444 1661 782 0 0 0 1)
> >>> lastKeyScanCode: 126
> >>> combinedChar: nil
> >>>
> >>> HandMorph>>processEvents
> >>> Receiver: a HandMorph(3216)
> >>> Arguments and temporary variables:
> >>> evt: [1518@375 mouseUp 3690378 nil]
> >>> evtBuf: #(1 3690378 1518 375 0 0 0 1)
> >>> type: 1
> >>> hadAny: false
> >>> Receiver's instance variables:
> >>> bounds: 1661@782 corner: 1677@798
> >>> owner: a PasteUpMorph(1622) [world]
> >>> submorphs: #()
> >>> fullBounds: 1661@782 corner: 1677@798
> >>> color: Color blue
> >>> extension: a MorphExtension (539) [eventHandler
> >>> = an
> >> EventHandler]
> >>> mouseFocus: nil
> >>> keyboardFocus: nil
> >>> eventListeners: nil
> >>> mouseListeners: nil
> >>> keyboardListeners: nil
> >>> mouseClickState: nil
> >>> mouseOverHandler: a MouseOverHandler
> >>> lastMouseEvent: [1661@782 mouseUp 3788444 nil]
> >>> targetOffset: 99@6
> >>> damageRecorder: a DamageRecorder
> >>> cacheCanvas: nil
> >>> cachedCanvasHasHoles: true
> >>> temporaryCursor: nil
> >>> temporaryCursorOffset: nil
> >>> hardwareCursor: nil
> >>> hasChanged: true
> >>> savedPatch: nil
> >>> userInitials: ''
> >>> lastEventBuffer: #(1 3788444 1661 782 0 0 0 1)
> >>> lastKeyScanCode: 126
> >>> combinedChar: nil
> >>>
> >>> [] in WorldState>>doOneCycleNowFor:
> >>> Receiver: a WorldState
> >>> Arguments and temporary variables:
> >>> <<error during printing>
> >>> Receiver's instance variables:
> >>> hands: an Array(a HandMorph(3216))
> >>> viewBox: 0@0 corner: 1920@1178
> >>> canvas: a FormCanvas on:
> >> DisplayScreen(1920x1178x32)
> >>> damageRecorder: a DamageRecorder
> >>> stepList: a Heap(StepMessage(#stepAt: -> 3PButton
> >>> (#togglePrettyDiffing 247))(3P...etc...
> >>> lastStepTime: 3788426
> >>> lastStepMessage: nil
> >>> lastCycleTime: 3788446
> >>> commandHistory: a CommandHistory
> >>> alarms: a Heap()
> >>> lastAlarmTime: 3788426
> >>>
> >>> 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: 1920@1178
> >>> canvas: a FormCanvas on:
> >> DisplayScreen(1920x1178x32)
> >>> damageRecorder: a DamageRecorder
> >>> stepList: a Heap(StepMessage(#stepAt: -> 3PButton
> >>> (#togglePrettyDiffing 247))(3P...etc...
> >>> lastStepTime: 3788426
> >>> lastStepMessage: nil
> >>> lastCycleTime: 3788446
> >>> commandHistory: a CommandHistory
> >>> alarms: a Heap()
> >>> lastAlarmTime: 3788426
> >>>
> >>> 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: 1920@1178
> >>> canvas: a FormCanvas on:
> >> DisplayScreen(1920x1178x32)
> >>> damageRecorder: a DamageRecorder
> >>> stepList: a Heap(StepMessage(#stepAt: -> 3PButton
> >>> (#togglePrettyDiffing 247))(3P...etc...
> >>> lastStepTime: 3788426
> >>> lastStepMessage: nil
> >>> lastCycleTime: 3788446
> >>> commandHistory: a CommandHistory
> >>> alarms: a Heap()
> >>> lastAlarmTime: 3788426
> >>>
> >>> 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: 1920@1178
> >>> canvas: a FormCanvas on:
> >> DisplayScreen(1920x1178x32)
> >>> damageRecorder: a DamageRecorder
> >>> stepList: a Heap(StepMessage(#stepAt: -> 3PButton
> >>> (#togglePrettyDiffing 247))(3P...etc...
> >>> lastStepTime: 3788426
> >>> lastStepMessage: nil
> >>> lastCycleTime: 3788446
> >>> commandHistory: a CommandHistory
> >>> alarms: a Heap()
> >>> lastAlarmTime: 3788426
> >>>
> >>> PasteUpMorph>>doOneCycle
> >>> Receiver: a PasteUpMorph(1622) [world]
> >>> Arguments and temporary variables:
> >>>
> >>> Receiver's instance variables:
> >>> bounds: 0@0 corner: 1920@1178
> >>> owner: nil
> >>> submorphs: an Array(a TaskbarMorph(3095) a
> >> SystemWindow(3356) a
> >>> SystemWindow(25...etc...
> >>> fullBounds: nil
> >>> color: Color gray
> >>> extension: a MorphExtension (2543) [eventHandler
> >>> = an
> >>> EventHandler] [other: (...etc...
> >>> borderWidth: 0
> >>> borderColor: (Color r: 0.5 g: 0.5 b: 0.5)
> >>> 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(Juliet)) #...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: #self
> >>> UndefinedObject>>DoIt
> >>> Compiler>>evaluate:in:to:notifying:ifFail:logged:
> >>> Compiler class>>evaluate:for:notifying:logged:
> >>> Compiler class>>evaluate:for:logged:
> >>> Compiler class>>evaluate:
> >>> [] in ChangeRecord>>fileIn
> >>> BlockClosure>>ensure:
> >>> CursorWithMask(Cursor)>>showWhile:
> >>> ChangeRecord>>fileIn
> >>> [] in ChangeList>>fileInSelections
> >>> Array(SequenceableCollection)>>with:do:
> >>> ChangeList>>fileInSelections
> >>> PluggableButtonMorph>>performAction
> >>> [] in PluggableButtonMorph>>mouseUp:
> >>> Array(SequenceableCollection)>>do:
> >>> PluggableButtonMorph>>mouseUp:
> >>> PluggableButtonMorph(Morph)>>handleMouseUp:
> >>> MouseButtonEvent>>sentTo:
> >>> PluggableButtonMorph(Morph)>>handleEvent:
> >>> PluggableButtonMorph(Morph)>>handleFocusEvent:
> >>> [] in HandMorph>>sendFocusEvent:to:clear:
> >>> [] in PasteUpMorph>>becomeActiveDuring:
> >>> BlockClosure>>on:do:
> >>> PasteUpMorph>>becomeActiveDuring:
> >>> HandMorph>>sendFocusEvent:to:clear:
> >>> HandMorph>>sendEvent:focus:clear:
> >>> HandMorph>>sendMouseEvent:
> >>> HandMorph>>handleEvent:
> >>> HandMorph>>processEvents
> >>> [] in WorldState>>doOneCycleNowFor:
> >>> Array(SequenceableCollection)>>do:
> >>> WorldState>>handsDo:
> >>> WorldState>>doOneCycleNowFor:
> >>> WorldState>>doOneCycleFor:
> >>> PasteUpMorph>>doOneCycle
> >>> [] in Project class>>spawnNewProcess
> >>> [] in BlockClosure>>newProcess
> >>>
> >>>
> >>> --
> >>> -JT
> >>>
> >>>
> >>> _______________________________________________
> >>> 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
> >>
> >
> >
> >
> > --
> > -JT
> > _______________________________________________
> > 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
>
--
-JT
Oct. 24, 2009