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
- 3 participants
- 144616 messages
Re: [Pharo-project] Fwd: hasEqualElements:
by Nicolas Cellier
2009/12/23 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
> Ideally what I would like is
>
> =
>     isSameSequenceAs: + same receiver kind          (may be overkill)
>
> isSameSequenceAs: otherCollection
> Â Â Â Â "Answer whether the receiver's size is the same as otherCollection's size, and each
> Â Â Â Â of the receiver's elements equal the corresponding element of otherCollection."
>
> hasSameElements:
> Â Â Â Â "Answer whether the receiver's size is the same as otherCollection's size, and each
> Â Â Â Â of the receiver's elements is included in otherCollection and vice versa."
>
> Stef
>
like #(2 2 3) hasSameElements: #(2 3 3) -> true
but #(2 2 3) asSet hasSameElements: #(2 3 3) -> false
?
>
>
>
> On Dec 23, 2009, at 7:58 PM, Eliot Miranda wrote:
>
>>
>>
>> On Wed, Dec 23, 2009 at 10:41 AM, <csrabak(a)bol.com.br> wrote:
>> Em 23/12/2009 16:10, Eliot Miranda < eliot.miranda(a)gmail.com > escreveu:
>>
>> >
>> > Â Core.SequenceableCollection comparing
>> > Â isSameSequenceAs: otherCollection
>> >
>> > Â "Answer whether the receiver's size is the same as otherCollection's
>> > Â size, and each of the receiver's elements equal the corresponding
>> > Â element of otherCollection."
>> >
>> > Â | size |
>> > Â (size := self size) = otherCollection size ifFalse: [^false].
>> > Â 1 to: size do: [:index |
>> > Â (self at: index) = (otherCollection at: index) ifFalse: [^false]].
>> > Â ^true
>> >
>> >  i.e.  trust  the  caller  is  providing  a  sequence  and  if
>> > otherCollection  doesn't  implement at:  there  will  be a  run-time
>> > error, hence any otherCollection isKindOf: SequenceableCollection is
>> > just wasted cycles.
>> >
>>
>> I don't think that "trusting the caller" makes sense in this case, so
>> I propose instead that you implementation be complemented by:
>>
>> Object>>isSameSequenceAs: otherCollection
>> ^false
>>
>> We're talking about the argument otherCollection not the receiver. Â i.e. leaving out isKindOf: in
>> isSameSequenceAs: otherCollection
>> Â Â Â Â Â "Answer whether the receiver's size is the same as otherCollection's size, and each
>> Â Â Â Â Â of the receiver's elements equal the corresponding element of otherCollection."
>>
>> Â Â Â Â Â | size |
>> Â Â Â Â Â (otherCollection isKindOf: SequenceableCollection) ifFalse: [^false]. "this is a horrible wart"
>> Â Â Â Â Â (size := self size) = otherCollection size ifFalse: [^false].
>> Â Â Â Â Â 1 to: size do: [:index |
>> Â Â Â Â Â Â Â Â Â (self at: index) = (otherCollection at: index) ifFalse: [^false]].
>> Â Â Â Â Â ^true
>>
>> You could use double dispatching:
>>
>> SequenceableCollection>>isSameSequenceAs: otherThing
>> Â Â ^otherThing isSameSequenceAsSequence: self
>>
>> SequenceableCollection>> isSameSequenceAsSequence: aSequenceableCollection
>> Â Â aSequenceableCollection size ~= self size ifTrue: [^false].
>> Â Â etc
>>
>> Object isSameSequenceAsSequence: aSequenceableCollection
>> Â Â ^false
>>
>> but I think in this case it's overkill.
>>
>>
>> --
>> Cesar Rabak
>>
>> _______________________________________________
>> 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
>
Dec. 23, 2009
Re: [Pharo-project] SUnit forked, gofer it
by Mariano Martinez Peck
On Wed, Dec 23, 2009 at 9:41 PM, Adrian Kuhn <akuhn(a)iam.unibe.ch> wrote:
> Mariano Martinez Peck <marianopeck@...> writes:
>
> > Sorry for go a bit offtopic, but is it possible to run only ONE test from
> the
> > browser??? I would like to right click on a test method and be execute.
> > Just like the "run tests" option but only for THAT test and not all the
> tests
> > of that class. Is that possible ?
>
> Fixed in my image.
>
> If you file a bug report, I'll attach the fix :)
>
Excellent!!!!
http://code.google.com/p/pharo/issues/detail?id=1665
Let me say that I really like all the little improvements that are being
done.
Cheers,
Mariano
> --AA
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
Dec. 23, 2009
Re: [Pharo-project] LinkedList>>offList
by Stéphane Ducasse
Yes :) and this is funny that I could do it.
Now I was wondering why I got offlist may be the memory was too stressed.
Stef
> Looks like that one of your packages depends on itself.
>
> 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
Dec. 23, 2009
Re: [Pharo-project] Fwd: sort: and sortBlock:
by Stéphane Ducasse
>>>>
>>>>
>> why + 1 makes a so big difference?
>
> Because #addAll: has a simple check that doesn't care about the performance of the different methods of addition:
>
> addAll: aCollection
> aCollection size > (self size // 3)
> ifTrue:
> [aCollection do: [:each | self addLast: each].
> self reSort]
> ifFalse: [aCollection do: [:each | self add: each]].
> ^ aCollection
>
> A better check could solve this, but who wants to come up with a formula that's easy to calculate (aka fast) and gives accurate results?
Thanks.
I like these kind of conversation because they deeply illustrate what I always like in Smalltalk:
learning by reading the system.
Stef
Dec. 23, 2009
Re: [Pharo-project] SUnit forked, gofer it
by Adrian Kuhn
Mariano Martinez Peck <marianopeck@...> writes:
> Sorry for go a bit offtopic, but is it possible to run only ONE test from the
> browser??? I would like to right click on a test method and be execute.
> Just like the "run tests" option but only for THAT test and not all the tests
> of that class. Is that possible ?
Fixed in my image.
If you file a bug report, I'll attach the fix :)
--AA
Dec. 23, 2009
Re: [Pharo-project] LinkedList>>offList
by Lukas Renggli
Looks like that one of your packages depends on itself.
Lukas
--
Lukas Renggli
http://www.lukas-renggli.ch
Dec. 23, 2009
Re: [Pharo-project] Fwd: sort: and sortBlock:
by Levente Uzonyi
On Wed, 23 Dec 2009, Stéphane Ducasse wrote:
>> Of course, using repeated #add: is inefficient (#addAll: has a rule
>>> for sorting once or at every #add:).
>>
>> That's true, but #addAll:'s rule is not generally useful. For example:
>>
>> | s |
>> s := (1 to: 300000) asSortedCollection.
>> [ s addAll: (1 to: 100000) ] timeToRun ===> 24698
>>
>> | s |
>> s := (1 to: 300000) asSortedCollection.
>> [ s addAll: (1 to: 100001) ] timeToRun ===> 1124 (+1 element makes a big difference)
>
> why + 1 makes a so big difference?
Because #addAll: has a simple check that doesn't care about the
performance of the different methods of addition:
addAll: aCollection
aCollection size > (self size // 3)
ifTrue:
[aCollection do: [:each | self addLast: each].
self reSort]
ifFalse: [aCollection do: [:each | self add: each]].
^ aCollection
A better check could solve this, but who wants to come up with a formula
that's easy to calculate (aka fast) and gives accurate results?
Levente
>
>> And in squeak:
>> | s |
>> s := (1 to: 300000) asOrderedCollection.
>> [ s addAll: (1 to: 100000); sort ] timeToRun ===> 763 (mergesort beats quicksort)
>
> cool.
> This is fun to see that during years we pushed so that squeak moves and we got bashed
> for that and now squeak is moving because of us. At least we succeeded in something.
>
>> So the only use-case where SortedCollection is useful (IMO) is when you
>> - have to keep the collection sorted and
>> - you rarely some elements to it
>>
>> Getting rid of other uses is hard because #asSortedCollection always returns a copy, while most #as* selectors don't.
>>
>>
>> Levente
>>
>>
>>>
>>>> If you pick the changes from squeak trunk, Array and OrderedCollection (and
>>>> SortedCollection) will understand #sort and #sort: and will have the same
>>>> semantics: sort in place (by a stable sorting algorithm).
>>>>
>>>
>>> Don't open a new issue. There is
>>> http://code.google.com/p/pharo/issues/detail?id=1214
>>> http://code.google.com/p/pharo/issues/detail?id=1346
>>>
>>> Nicolas
>>>
>>>>
>>>> Levente
>>>>
>>>>>
>>>>> Stef
>>>>> _______________________________________________
>>>>> 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
>> _______________________________________________
>> 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
>
Dec. 23, 2009
Re: [Pharo-project] Fwd: hasEqualElements:
by Stéphane Ducasse
Ideally what I would like is
=
isSameSequenceAs: + same receiver kind (may be overkill)
isSameSequenceAs: otherCollection
"Answer whether the receiver's size is the same as otherCollection's size, and each
of the receiver's elements equal the corresponding element of otherCollection."
hasSameElements:
"Answer whether the receiver's size is the same as otherCollection's size, and each
of the receiver's elements is included in otherCollection and vice versa."
Stef
On Dec 23, 2009, at 7:58 PM, Eliot Miranda wrote:
>
>
> On Wed, Dec 23, 2009 at 10:41 AM, <csrabak(a)bol.com.br> wrote:
> Em 23/12/2009 16:10, Eliot Miranda < eliot.miranda(a)gmail.com > escreveu:
>
> >
> > Core.SequenceableCollection comparing
> > isSameSequenceAs: otherCollection
> >
> > "Answer whether the receiver's size is the same as otherCollection's
> > size, and each of the receiver's elements equal the corresponding
> > element of otherCollection."
> >
> > | size |
> > (size := self size) = otherCollection size ifFalse: [^false].
> > 1 to: size do: [:index |
> > (self at: index) = (otherCollection at: index) ifFalse: [^false]].
> > ^true
> >
> > i.e. trust the caller is providing a sequence and if
> > otherCollection doesn't implement at: there will be a run-time
> > error, hence any otherCollection isKindOf: SequenceableCollection is
> > just wasted cycles.
> >
>
> I don't think that "trusting the caller" makes sense in this case, so
> I propose instead that you implementation be complemented by:
>
> Object>>isSameSequenceAs: otherCollection
> ^false
>
> We're talking about the argument otherCollection not the receiver. i.e. leaving out isKindOf: in
> isSameSequenceAs: otherCollection
> "Answer whether the receiver's size is the same as otherCollection's size, and each
> of the receiver's elements equal the corresponding element of otherCollection."
>
> | size |
> (otherCollection isKindOf: SequenceableCollection) ifFalse: [^false]. "this is a horrible wart"
> (size := self size) = otherCollection size ifFalse: [^false].
> 1 to: size do: [:index |
> (self at: index) = (otherCollection at: index) ifFalse: [^false]].
> ^true
>
> You could use double dispatching:
>
> SequenceableCollection>>isSameSequenceAs: otherThing
> ^otherThing isSameSequenceAsSequence: self
>
> SequenceableCollection>> isSameSequenceAsSequence: aSequenceableCollection
> aSequenceableCollection size ~= self size ifTrue: [^false].
> etc
>
> Object isSameSequenceAsSequence: aSequenceableCollection
> ^false
>
> but I think in this case it's overkill.
>
>
> --
> Cesar Rabak
>
> _______________________________________________
> 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
Dec. 23, 2009
Re: [Pharo-project] Fwd: sort: and sortBlock:
by Levente Uzonyi
On Wed, 23 Dec 2009, Adrian Kuhn wrote:
> Levente Uzonyi <leves@...> writes:
>
>>> It's a hack, I took it from SortedCollection's quicksort implementation. This
>>> gives the best performance if you're sorting by <= which is the default.
>
> Shouldn't `sort` do what `sort: nil` does?
>
> A simple `aBlock ifNil: [ ^self sort ]` might be more intention revealing (of
> course assumed that `sort` implements a #<= based sort :)
In squeak #sort is implemented as self sort: nil. So that check would mean
infinite recursion.
Levente
>
> --AA
>
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
Dec. 23, 2009
[Pharo-project] LinkedList>>offList
by Stéphane Ducasse
This is strange
I did not get the time to look at it but I got a deep recursion in MC which stressed the low space
and ended up in this crash
Stef
------------------------------------------------------------
THERE_BE_DRAGONS_HERE
MessageNotUnderstood: LinkedList>>offList
23 December 2009 8:56:10 pm
VM: Mac OS - intel - 1062 - Squeak3.8.1 of '28 Aug 2006' [latest update: #6747] Squeak VM 4.2.2b1
Image: PharoCore1.1ALPHA [Latest update: #11112]
SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /Users/ducasse/Workspace/FirstCircle/ActiveResearch/Pharo/Pharo
Trusted Dir /foobar/tooBar/forSqueak/bogus
Untrusted Dir /Users/ducasse/Library/Preferences/Squeak/Internet/My Squeak
LinkedList(Object)>>doesNotUnderstand: #offList
Receiver: a LinkedList()
Arguments and temporary variables:
aMessage: offList
exception: MessageNotUnderstood: LinkedList>>offList
resumeValue: nil
Receiver's instance variables:
firstLink: nil
lastLink: nil
Project class>>interruptName:preemptedProcess:
Receiver: Project
Arguments and temporary variables:
labelString: 'Space is low'
theInterruptedProcess: a Process in ByteString(Object)>>shallowCopy
preemptedProcess: a Process in ByteString(Object)>>shallowCopy
projectProcess: a Process in ByteString(Object)>>shallowCopy
Receiver's instance variables:
superclass: Model
methodDict: a MethodDictionary(#changeSet->(Project>>#changeSet "a CompiledMeth...etc...
format: 170
instanceVariables: #('world' 'changeSet' 'transcript' 'parentProject' 'previous...etc...
organization: ('*Polymorph-Widgets' createTaskbarIfNecessary moveCollapsedWindo...etc...
subclasses: nil
name: #Project
classPool: a Dictionary(#AllProjects->an OrderedCollection(a Project) #CurrentP...etc...
sharedPools: nil
environment: Smalltalk
category: #'System-Support'
traitComposition: {}
localSelectors: nil
SystemDictionary>>lowSpaceWatcher
Receiver: Smalltalk
Arguments and temporary variables:
free: nil
preemptedProcess: a Process in ByteString(Object)>>shallowCopy
Receiver's instance variables:
tally: 1817
array: an Array(nil nil nil #SystemSettingBrowser->SystemSettingBrowser #EFontB...etc...
cachedClassNames: nil
[] in SystemDictionary>>installLowSpaceWatcher
Receiver: Smalltalk
Arguments and temporary variables:
Receiver's instance variables:
tally: 1817
array: an Array(nil nil nil #SystemSettingBrowser->SystemSettingBrowser #EFontB...etc...
cachedClassNames: nil
[] in BlockClosure>>newProcess
Receiver: [closure] in SystemDictionary>>installLowSpaceWatcher
Arguments and temporary variables:
Receiver's instance variables:
outerContext: SystemDictionary>>installLowSpaceWatcher
startpc: 65
numArgs: 0
--- The full stack ---
LinkedList(Object)>>doesNotUnderstand: #offList
Project class>>interruptName:preemptedProcess:
SystemDictionary>>lowSpaceWatcher
[] in SystemDictionary>>installLowSpaceWatcher
[] in BlockClosure>>newProcess
------------------------------------------------------------
THERE_BE_DRAGONS_HERE
User Interrupt
23 December 2009 8:56:19 pm
VM: Mac OS - intel - 1062 - Squeak3.8.1 of '28 Aug 2006' [latest update: #6747] Squeak VM 4.2.2b1
Image: PharoCore1.1ALPHA [Latest update: #11112]
SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /Users/ducasse/Workspace/FirstCircle/ActiveResearch/Pharo/Pharo
Trusted Dir /foobar/tooBar/forSqueak/bogus
Untrusted Dir /Users/ducasse/Library/Preferences/Squeak/Internet/My Squeak
ByteString(Object)>>shallowCopy
Receiver: 'Collections-Sequenceable'
Arguments and temporary variables:
class: nil
newObject: nil
index: nil
Receiver's instance variables:
'Collections-Sequenceable'
ByteString(Object)>>copy
Receiver: 'Collections-Sequenceable'
Arguments and temporary variables:
Receiver's instance variables:
'Collections-Sequenceable'
ByteString(String)>>asLowercase
Receiver: 'Collections-Sequenceable'
Arguments and temporary variables:
Receiver's instance variables:
'Collections-Sequenceable'
MCPackage>>hash
Receiver: a MCPackage(Collections-Sequenceable)
Arguments and temporary variables:
Receiver's instance variables:
name: 'Collections-Sequenceable'
Dictionary>>scanFor:
Receiver: a Dictionary(size 103)
Arguments and temporary variables:
anObject: a MCPackage(Collections-Sequenceable)
element: nil
start: nil
finish: 234
index: nil
index: nil
indexLimiT: nil
Receiver's instance variables:
tally: 103
array: an Array(nil nil nil nil a MCPackage(Tests)->a MCWorkingCopy(Tests) nil ...etc...
Dictionary(Set)>>findElementOrNil:
Receiver: a Dictionary(size 103)
Arguments and temporary variables:
anObject: a MCPackage(Collections-Sequenceable)
index: nil
Receiver's instance variables:
tally: 103
array: an Array(nil nil nil nil a MCPackage(Tests)->a MCWorkingCopy(Tests) nil ...etc...
Dictionary>>at:ifAbsent:
Receiver: a Dictionary(size 103)
Arguments and temporary variables:
key: a MCPackage(Collections-Sequenceable)
aBlock: [closure] in MCWorkingCopy class(MCPackageManager class)>>forPackage:
assoc: nil
Receiver's instance variables:
tally: 103
array: an Array(nil nil nil nil a MCPackage(Tests)->a MCWorkingCopy(Tests) nil ...etc...
MCWorkingCopy class(MCPackageManager class)>>forPackage:
Receiver: MCWorkingCopy
Arguments and temporary variables:
aPackage: a MCPackage(Collections-Sequenceable)
Receiver's instance variables:
superclass: MCPackageManager
methodDict: a MethodDictionary(#adopt:->(MCWorkingCopy>>#adopt: "a CompiledMeth...etc...
format: 144
instanceVariables: #('versionInfo' 'ancestry' 'counter' 'repositoryGroup' 'requ...etc...
organization: ('*scriptloader' theCachedRepository)
('accessing' ancestors ance...etc...
subclasses: nil
name: #MCWorkingCopy
classPool: nil
sharedPools: nil
environment: Smalltalk
category: #'Monticello-Versioning'
traitComposition: nil
localSelectors: nil
registry: a Dictionary(size 103)
MCPackage>>workingCopy
Receiver: a MCPackage(Collections-Sequenceable)
Arguments and temporary variables:
Receiver's instance variables:
name: 'Collections-Sequenceable'
[] in MCWorkingCopy>>needsSaving
Receiver: a MCWorkingCopy(SLICE-SortBlock)
Arguments and temporary variables:
ea: a MCPackage(Collections-Sequenceable)
Receiver's instance variables:
package: a MCPackage(SLICE-SortBlock)
modified: false
versionInfo: nil
ancestry: a MCWorkingAncestry
counter: 2
repositoryGroup: a MCRepositoryGroup
requiredPackages: an OrderedCollection(a MCPackage(Collections-Sequenceable) a ...etc...
[] in OrderedCollection(Collection)>>anySatisfy:
Receiver: an OrderedCollection(a MCPackage(Collections-Sequenceable) a MCPackage(SLICE-SortBlock))
Arguments and temporary variables:
aBlock: a MCPackage(Collections-Sequenceable)
each: [closure] in MCWorkingCopy>>needsSaving
Receiver's instance variables:
array: an Array(nil nil a MCPackage(Collections-Sequenceable) a MCPackage(SLICE...etc...
firstIndex: 3
lastIndex: 4
OrderedCollection>>do:
Receiver: an OrderedCollection(a MCPackage(Collections-Sequenceable) a MCPackage(SLICE-SortBlock))
Arguments and temporary variables:
aBlock: [closure] in OrderedCollection(Collection)>>anySatisfy:
index: 3
Receiver's instance variables:
array: an Array(nil nil a MCPackage(Collections-Sequenceable) a MCPackage(SLICE...etc...
firstIndex: 3
lastIndex: 4
OrderedCollection(Collection)>>anySatisfy:
Receiver: an OrderedCollection(a MCPackage(Collections-Sequenceable) a MCPackage(SLICE-SortBlock))
Arguments and temporary variables:
aBlock: [closure] in MCWorkingCopy>>needsSaving
Receiver's instance variables:
array: an Array(nil nil a MCPackage(Collections-Sequenceable) a MCPackage(SLICE...etc...
firstIndex: 3
lastIndex: 4
MCWorkingCopy>>needsSaving
Receiver: a MCWorkingCopy(SLICE-SortBlock)
Arguments and temporary variables:
Receiver's instance variables:
package: a MCPackage(SLICE-SortBlock)
modified: false
versionInfo: nil
ancestry: a MCWorkingAncestry
counter: 2
repositoryGroup: a MCRepositoryGroup
requiredPackages: an OrderedCollection(a MCPackage(Collections-Sequenceable) a ...etc...
[] in MCWorkingCopy>>needsSaving
Receiver: a MCWorkingCopy(SLICE-SortBlock)
Arguments and temporary variables:
ea: a MCPackage(SLICE-SortBlock)
Receiver's instance variables:
package: a MCPackage(SLICE-SortBlock)
modified: false
versionInfo: nil
ancestry: a MCWorkingAncestry
counter: 2
repositoryGroup: a MCRepositoryGroup
requiredPackages: an OrderedCollection(a MCPackage(Collections-Sequenceable) a ...etc...
[] in OrderedCollection(Collection)>>anySatisfy:
Receiver: an OrderedCollection(a MCPackage(Collections-Sequenceable) a MCPackage(SLICE-SortBlock))
Arguments and temporary variables:
aBlock: a MCPackage(SLICE-SortBlock)
each: [closure] in MCWorkingCopy>>needsSaving
Receiver's instance variables:
array: an Array(nil nil a MCPackage(Collections-Sequenceable) a MCPackage(SLICE...etc...
firstIndex: 3
lastIndex: 4
OrderedCollection>>do:
Receiver: an OrderedCollection(a MCPackage(Collections-Sequenceable) a MCPackage(SLICE-SortBlock))
Arguments and temporary variables:
aBlock: [closure] in OrderedCollection(Collection)>>anySatisfy:
index: 4
Receiver's instance variables:
array: an Array(nil nil a MCPackage(Collections-Sequenceable) a MCPackage(SLICE...etc...
firstIndex: 3
lastIndex: 4
OrderedCollection(Collection)>>anySatisfy:
Receiver: an OrderedCollection(a MCPackage(Collections-Sequenceable) a MCPackage(SLICE-SortBlock))
Arguments and temporary variables:
aBlock: [closure] in MCWorkingCopy>>needsSaving
Receiver's instance variables:
array: an Array(nil nil a MCPackage(Collections-Sequenceable) a MCPackage(SLICE...etc...
firstIndex: 3
lastIndex: 4
MCWorkingCopy>>needsSaving
Receiver: a MCWorkingCopy(SLICE-SortBlock)
Arguments and temporary variables:
Receiver's instance variables:
package: a MCPackage(SLICE-SortBlock)
modified: false
versionInfo: nil
ancestry: a MCWorkingAncestry
counter: 2
repositoryGroup: a MCRepositoryGroup
requiredPackages: an OrderedCollection(a MCPackage(Collections-Sequenceable) a ...etc...
[] in MCWorkingCopy>>needsSaving
Receiver: a MCWorkingCopy(SLICE-SortBlock)
Arguments and temporary variables:
ea: a MCPackage(SLICE-SortBlock)
Receiver's instance variables:
package: a MCPackage(SLICE-SortBlock)
modified: false
versionInfo: nil
ancestry: a MCWorkingAncestry
counter: 2
repositoryGroup: a MCRepositoryGroup
requiredPackages: an OrderedCollection(a MCPackage(Collections-Sequenceable) a ...etc...
[] in OrderedCollection(Collection)>>anySatisfy:
Receiver: an OrderedCollection(a MCPackage(Collections-Sequenceable) a MCPackage(SLICE-SortBlock))
Arguments and temporary variables:
aBlock: a MCPackage(SLICE-SortBlock)
each: [closure] in MCWorkingCopy>>needsSaving
Receiver's instance variables:
array: an Array(nil nil a MCPackage(Collections-Sequenceable) a MCPackage(SLICE...etc...
firstIndex: 3
lastIndex: 4
OrderedCollection>>do:
Receiver: an OrderedCollection(a MCPackage(Collections-Sequenceable) a MCPackage(SLICE-SortBlock))
Arguments and temporary variables:
aBlock: [closure] in OrderedCollection(Collection)>>anySatisfy:
index: 4
Receiver's instance variables:
array: an Array(nil nil a MCPackage(Collections-Sequenceable) a MCPackage(SLICE...etc...
firstIndex: 3
lastIndex: 4
OrderedCollection(Collection)>>anySatisfy:
Receiver: an OrderedCollection(a MCPackage(Collections-Sequenceable) a MCPackage(SLICE-SortBlock))
Arguments and temporary variables:
aBlock: [closure] in MCWorkingCopy>>needsSaving
Receiver's instance variables:
array: an Array(nil nil a MCPackage(Collections-Sequenceable) a MCPackage(SLICE...etc...
firstIndex: 3
lastIndex: 4
MCWorkingCopy>>needsSaving
Receiver: a MCWorkingCopy(SLICE-SortBlock)
Arguments and temporary variables:
Receiver's instance variables:
package: a MCPackage(SLICE-SortBlock)
modified: false
versionInfo: nil
ancestry: a MCWorkingAncestry
counter: 2
repositoryGroup: a MCRepositoryGroup
requiredPackages: an OrderedCollection(a MCPackage(Collections-Sequenceable) a ...etc...
[] in MCWorkingCopy>>needsSaving
Receiver: a MCWorkingCopy(SLICE-SortBlock)
Arguments and temporary variables:
ea: a MCPackage(SLICE-SortBlock)
Receiver's instance variables:
package: a MCPackage(SLICE-SortBlock)
modified: false
versionInfo: nil
ancestry: a MCWorkingAncestry
counter: 2
repositoryGroup: a MCRepositoryGroup
requiredPackages: an OrderedCollection(a MCPackage(Collections-Sequenceable) a ...etc...
[] in OrderedCollection(Collection)>>anySatisfy:
Receiver: an OrderedCollection(a MCPackage(Collections-Sequenceable) a MCPackage(SLICE-SortBlock))
Arguments and temporary variables:
aBlock: a MCPackage(SLICE-SortBlock)
each: [closure] in MCWorkingCopy>>needsSaving
Receiver's instance variables:
array: an Array(nil nil a MCPackage(Collections-Sequenceable) a MCPackage(SLICE...etc...
firstIndex: 3
lastIndex: 4
OrderedCollection>>do:
Receiver: an OrderedCollection(a MCPackage(Collections-Sequenceable) a MCPackage(SLICE-SortBlock))
Arguments and temporary variables:
aBlock: [closure] in OrderedCollection(Collection)>>anySatisfy:
index: 4
Receiver's instance variables:
array: an Array(nil nil a MCPackage(Collections-Sequenceable) a MCPackage(SLICE...etc...
firstIndex: 3
lastIndex: 4
OrderedCollection(Collection)>>anySatisfy:
Receiver: an OrderedCollection(a MCPackage(Collections-Sequenceable) a MCPackage(SLICE-SortBlock))
Arguments and temporary variables:
aBlock: [closure] in MCWorkingCopy>>needsSaving
Receiver's instance variables:
array: an Array(nil nil a MCPackage(Collections-Sequenceable) a MCPackage(SLICE...etc...
firstIndex: 3
lastIndex: 4
MCWorkingCopy>>needsSaving
Receiver: a MCWorkingCopy(SLICE-SortBlock)
Arguments and temporary variables:
Receiver's instance variables:
package: a MCPackage(SLICE-SortBlock)
modified: false
versionInfo: nil
ancestry: a MCWorkingAncestry
counter: 2
repositoryGroup: a MCRepositoryGroup
requiredPackages: an OrderedCollection(a MCPackage(Collections-Sequenceable) a ...etc...
[] in MCWorkingCopy>>needsSaving
Receiver: a MCWorkingCopy(SLICE-SortBlock)
Arguments and temporary variables:
ea: a MCPackage(SLICE-SortBlock)
Receiver's instance variables:
package: a MCPackage(SLICE-SortBlock)
modified: false
versionInfo: nil
ancestry: a MCWorkingAncestry
counter: 2
repositoryGroup: a MCRepositoryGroup
requiredPackages: an OrderedCollection(a MCPackage(Collections-Sequenceable) a ...etc...
[] in OrderedCollection(Collection)>>anySatisfy:
Receiver: an OrderedCollection(a MCPackage(Collections-Sequenceable) a MCPackage(SLICE-SortBlock))
Arguments and temporary variables:
aBlock: a MCPackage(SLICE-SortBlock)
each: [closure] in MCWorkingCopy>>needsSaving
Receiver's instance variables:
array: an Array(nil nil a MCPackage(Collections-Sequenceable) a MCPackage(SLICE...etc...
firstIndex: 3
lastIndex: 4
OrderedCollection>>do:
Receiver: an OrderedCollection(a MCPackage(Collections-Sequenceable) a MCPackage(SLICE-SortBlock))
Arguments and temporary variables:
aBlock: [closure] in OrderedCollection(Collection)>>anySatisfy:
index: 4
Receiver's instance variables:
array: an Array(nil nil a MCPackage(Collections-Sequenceable) a MCPackage(SLICE...etc...
firstIndex: 3
lastIndex: 4
OrderedCollection(Collection)>>anySatisfy:
Receiver: an OrderedCollection(a MCPackage(Collections-Sequenceable) a MCPackage(SLICE-SortBlock))
Arguments and temporary variables:
aBlock: [closure] in MCWorkingCopy>>needsSaving
Receiver's instance variables:
array: an Array(nil nil a MCPackage(Collections-Sequenceable) a MCPackage(SLICE...etc...
firstIndex: 3
lastIndex: 4
MCWorkingCopy>>needsSaving
Receiver: a MCWorkingCopy(SLICE-SortBlock)
Arguments and temporary variables:
Receiver's instance variables:
package: a MCPackage(SLICE-SortBlock)
modified: false
versionInfo: nil
ancestry: a MCWorkingAncestry
counter: 2
repositoryGroup: a MCRepositoryGroup
requiredPackages: an OrderedCollection(a MCPackage(Collections-Sequenceable) a ...etc...
[] in MCWorkingCopy>>needsSaving
Receiver: a MCWorkingCopy(SLICE-SortBlock)
Arguments and temporary variables:
ea: a MCPackage(SLICE-SortBlock)
Receiver's instance variables:
package: a MCPackage(SLICE-SortBlock)
modified: false
versionInfo: nil
ancestry: a MCWorkingAncestry
counter: 2
repositoryGroup: a MCRepositoryGroup
requiredPackages: an OrderedCollection(a MCPackage(Collections-Sequenceable) a ...etc...
[] in OrderedCollection(Collection)>>anySatisfy:
Receiver: an OrderedCollection(a MCPackage(Collections-Sequenceable) a MCPackage(SLICE-SortBlock))
Arguments and temporary variables:
aBlock: a MCPackage(SLICE-SortBlock)
each: [closure] in MCWorkingCopy>>needsSaving
Receiver's instance variables:
array: an Array(nil nil a MCPackage(Collections-Sequenceable) a MCPackage(SLICE...etc...
firstIndex: 3
lastIndex: 4
OrderedCollection>>do:
Receiver: an OrderedCollection(a MCPackage(Collections-Sequenceable) a MCPackage(SLICE-SortBlock))
Arguments and temporary variables:
aBlock: [closure] in OrderedCollection(Collection)>>anySatisfy:
index: 4
Receiver's instance variables:
array: an Array(nil nil a MCPackage(Collections-Sequenceable) a MCPackage(SLICE...etc...
firstIndex: 3
lastIndex: 4
OrderedCollection(Collection)>>anySatisfy:
Receiver: an OrderedCollection(a MCPackage(Collections-Sequenceable) a MCPackage(SLICE-SortBlock))
Arguments and temporary variables:
aBlock: [closure] in MCWorkingCopy>>needsSaving
Receiver's instance variables:
array: an Array(nil nil a MCPackage(Collections-Sequenceable) a MCPackage(SLICE...etc...
firstIndex: 3
lastIndex: 4
MCWorkingCopy>>needsSaving
Receiver: a MCWorkingCopy(SLICE-SortBlock)
Arguments and temporary variables:
Receiver's instance variables:
package: a MCPackage(SLICE-SortBlock)
modified: false
versionInfo: nil
ancestry: a MCWorkingAncestry
counter: 2
repositoryGroup: a MCRepositoryGroup
requiredPackages: an OrderedCollection(a MCPackage(Collections-Sequenceable) a ...etc...
--- The full stack ---
ByteString(Object)>>shallowCopy
ByteString(Object)>>copy
ByteString(String)>>asLowercase
MCPackage>>hash
Dictionary>>scanFor:
Dictionary(Set)>>findElementOrNil:
Dictionary>>at:ifAbsent:
MCWorkingCopy class(MCPackageManager class)>>forPackage:
MCPackage>>workingCopy
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
OrderedCollection>>do:
OrderedCollection(Collection)>>anySatisfy:
MCWorkingCopy>>needsSaving
[] in MCWorkingCopy>>needsSaving
[] in OrderedCollection(Collection)>>anySatisfy:
-- and more not shown --------------------------------------------------------------
Dec. 23, 2009