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
December 2009
- 96 participants
- 2069 messages
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
Re: [Pharo-project] Fwd: sort: and sortBlock:
by Adrian Kuhn
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 :)
--AA
Dec. 23, 2009
Re: [Pharo-project] Long method can not be compiled using #compile: aString
by Stéphane Ducasse
tx
http://code.google.com/p/pharo/issues/detail?id=1664
Stef
On Dec 23, 2009, at 7:11 PM, Eliot Miranda wrote:
> This results in an MNU instead of a warning about too many literals because Encoder>>notify: does not report notifications if there is no requestor (if compilation is non-interactive). A fix would be to integrate with Colin's compiler error changes, e.g. by having Encoder hold onto its parser and defer to Parser>>notify:. In the interim an adequate fix is
>
> !Encoder methodsFor: 'error handling' stamp: 'eem 12/22/2009 11:57'!
> notify: string
> "Put a separate notifier on top of the requestor's window"
> | req |
> requestor == nil
> ifTrue:
> [super notify: string]
> ifFalse:
> [req := requestor.
> self release.
> req notify: string].
> ^false! !
>
> With this fix a notifier opens stating:
> "More than 256 literals referenced.
> You must split or otherwise simplify this method.
> The 257th literal is: 397
>
> Select Proceed to continue, or close this window to cancel the operation."
>
> Find file-in attached.
>
>
> 2009/12/21 Bart Gauquie <bart.gauquie(a)gmail.com>
> Hi,
>
> First load the latest http://www.squeaksource.com/MorphicsRecordNPlay package.
>
> Then for instance following fails if I evaluate it in a workspace:
>
> MorphicReplayDemoTest compile:
> 'testMethod
> self addMMEFrom: 1054@512 to: 1037@504.
> self addMMEFrom: 1037@504 to: 979@482.
> self addMMEFrom: 979@482 to: 905@464.
> self addMMEFrom: 905@464 to: 823@462.
> self addMMEFrom: 823@462 to: 745@482.
> self addMMEFrom: 745@482 to: 685@520.
> self addMMEFrom: 685@520 to: 651@559.
>
> self addMMEFrom: 651@559 to: 643@579.
> self addMMEFrom: 643@579 to: 653@579.
> self addMMEFrom: 653@579 to: 675@564.
> self addMMEFrom: 675@564 to: 810@452.
> self addMMEFrom: 810@452 to: 923@353.
> self addMMEFrom: 923@353 to: 1005@287.
> self addMMEFrom: 1005@287 to: 1052@257.
> self addMMEFrom: 1052@257 to: 1061@252.
> self addMMEFrom: 1061@252 to: 1059@259.
> self addMMEFrom: 1059@259 to: 998@314.
> self addMMEFrom: 998@314 to: 898@414.
> self addMMEFrom: 898@414 to: 827@502.
> self addMMEFrom: 827@502 to: 789@570.
> self addMMEFrom: 789@570 to: 792@610.
> self addMMEFrom: 792@610 to: 839@630.
> self addMMEFrom: 839@630 to: 929@620.
> self addMMEFrom: 929@620 to: 1039@579.
> self addMMEFrom: 1039@579 to: 1086@549.
> self addMMEFrom: 1086@549 to: 1158@447.
> self addMMEFrom: 1158@447 to: 1147@379.
> self addMMEFrom: 1147@379 to: 1066@377.
> self addMMEFrom: 1066@377 to: 930@416.
> self addMMEFrom: 930@416 to: 864@446.
> self addMMEFrom: 864@446 to: 734@530.
> self addMMEFrom: 734@530 to: 714@548.
> self addMMEFrom: 714@548 to: 734@546.
> self addMMEFrom: 734@546 to: 815@515.
> self addMMEFrom: 815@515 to: 875@491.
> self addMMEFrom: 875@491 to: 1065@407.
> self addMMEFrom: 1065@407 to: 1128@361.
> self addMMEFrom: 1128@361 to: 1142@343.
> self addMMEFrom: 1142@343 to: 1112@340.
> self addMMEFrom: 1112@340 to: 1064@349.
> self addMMEFrom: 1064@349 to: 864@416.
> self addMMEFrom: 864@416 to: 757@471.
> self addMMEFrom: 757@471 to: 705@511.
> self addMMEFrom: 705@511 to: 701@524.
> self addMMEFrom: 701@524 to: 743@528.
> self addMMEFrom: 743@528 to: 845@509.
> self addMMEFrom: 845@509 to: 914@493.
> self addMMEFrom: 914@493 to: 1101@446.
> self addMMEFrom: 1101@446 to: 1154@427.
> self addMMEFrom: 1154@427 to: 1163@423.
> self addMMEFrom: 1163@423 to: 1156@422.
> self addMMEFrom: 1156@422 to: 1129@424.
> self addMMEFrom: 1129@424 to: 923@449.
> self addMMEFrom: 923@449 to: 785@479.
> self addMMEFrom: 785@479 to: 689@503.
> self addMMEFrom: 689@503 to: 651@512.
> self addMMEFrom: 651@512 to: 650@512.
> self addMMEFrom: 650@512 to: 672@508.
> self addMMEFrom: 672@508 to: 773@492.
> self addMMEFrom: 773@492 to: 916@486.
> self addMMEFrom: 916@486 to: 1066@494.
> self addMMEFrom: 1066@494 to: 1175@508.
> self addMMEFrom: 1175@508 to: 1229@514.
> self addMMEFrom: 1229@514 to: 1232@514.
> self addMMEFrom: 1232@514 to: 1142@492.
> self addMMEFrom: 1142@492 to: 986@483.
> self addMMEFrom: 986@483 to: 810@498.
> self addMMEFrom: 810@498 to: 678@519.
> self addMMEFrom: 678@519 to: 637@523.
> self addMMEFrom: 637@523 to: 606@502.
> self addMMEFrom: 606@502 to: 659@442.
> self addMMEFrom: 659@442 to: 769@365.
> self addMMEFrom: 769@365 to: 911@316.
> self addMMEFrom: 911@316 to: 1052@318.
> self addMMEFrom: 1052@318 to: 1129@360.
> self addMMEFrom: 1129@360 to: 1153@403.
> self addMMEFrom: 1153@403 to: 1127@443.
> self addMMEFrom: 1127@443 to: 1015@491.
> self addMMEFrom: 1015@491 to: 850@536.
> self addMMEFrom: 850@536 to: 697@571.
> self addMMEFrom: 697@571 to: 642@578.
> self addMMEFrom: 642@578 to: 571@545.
> self addMMEFrom: 571@545 to: 604@485.
> self addMMEFrom: 604@485 to: 701@419.
> self addMMEFrom: 701@419 to: 843@383.
> self addMMEFrom: 843@383 to: 919@383.
> self addMMEFrom: 919@383 to: 1095@425.
> self addMMEFrom: 1095@425 to: 1126@443.
> self addMMEFrom: 1126@443 to: 1102@449.
> self addMMEFrom: 1102@449 to: 984@468.
> self addMMEFrom: 984@468 to: 829@509.
> self addMMEFrom: 829@509 to: 703@547.
> self addMMEFrom: 703@547 to: 637@555.
> self addMMEFrom: 637@555 to: 633@531.
> self addMMEFrom: 633@531 to: 694@468.
> self addMMEFrom: 694@468 to: 809@407.
> self addMMEFrom: 809@407 to: 946@380.
> self addMMEFrom: 946@380 to: 1011@378.
> self addMMEFrom: 1011@378 to: 1119@393.
> self addMMEFrom: 1119@393 to: 1110@393.
> self addMMEFrom: 1110@393 to: 1010@388.
> self addMMEFrom: 1010@388 to: 859@402.
> self addMMEFrom: 859@402 to: 727@433.
> self addMMEFrom: 727@433 to: 665@454.
> self addMMEFrom: 665@454 to: 663@461.
> self addMMEFrom: 663@461 to: 683@469.
> self addMMEFrom: 683@469 to: 837@492.
> self addMMEFrom: 837@492 to: 989@495.
> self addMMEFrom: 989@495 to: 1103@476.
> self addMMEFrom: 1103@476 to: 1153@433.
> self addMMEFrom: 1153@433 to: 1163@404.
> self addMMEFrom: 1163@404 to: 1147@307.
> self addMMEFrom: 1147@307 to: 1086@294.
> self addMMEFrom: 1086@294 to: 995@324.
> self addMMEFrom: 995@324 to: 935@357.
> self addMMEFrom: 935@357 to: 922@366.
> self addMMEFrom: 922@366 to: 925@370.
> self addMMEFrom: 925@370 to: 941@379.
> self addMMEFrom: 941@379 to: 974@389.
> self addMMEFrom: 974@389 to: 1010@399.
> self addMMEFrom: 1010@399 to: 1036@408.
> self addMMEFrom: 1036@408 to: 1052@414.
> self addMMEFrom: 1052@414 to: 1056@416.
> self addMMEFrom: 1056@416 to: 1061@418.
> self addMMEFrom: 1061@418 to: 1068@419.
> self addMMEFrom: 1068@419 to: 1078@418.
> self addMMEFrom: 1078@418 to: 1086@414.
> self addMMEFrom: 1086@414 to: 1089@411.
> self addMMEFrom: 1089@411 to: 1095@404.
> self addMMEFrom: 1095@404 to: 1097@404.
> self addMMEFrom: 1097@404 to: 1099@406.
> self addMMEFrom: 1099@406 to: 1100@407.
> self addMMEFrom: 1100@407 to: 1101@408.
> self addMMEFrom: 1101@408 to: 1101@409.
> self addMMEFrom: 1101@409 to: 1101@410.
> self addMMEFrom: 1101@410 to: 1102@411.
> self addMMEFrom: 1102@411 to: 1104@412.
> self addMMEFrom: 1104@412 to: 1106@411.
> self addMMEFrom: 1106@411 to: 1110@409.
> self addMMEFrom: 1110@409 to: 1112@408.
> self addMMEFrom: 1112@408 to: 1114@407.
> self addMMEFrom: 1114@407 to: 1115@408.
> self addMMEFrom: 1115@408 to: 1115@408.
> self addMMEFrom: 1115@408 to: 1115@407.
> MouseButtonEvent new.
> MouseButtonEvent new.
> self addMMEFrom: 1131@401 to: 1129@403.
> self addMMEFrom: 1129@403 to: 1121@408.
> self addMMEFrom: 1121@408 to: 1106@416.
> self addMMEFrom: 1106@416 to: 1084@426.
> self addMMEFrom: 1084@426 to: 1051@443.
> self addMMEFrom: 1051@443 to: 1019@470.
> self addMMEFrom: 1019@470 to: 995@504.
> self addMMEFrom: 995@504 to: 981@546.
> self addMMEFrom: 981@546 to: 980@592.
> self addMMEFrom: 980@592 to: 990@634.
> self addMMEFrom: 990@634 to: 1012@665.
> self addMMEFrom: 1012@665 to: 1043@680.
> self addMMEFrom: 1043@680 to: 1076@677.
> self addMMEFrom: 1076@677 to: 1132@658.
> self addMMEFrom: 1132@658 to: 1189@626.
> self addMMEFrom: 1189@626 to: 1205@606.
> self addMMEFrom: 1205@606 to: 1222@543.
> self addMMEFrom: 1222@543 to: 1219@504.
> self addMMEFrom: 1219@504 to: 1207@464.
> self addMMEFrom: 1207@464 to: 1190@425.
> self addMMEFrom: 1190@425 to: 1180@409.
> self addMMEFrom: 1180@409 to: 1140@387.
> self addMMEFrom: 1140@387 to: 1092@397.
> self addMMEFrom: 1092@397 to: 1044@424.
> self addMMEFrom: 1044@424 to: 1004@464.
> self addMMEFrom: 1004@464 to: 977@513.
> self addMMEFrom: 977@513 to: 965@565.
> self addMMEFrom: 965@565 to: 965@614.
> self addMMEFrom: 965@614 to: 977@656.
> self addMMEFrom: 977@656 to: 1001@689.
> self addMMEFrom: 1001@689 to: 1035@709.
> self addMMEFrom: 1035@709 to: 1067@714.
> self addMMEFrom: 1067@714 to: 1094@710.
> self addMMEFrom: 1094@710 to: 1219@673.
> self addMMEFrom: 1219@673 to: 1254@635.
> self addMMEFrom: 1254@635 to: 1269@594.
> self addMMEFrom: 1269@594 to: 1277@552.
> self addMMEFrom: 1277@552 to: 1277@530.
> self addMMEFrom: 1277@530 to: 1251@459.
> self addMMEFrom: 1251@459 to: 1215@418.
> self addMMEFrom: 1215@418 to: 1180@389.
> self addMMEFrom: 1180@389 to: 1143@377.
> self addMMEFrom: 1143@377 to: 1092@379.
> self addMMEFrom: 1092@379 to: 1041@397.
> self addMMEFrom: 1041@397 to: 1019@410.
> self addMMEFrom: 1019@410 to: 972@460.
> self addMMEFrom: 972@460 to: 955@499.
> self addMMEFrom: 955@499 to: 951@541.
> self addMMEFrom: 951@541 to: 954@580.
> self addMMEFrom: 954@580 to: 960@597.
> self addMMEFrom: 960@597 to: 991@639.
> self addMMEFrom: 991@639 to: 1027@657.
> self addMMEFrom: 1027@657 to: 1066@666.
> self addMMEFrom: 1066@666 to: 1122@665.
> self addMMEFrom: 1122@665 to: 1199@651.
> self addMMEFrom: 1199@651 to: 1245@625.
> self addMMEFrom: 1245@625 to: 1270@596.
> self addMMEFrom: 1270@596 to: 1284@565.
> self addMMEFrom: 1284@565 to: 1287@528.
> self addMMEFrom: 1287@528 to: 1275@486.
> self addMMEFrom: 1275@486 to: 1242@445.
> self addMMEFrom: 1242@445 to: 1204@412.
> self addMMEFrom: 1204@412 to: 1171@390.
> self addMMEFrom: 1171@390 to: 1126@383.
> self addMMEFrom: 1126@383 to: 1083@394.
> self addMMEFrom: 1083@394 to: 1040@420.
> self addMMEFrom: 1040@420 to: 1025@438.
> self addMMEFrom: 1025@438 to: 996@506.
> self addMMEFrom: 996@506 to: 992@555.
> self addMMEFrom: 992@555 to: 999@596.
> self addMMEFrom: 999@596 to: 1015@629.
> self addMMEFrom: 1015@629 to: 1027@641.
> self addMMEFrom: 1027@641 to: 1068@658.
> self addMMEFrom: 1068@658 to: 1115@655.
> self addMMEFrom: 1115@655 to: 1184@640.
> self addMMEFrom: 1184@640 to: 1234@616.
> self addMMEFrom: 1234@616 to: 1266@589.
> self addMMEFrom: 1266@589 to: 1290@555.
> self addMMEFrom: 1290@555 to: 1301@518.
> self addMMEFrom: 1301@518 to: 1296@474.
> self addMMEFrom: 1296@474 to: 1267@430.
> self addMMEFrom: 1267@430 to: 1223@392.
> self addMMEFrom: 1223@392 to: 1187@370.
> self addMMEFrom: 1187@370 to: 1172@366.
> self addMMEFrom: 1172@366 to: 1115@375.
> self addMMEFrom: 1115@375 to: 1076@397.
> self addMMEFrom: 1076@397 to: 1046@429.
> self addMMEFrom: 1046@429 to: 1027@468.
> self addMMEFrom: 1027@468 to: 1022@489.
> self addMMEFrom: 1022@489 to: 1023@545.
> self addMMEFrom: 1023@545 to: 1033@567.
> self addMMEFrom: 1033@567 to: 1061@590.
> self addMMEFrom: 1061@590 to: 1104@603.
> self addMMEFrom: 1104@603 to: 1165@605.
> self addMMEFrom: 1165@605 to: 1220@593.
> self addMMEFrom: 1220@593 to: 1258@571.
> self addMMEFrom: 1258@571 to: 1284@543.
> self addMMEFrom: 1284@543 to: 1298@509.
> self addMMEFrom: 1298@509 to: 1299@466.
> self addMMEFrom: 1299@466 to: 1276@414.
> self addMMEFrom: 1276@414 to: 1255@390.
> self addMMEFrom: 1255@390 to: 1189@340.
> self addMMEFrom: 1189@340 to: 1148@334.
> self addMMEFrom: 1148@334 to: 1094@346.
> self addMMEFrom: 1094@346 to: 1051@373.
> self addMMEFrom: 1051@373 to: 1021@412.
> self addMMEFrom: 1021@412 to: 1006@457.
> self addMMEFrom: 1006@457 to: 1002@506.
> self addMMEFrom: 1002@506 to: 1006@557.
> self addMMEFrom: 1006@557 to: 1012@581.
> self addMMEFrom: 1012@581 to: 1041@637.
> self addMMEFrom: 1041@637 to: 1070@657.
> self addMMEFrom: 1070@657 to: 1127@660.
> self addMMEFrom: 1127@660 to: 1209@644.
> self addMMEFrom: 1209@644 to: 1234@630.
> self addMMEFrom: 1234@630 to: 1284@569.
> self addMMEFrom: 1284@569 to: 1302@521.
> self addMMEFrom: 1302@521 to: 1304@466.
> self addMMEFrom: 1304@466 to: 1286@410.
> self addMMEFrom: 1286@410 to: 1247@369.
> self addMMEFrom: 1247@369 to: 1208@347.
> self addMMEFrom: 1208@347 to: 1196@342.
> self addMMEFrom: 1196@342 to: 1170@346.
> self addMMEFrom: 1170@346 to: 1151@356.
> self addMMEFrom: 1151@356 to: 1137@363.
> self addMMEFrom: 1137@363 to: 1133@366.
> self addMMEFrom: 1133@366 to: 1133@366.
> self addMMEFrom: 1133@366 to: 1135@372.
> self addMMEFrom: 1135@372 to: 1133@381.
> self addMMEFrom: 1133@381 to: 1128@393.
> self addMMEFrom: 1128@393 to: 1126@399.
> self addMMEFrom: 1126@399 to: 1125@401.
> self addMMEFrom: 1125@401 to: 1125@401.
> self addMMEFrom: 1125@401 to: 1125@400.
> self addMMEFrom: 1125@400 to: 1124@401.
> self addMMEFrom: 1124@401 to: 1124@403.
> self addMMEFrom: 1124@403 to: 1124@404.
> self addMMEFrom: 1124@404 to: 1124@405.
> self addMMEFrom: 1124@405 to: 1124@404.
> MouseButtonEvent new.
> MouseButtonEvent new.
> '
>
> These are autogenerated contents I want to export as a test case. The strange thing is that, if I manually create the testMethod using the system browser, and paste the content in it; it works fine.
>
> Kind Regards,
>
> Bart
>
> 2009/12/21 Eliot Miranda <eliot.miranda(a)gmail.com>
>
> Hi Bart,
>
> I still want to take a look at this specific case because the compiler should produce a proper error message, not an internal error. So could you please package it up as a reproducible case, or email me the full string that fails?
>
> TIA
>
>
> 2009/12/20 Bart Gauquie <bart.gauquie(a)gmail.com>
> Dear all,
>
> I'm developing code which generates a method content, compiles it and adds it to an existing class.
> I compile the message using #compile: message:
> for instance:
>
> MorphicReplayDemoTest compile: '
> testMethod
> self addMMEFrom: 1054@512 to: 1037@504.
> self addMMEFrom: 651@559 to: 643@579.
> '.
>
> This works fine. However if the contents of the method is too long; for instance:
> if the self addMMEFrom: 1054@512 to: 1037@504. is repeated around 250 times; I get following error (see stack below)
>
> The strange thing is that if I manually add that method using the editor and paste it, it works just fine. I even tested up to 5000 lines of code; its slow, but its working.
>
> Any ideas how to solve this?
>
> Thanks,
>
> Bart
>
> I'm using Pharo 1.0 rc update: 10502; using Ubuntu 9.10, using vm pharo-vm-0.15.2f-linux.
>
> THERE_BE_DRAGONS_HERE
> MessageNotUnderstood: receiver of "<" is nil
> 20 December 2009 8:17:14 pm
>
> VM: unix - i686 - linux-gnu - Pharo0.1 of 16 May 2008 [latest update: #10074]
> Image: PharoCore1.0rc1 [Latest update: #10502]
>
> SecurityManager state:
> Restricted: false
> FileAccess: true
> SocketAccess: true
> Working Dir /home/gauquiebart/Smalltalk/Pharo/Images/Pharo 1.0 Playground Image
> Trusted Dir /home/gauquiebart/Smalltalk/Pharo/Images/Pharo 1.0 Playground Image/secure
> Untrusted Dir /home/gauquiebart/Smalltalk/Pharo/Images/Pharo 1.0 Playground Image/My Squeak
>
> UndefinedObject(Object)>>doesNotUnderstand: #<
> Receiver: nil
> Arguments and temporary variables:
> aMessage: < 0
> exception: MessageNotUnderstood: receiver of "<" is nil
> resumeValue: nil
> Receiver's instance variables:
> nil
>
> EncoderForV3PlusClosures(EncoderForV3)>>genPushLiteral:
> Receiver: {an EncoderForV3PlusClosures}
> Arguments and temporary variables:
> literalIndex: nil
> Receiver's instance variables:
> comment: nil
> pc: nil
> scopeTable: a Dictionary('false'->{false} 'nil'->{nil} 'recording'->{recording}...etc...
> nTemps: 0
> supered: false
> requestor: nil
> class: MorphicReplayDemoTest
> selector: #testMethod
> literalStream: a WriteStream {#addMMEFrom:to:. 1054. 512. 1037. 504. 979. 482. ...etc...
> selectorSet: a Dictionary(#*->{*} #+->{+} #-->{-} #/->{/} #'//'->{//} #<->{<} #...etc...
> litIndSet: a Dictionary(#MouseButtonEvent->MouseButtonEvent->{MouseButtonEvent}...etc...
> litSet: a LiteralDictionary(size 402)
> sourceRanges: a Dictionary(size 853)
> globalSourceRanges: an OrderedCollection({'MouseButtonEvent'. (5763 to: 5778). ...etc...
> addedSelectorAndMethodClassLiterals: false
> stream: {an EncoderForV3PlusClosures}
> position: 0
> rootNode: testMethod
> self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
> self addMMEF...etc...
> blockExtentsToLocals: nil
>
> EncoderForV3PlusClosures(BytecodeEncoder)>>sizeOpcodeSelector:withArguments:
> Receiver: {an EncoderForV3PlusClosures}
> Arguments and temporary variables:
> genSelector: #genPushLiteral:
> args: #(nil)
> Receiver's instance variables:
> comment: nil
> pc: nil
> scopeTable: a Dictionary('false'->{false} 'nil'->{nil} 'recording'->{recording}...etc...
> nTemps: 0
> supered: false
> requestor: nil
> class: MorphicReplayDemoTest
> selector: #testMethod
> literalStream: a WriteStream {#addMMEFrom:to:. 1054. 512. 1037. 504. 979. 482. ...etc...
> selectorSet: a Dictionary(#*->{*} #+->{+} #-->{-} #/->{/} #'//'->{//} #<->{<} #...etc...
> litIndSet: a Dictionary(#MouseButtonEvent->MouseButtonEvent->{MouseButtonEvent}...etc...
> litSet: a LiteralDictionary(size 402)
> sourceRanges: a Dictionary(size 853)
> globalSourceRanges: an OrderedCollection({'MouseButtonEvent'. (5763 to: 5778). ...etc...
> addedSelectorAndMethodClassLiterals: false
> stream: {an EncoderForV3PlusClosures}
> position: 0
> rootNode: testMethod
> self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
> self addMMEF...etc...
> blockExtentsToLocals: nil
>
> EncoderForV3PlusClosures(BytecodeEncoder)>>sizePushLiteral:
> Receiver: {an EncoderForV3PlusClosures}
> Arguments and temporary variables:
> literalIndex: nil
> Receiver's instance variables:
> comment: nil
> pc: nil
> scopeTable: a Dictionary('false'->{false} 'nil'->{nil} 'recording'->{recording}...etc...
> nTemps: 0
> supered: false
> requestor: nil
> class: MorphicReplayDemoTest
> selector: #testMethod
> literalStream: a WriteStream {#addMMEFrom:to:. 1054. 512. 1037. 504. 979. 482. ...etc...
> selectorSet: a Dictionary(#*->{*} #+->{+} #-->{-} #/->{/} #'//'->{//} #<->{<} #...etc...
> litIndSet: a Dictionary(#MouseButtonEvent->MouseButtonEvent->{MouseButtonEvent}...etc...
> litSet: a LiteralDictionary(size 402)
> sourceRanges: a Dictionary(size 853)
> globalSourceRanges: an OrderedCollection({'MouseButtonEvent'. (5763 to: 5778). ...etc...
> addedSelectorAndMethodClassLiterals: false
> stream: {an EncoderForV3PlusClosures}
> position: 0
> rootNode: testMethod
> self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
> self addMMEF...etc...
> blockExtentsToLocals: nil
>
> LiteralNode>>sizeCodeForValue:
> Receiver: {397}
> Arguments and temporary variables:
> encoder: {an EncoderForV3PlusClosures}
> Receiver's instance variables:
> comment: nil
> pc: nil
> key: 397
> code: -3
> index: nil
>
> [] in MessageNode>>sizeCodeForValue:
> Receiver: {1092 @ 397}
> Arguments and temporary variables:
> <<error during printing>
> Receiver's instance variables:
> comment: nil
> pc: nil
> receiver: {1092}
> selector: {@}
> precedence: 2
> special: 0
> arguments: #({397})
> sizes: #(nil)
> equalNode: nil
> caseErrorNode: nil
>
> Array(SequenceableCollection)>>collect:
> Receiver: #({397})
> Arguments and temporary variables:
> aBlock: [closure] in MessageNode>>sizeCodeForValue:
> newCollection: #(nil)
> index: 1
> indexLimiT: 1
> Receiver's instance variables:
> #({397})
>
> MessageNode>>sizeCodeForValue:
> Receiver: {1092 @ 397}
> Arguments and temporary variables:
> <<error during printing>
> Receiver's instance variables:
> comment: nil
> pc: nil
> receiver: {1092}
> selector: {@}
> precedence: 2
> special: 0
> arguments: #({397})
> sizes: #(nil)
> equalNode: nil
> caseErrorNode: nil
>
> [] in MessageNode>>sizeCodeForValue:
> Receiver: {self addMMEFrom: 1140 @ 387 to: 1092 @ 397}
> Arguments and temporary variables:
> <<error during printing>
> Receiver's instance variables:
> comment: nil
> pc: nil
> receiver: {self}
> selector: {addMMEFrom:to:}
> precedence: 3
> special: 0
> arguments: an OrderedCollection({1140 @ 387} {1092 @ 397})
> sizes: #(nil nil)
> equalNode: nil
> caseErrorNode: nil
>
> OrderedCollection>>collect:
> Receiver: an OrderedCollection({1140 @ 387} {1092 @ 397})
> Arguments and temporary variables:
> aBlock: [closure] in MessageNode>>sizeCodeForValue:
> newCollection: an OrderedCollection(7)
> index: 4
> Receiver's instance variables:
> array: an Array(nil nil {1140 @ 387} {1092 @ 397} nil nil nil nil nil nil)
> firstIndex: 3
> lastIndex: 4
>
> MessageNode>>sizeCodeForValue:
> Receiver: {self addMMEFrom: 1140 @ 387 to: 1092 @ 397}
> Arguments and temporary variables:
> <<error during printing>
> Receiver's instance variables:
> comment: nil
> pc: nil
> receiver: {self}
> selector: {addMMEFrom:to:}
> precedence: 3
> special: 0
> arguments: an OrderedCollection({1140 @ 387} {1092 @ 397})
> sizes: #(nil nil)
> equalNode: nil
> caseErrorNode: nil
>
> MessageNode(ParseNode)>>sizeCodeForEffect:
> Receiver: {self addMMEFrom: 1140 @ 387 to: 1092 @ 397}
> Arguments and temporary variables:
> encoder: {an EncoderForV3PlusClosures}
> Receiver's instance variables:
> comment: nil
> pc: nil
> receiver: {self}
> selector: {addMMEFrom:to:}
> precedence: 3
> special: 0
> arguments: an OrderedCollection({1140 @ 387} {1092 @ 397})
> sizes: #(nil nil)
> equalNode: nil
> caseErrorNode: nil
>
> MessageNode>>sizeCodeForEffect:
> Receiver: {self addMMEFrom: 1140 @ 387 to: 1092 @ 397}
> Arguments and temporary variables:
> encoder: {an EncoderForV3PlusClosures}
> Receiver's instance variables:
> comment: nil
> pc: nil
> receiver: {self}
> selector: {addMMEFrom:to:}
> precedence: 3
> special: 0
> arguments: an OrderedCollection({1140 @ 387} {1092 @ 397})
> sizes: #(nil nil)
> equalNode: nil
> caseErrorNode: nil
>
> BlockNode>>sizeCodeExceptLast:
> Receiver: {[self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
> self addMMEFrom: 1037 @ 504 to: 979 @ 482.
> ...etc...
> Arguments and temporary variables:
> encoder: {an EncoderForV3PlusClosures}
> codeSize: 2564
> i: 169
> statement: {self addMMEFrom: 1140 @ 387 to: 1092 @ 397}
> iLimiT: 287
> Receiver's instance variables:
> comment: nil
> pc: nil
> arguments: #()
> statements: an OrderedCollection({self addMMEFrom: 1054 @ 512 to: 1037 @ 504} {...etc...
> returns: true
> nArgsNode: nil
> size: nil
> remoteCopyNode: nil
> temporaries: an OrderedCollection()
> optimized: false
> actualScopeIfOptimized: nil
> blockExtent: (0 to: 2)
> remoteTempNode: nil
> copiedValues: nil
> closureCreationNode: nil
> startOfLastStatement: 11519
>
> BlockNode>>sizeCodeForEvaluatedValue:
> Receiver: {[self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
> self addMMEFrom: 1037 @ 504 to: 979 @ 482.
> ...etc...
> Arguments and temporary variables:
> encoder: {an EncoderForV3PlusClosures}
> Receiver's instance variables:
> comment: nil
> pc: nil
> arguments: #()
> statements: an OrderedCollection({self addMMEFrom: 1054 @ 512 to: 1037 @ 504} {...etc...
> returns: true
> nArgsNode: nil
> size: nil
> remoteCopyNode: nil
> temporaries: an OrderedCollection()
> optimized: false
> actualScopeIfOptimized: nil
> blockExtent: (0 to: 2)
> remoteTempNode: nil
> copiedValues: nil
> closureCreationNode: nil
> startOfLastStatement: 11519
>
> BytecodeAgnosticMethodNode>>generate:
> Receiver: testMethod
> self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
> self addMMEFrom: 1037 @ 504 to: 9...etc...
> Arguments and temporary variables:
> trailer: #(0 0 0 0)
> primErrNode: nil
> blkSize: nil
> nLits: nil
> literals: nil
> stack: nil
> method: nil
> locals: nil
> lit: nil
> Receiver's instance variables:
> comment: nil
> pc: nil
> selectorOrFalse: #testMethod
> precedence: 1
> arguments: #()
> block: {[self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
> self addMMEFrom: 1037 @ 5...etc...
> primitive: 0
> encoder: {an EncoderForV3PlusClosures}
> temporaries: #()
> properties: an AdditionalMethodState
> sourceText: 'testMethod
> self addMMEFrom: 1054@512 to: 1037@504.
> self addMMEFr...etc...
> locationCounter: 3
> localsPool: an IdentitySet()
>
> CompiledMethodWithNode class>>generateMethodFromNode:trailer:
> Receiver: CompiledMethodWithNode
> Arguments and temporary variables:
> aMethodNode: testMethod
> self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
> self addM...etc...
> bytes: #(0 0 0 0)
> Receiver's instance variables:
> superclass: Object
> methodDict: a MethodDictionary(#method->a CompiledMethod(650: CompiledMethodWit...etc...
> format: 134
> instanceVariables: #('node' 'method')
> organization: ('accessing' method node selector)
> ('private' method: node:)
>
> subclasses: nil
> name: #CompiledMethodWithNode
> classPool: nil
> sharedPools: nil
> environment: Smalltalk
> category: #'Compiler-Support'
> traitComposition: nil
> localSelectors: nil
>
> MorphicReplayDemoTest class(Behavior)>>compile:classified:notifying:trailer:ifFail:
> Receiver: MorphicReplayDemoTest
> Arguments and temporary variables:
> code: 'testMethod
> self addMMEFrom: 1054@512 to: 1037@504.
> self addMMEFrom: 10...etc...
> category: #'as yet unclassified'
> requestor: nil
> bytes: #(0 0 0 0)
> failBlock: [closure] in MorphicReplayDemoTest class(ClassDescription)>>compile:...etc...
> methodNode: testMethod
> self addMMEFrom: 1054 @ 512 to: 1037 @ 504.
> self addMM...etc...
> Receiver's instance variables:
> superclass: AbstractReplayTestCase
> methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191: MorphicRepla...etc...
> format: 134
> instanceVariables: nil
> organization: ('tests' testMethod)
>
> subclasses: nil
> name: #MorphicReplayDemoTest
> classPool: nil
> sharedPools: nil
> environment: Smalltalk
> category: #'MorphicsRecordNPlay-Model'
> traitComposition: nil
> localSelectors: nil
> history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a Set(#testM...etc...
>
> MorphicReplayDemoTest class(ClassDescription)>>compile:classified:withStamp:notifying:logSource:
> Receiver: MorphicReplayDemoTest
> Arguments and temporary variables:
> text: 'testMethod
> self addMMEFrom: 1054@512 to: 1037@504.
> self addMMEFrom: 10...etc...
> category: #'as yet unclassified'
> changeStamp: 'BartGauquie 12/20/2009 20:17'
> requestor: nil
> logSource: true
> methodAndNode: nil
> Receiver's instance variables:
> superclass: AbstractReplayTestCase
> methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191: MorphicRepla...etc...
> format: 134
> instanceVariables: nil
> organization: ('tests' testMethod)
>
> subclasses: nil
> name: #MorphicReplayDemoTest
> classPool: nil
> sharedPools: nil
> environment: Smalltalk
> category: #'MorphicsRecordNPlay-Model'
> traitComposition: nil
> localSelectors: nil
> history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a Set(#testM...etc...
>
> MorphicReplayDemoTest class(ClassDescription)>>compile:classified:withStamp:notifying:
> Receiver: MorphicReplayDemoTest
> Arguments and temporary variables:
> text: 'testMethod
> self addMMEFrom: 1054@512 to: 1037@504.
> self addMMEFrom: 10...etc...
> category: #'as yet unclassified'
> changeStamp: 'BartGauquie 12/20/2009 20:17'
> requestor: nil
> Receiver's instance variables:
> superclass: AbstractReplayTestCase
> methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191: MorphicRepla...etc...
> format: 134
> instanceVariables: nil
> organization: ('tests' testMethod)
>
> subclasses: nil
> name: #MorphicReplayDemoTest
> classPool: nil
> sharedPools: nil
> environment: Smalltalk
> category: #'MorphicsRecordNPlay-Model'
> traitComposition: nil
> localSelectors: nil
> history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a Set(#testM...etc...
>
> MorphicReplayDemoTest class(ClassDescription)>>compile:classified:notifying:
> Receiver: MorphicReplayDemoTest
> Arguments and temporary variables:
> text: 'testMethod
> self addMMEFrom: 1054@512 to: 1037@504.
> self addMMEFrom: 10...etc...
> category: #'as yet unclassified'
> requestor: nil
> stamp: 'BartGauquie 12/20/2009 20:17'
> Receiver's instance variables:
> superclass: AbstractReplayTestCase
> methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191: MorphicRepla...etc...
> format: 134
> instanceVariables: nil
> organization: ('tests' testMethod)
>
> subclasses: nil
> name: #MorphicReplayDemoTest
> classPool: nil
> sharedPools: nil
> environment: Smalltalk
> category: #'MorphicsRecordNPlay-Model'
> traitComposition: nil
> localSelectors: nil
> history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a Set(#testM...etc...
>
> MorphicReplayDemoTest class(ClassDescription)>>compile:notifying:
> Receiver: MorphicReplayDemoTest
> Arguments and temporary variables:
> code: 'testMethod
> self addMMEFrom: 1054@512 to: 1037@504.
> self addMMEFrom: 10...etc...
> requestor: nil
> Receiver's instance variables:
> superclass: AbstractReplayTestCase
> methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191: MorphicRepla...etc...
> format: 134
> instanceVariables: nil
> organization: ('tests' testMethod)
>
> subclasses: nil
> name: #MorphicReplayDemoTest
> classPool: nil
> sharedPools: nil
> environment: Smalltalk
> category: #'MorphicsRecordNPlay-Model'
> traitComposition: nil
> localSelectors: nil
> history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a Set(#testM...etc...
>
> MorphicReplayDemoTest class(Behavior)>>compile:
> Receiver: MorphicReplayDemoTest
> Arguments and temporary variables:
> code: 'testMethod
> self addMMEFrom: 1054@512 to: 1037@504.
> self addMMEFrom: 10...etc...
> Receiver's instance variables:
> superclass: AbstractReplayTestCase
> methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191: MorphicRepla...etc...
> format: 134
> instanceVariables: nil
> organization: ('tests' testMethod)
>
> subclasses: nil
> name: #MorphicReplayDemoTest
> classPool: nil
> sharedPools: nil
> environment: Smalltalk
> category: #'MorphicsRecordNPlay-Model'
> traitComposition: nil
> localSelectors: nil
> history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a Set(#testM...etc...
>
> ByteString>>DoIt
> Receiver: 'testMethod
> self addMMEFrom: 1054@512 to: 1037@504.
> self addMMEFrom: 1037@504 to: 979@48...etc...
> Arguments and temporary variables:
>
> Receiver's instance variables:
> 'testMethod
> self addMMEFrom: 1054@512 to: 1037@504.
> self addMMEFrom: 1037@504 to: 979@48...etc...
>
> Compiler>>evaluate:in:to:notifying:ifFail:logged:
> Receiver: a Compiler
> Arguments and temporary variables:
> textOrStream: a ReadWriteStream 'MorphicReplayDemoTest
> compile: self.'
> aContext: nil
> receiver: 'testMethod
> self addMMEFrom: 1054@512 to: 1037@504.
> self addMMEFrom...etc...
> aRequestor: a TextMorphEditor
> failBlock: [closure] in [] in TextMorphEditor(ParagraphEditor)>>evaluateSelecti...etc...
> logFlag: true
> methodNode: DoIt
> ^ MorphicReplayDemoTest compile: self
> method: a CompiledMethod(2378: ByteString>>DoIt)
> value: nil
> toLog: nil
> itsSelection: nil
> itsSelectionString: nil
> Receiver's instance variables:
> sourceStream: a ReadWriteStream 'MorphicReplayDemoTest
> compile: self.'
> requestor: a TextMorphEditor
> class: ByteString
> category: nil
> context: nil
> parser: a Parser
>
> [] in TextMorphEditor(ParagraphEditor)>>evaluateSelection
> Receiver: a TextMorphEditor
> Arguments and temporary variables:
> rcvr: 'testMethod
> self addMMEFrom: 1054@512 to: 1037@504.
> self addMMEFrom: 10...etc...
> ctxt: nil
> Receiver's instance variables:
> model: a NewInspector
> paragraph: a MultiNewParagraph
> startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32
> ...etc...
> stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc...
> beginTypeInBlock: nil
> emphasisHere: an Array(a TextFontChange font: 2)
> initialText: a Text for 'MorphicReplayDemoTest
> compile: self
> '
> selectionShowing: false
> otherInterval: (38 to: 38)
> lastParentLocation: nil
> morph: a TextMorphForEditView(3730)
> oldInterval: nil
> pivotBlock: nil
>
> BlockClosure>>on:do:
> Receiver: [closure] in TextMorphEditor(ParagraphEditor)>>evaluateSelection
> Arguments and temporary variables:
> exception: OutOfScopeNotification
> handlerAction: [closure] in TextMorphEditor(ParagraphEditor)>>evaluateSelection...etc...
> handlerActive: true
> Receiver's instance variables:
> outerContext: TextMorphEditor(ParagraphEditor)>>evaluateSelection
> startpc: 116
> numArgs: 0
>
> TextMorphEditor(ParagraphEditor)>>evaluateSelection
> Receiver: a TextMorphEditor
> Arguments and temporary variables:
> result: nil
> rcvr: 'testMethod
> self addMMEFrom: 1054@512 to: 1037@504.
> self addMMEFrom: 10...etc...
> ctxt: nil
> Receiver's instance variables:
> model: a NewInspector
> paragraph: a MultiNewParagraph
> startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32
> ...etc...
> stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc...
> beginTypeInBlock: nil
> emphasisHere: an Array(a TextFontChange font: 2)
> initialText: a Text for 'MorphicReplayDemoTest
> compile: self
> '
> selectionShowing: false
> otherInterval: (38 to: 38)
> lastParentLocation: nil
> morph: a TextMorphForEditView(3730)
> oldInterval: nil
> pivotBlock: nil
>
> TextMorphEditor(ParagraphEditor)>>doIt
> Receiver: a TextMorphEditor
> Arguments and temporary variables:
>
> Receiver's instance variables:
> model: a NewInspector
> paragraph: a MultiNewParagraph
> startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32
> ...etc...
> stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc...
> beginTypeInBlock: nil
> emphasisHere: an Array(a TextFontChange font: 2)
> initialText: a Text for 'MorphicReplayDemoTest
> compile: self
> '
> selectionShowing: false
> otherInterval: (38 to: 38)
> lastParentLocation: nil
> morph: a TextMorphForEditView(3730)
> oldInterval: nil
> pivotBlock: nil
>
> [] in TextMorphEditor(ParagraphEditor)>>doIt:
> Receiver: a TextMorphEditor
> Arguments and temporary variables:
>
> Receiver's instance variables:
> model: a NewInspector
> paragraph: a MultiNewParagraph
> startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32
> ...etc...
> stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc...
> beginTypeInBlock: nil
> emphasisHere: an Array(a TextFontChange font: 2)
> initialText: a Text for 'MorphicReplayDemoTest
> compile: self
> '
> selectionShowing: false
> otherInterval: (38 to: 38)
> lastParentLocation: nil
> morph: a TextMorphForEditView(3730)
> oldInterval: nil
> pivotBlock: nil
>
> TextMorphEditor(ParagraphEditor)>>terminateAndInitializeAround:
> Receiver: a TextMorphEditor
> Arguments and temporary variables:
> aBlock: [closure] in TextMorphEditor(ParagraphEditor)>>doIt:
> Receiver's instance variables:
> model: a NewInspector
> paragraph: a MultiNewParagraph
> startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32
> ...etc...
> stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc...
> beginTypeInBlock: nil
> emphasisHere: an Array(a TextFontChange font: 2)
> initialText: a Text for 'MorphicReplayDemoTest
> compile: self
> '
> selectionShowing: false
> otherInterval: (38 to: 38)
> lastParentLocation: nil
> morph: a TextMorphForEditView(3730)
> oldInterval: nil
> pivotBlock: nil
>
> TextMorphEditor(ParagraphEditor)>>doIt:
> Receiver: a TextMorphEditor
> Arguments and temporary variables:
> characterStream: a WriteStream ''
> Receiver's instance variables:
> model: a NewInspector
> paragraph: a MultiNewParagraph
> startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32
> ...etc...
> stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc...
> beginTypeInBlock: nil
> emphasisHere: an Array(a TextFontChange font: 2)
> initialText: a Text for 'MorphicReplayDemoTest
> compile: self
> '
> selectionShowing: false
> otherInterval: (38 to: 38)
> lastParentLocation: nil
> morph: a TextMorphForEditView(3730)
> oldInterval: nil
> pivotBlock: nil
>
> TextMorphEditor(ParagraphEditor)>>dispatchOnKeyEvent:with:
> Receiver: a TextMorphEditor
> Arguments and temporary variables:
> keyEvent: [keystroke '<Cmd-d>']
> typeAheadStream: a WriteStream ''
> honorCommandKeys: true
> keyValue: 100
> keyChar: $d
> char: $d
> action: #doIt:
> Receiver's instance variables:
> model: a NewInspector
> paragraph: a MultiNewParagraph
> startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32
> ...etc...
> stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc...
> beginTypeInBlock: nil
> emphasisHere: an Array(a TextFontChange font: 2)
> initialText: a Text for 'MorphicReplayDemoTest
> compile: self
> '
> selectionShowing: false
> otherInterval: (38 to: 38)
> lastParentLocation: nil
> morph: a TextMorphForEditView(3730)
> oldInterval: nil
> pivotBlock: nil
>
> TextMorphEditor>>dispatchOnKeyEvent:with:
> Receiver: a TextMorphEditor
> Arguments and temporary variables:
> keyEvent: [keystroke '<Cmd-d>']
> typeAheadStream: a WriteStream ''
> Receiver's instance variables:
> model: a NewInspector
> paragraph: a MultiNewParagraph
> startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32
> ...etc...
> stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc...
> beginTypeInBlock: nil
> emphasisHere: an Array(a TextFontChange font: 2)
> initialText: a Text for 'MorphicReplayDemoTest
> compile: self
> '
> selectionShowing: false
> otherInterval: (38 to: 38)
> lastParentLocation: nil
> morph: a TextMorphForEditView(3730)
> oldInterval: nil
> pivotBlock: nil
>
> TextMorphEditor(ParagraphEditor)>>keystroke:
> Receiver: a TextMorphEditor
> Arguments and temporary variables:
> keyEvent: [keystroke '<Cmd-d>']
> typeAhead: a WriteStream ''
> Receiver's instance variables:
> model: a NewInspector
> paragraph: a MultiNewParagraph
> startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32
> ...etc...
> stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc...
> beginTypeInBlock: nil
> emphasisHere: an Array(a TextFontChange font: 2)
> initialText: a Text for 'MorphicReplayDemoTest
> compile: self
> '
> selectionShowing: false
> otherInterval: (38 to: 38)
> lastParentLocation: nil
> morph: a TextMorphForEditView(3730)
> oldInterval: nil
> pivotBlock: nil
>
> TextMorphEditor>>keystroke:
> Receiver: a TextMorphEditor
> Arguments and temporary variables:
> keyEvent: [keystroke '<Cmd-d>']
> Receiver's instance variables:
> model: a NewInspector
> paragraph: a MultiNewParagraph
> startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32
> ...etc...
> stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc...
> beginTypeInBlock: nil
> emphasisHere: an Array(a TextFontChange font: 2)
> initialText: a Text for 'MorphicReplayDemoTest
> compile: self
> '
> selectionShowing: false
> otherInterval: (38 to: 38)
> lastParentLocation: nil
> morph: a TextMorphForEditView(3730)
> oldInterval: nil
> pivotBlock: nil
>
> [] in [] in TextMorphForEditView(TextMorph)>>keyStroke:
> Receiver: a TextMorphForEditView(3730)
> Arguments and temporary variables:
> evt: [keystroke '<Cmd-d>']
> Receiver's instance variables:
> bounds: 0@0 corner: 358@34
> owner: a TransformMorph(942)
> submorphs: #()
> fullBounds: 0@0 corner: 358@34
> color: Color black
> extension: a MorphExtension (3477) [other: (blinkStart -> 11369859)]
> borderWidth: 0
> borderColor: Color black
> textStyle: a TextStyle Bitmap DejaVu Sans 9
> text: a Text for 'MorphicReplayDemoTest
> compile: self.'
> wrapFlag: true
> paragraph: a MultiNewParagraph
> editor: a TextMorphEditor
> container: nil
> predecessor: nil
> successor: nil
> backgroundColor: nil
> margins: nil
> editHistory: a TextMorphCommandHistory
> editView: a PluggableTextMorphPlus(2866)
> acceptOnCR: false
>
> TextMorphForEditView(TextMorph)>>handleInteraction:
> Receiver: a TextMorphForEditView(3730)
> Arguments and temporary variables:
> interactionBlock: [closure] in [] in TextMorphForEditView(TextMorph)>>keyStroke...etc...
> oldEditor: a TextMorphEditor
> oldParagraph: a MultiNewParagraph
> oldText: a Text for 'MorphicReplayDemoTest
> compile: self.'
> Receiver's instance variables:
> bounds: 0@0 corner: 358@34
> owner: a TransformMorph(942)
> submorphs: #()
> fullBounds: 0@0 corner: 358@34
> color: Color black
> extension: a MorphExtension (3477) [other: (blinkStart -> 11369859)]
> borderWidth: 0
> borderColor: Color black
> textStyle: a TextStyle Bitmap DejaVu Sans 9
> text: a Text for 'MorphicReplayDemoTest
> compile: self.'
> wrapFlag: true
> paragraph: a MultiNewParagraph
> editor: a TextMorphEditor
> container: nil
> predecessor: nil
> successor: nil
> backgroundColor: nil
> margins: nil
> editHistory: a TextMorphCommandHistory
> editView: a PluggableTextMorphPlus(2866)
> acceptOnCR: false
>
> TextMorphForEditView>>handleInteraction:
> Receiver: a TextMorphForEditView(3730)
> Arguments and temporary variables:
> interActionBlock: [closure] in [] in TextMorphForEditView(TextMorph)>>keyStroke...etc...
> Receiver's instance variables:
> bounds: 0@0 corner: 358@34
> owner: a TransformMorph(942)
> submorphs: #()
> fullBounds: 0@0 corner: 358@34
> color: Color black
> extension: a MorphExtension (3477) [other: (blinkStart -> 11369859)]
> borderWidth: 0
> borderColor: Color black
> textStyle: a TextStyle Bitmap DejaVu Sans 9
> text: a Text for 'MorphicReplayDemoTest
> compile: self.'
> wrapFlag: true
> paragraph: a MultiNewParagraph
> editor: a TextMorphEditor
> container: nil
> predecessor: nil
> successor: nil
> backgroundColor: nil
> margins: nil
> editHistory: a TextMorphCommandHistory
> editView: a PluggableTextMorphPlus(2866)
> acceptOnCR: false
>
>
> --- The full stack ---
> UndefinedObject(Object)>>doesNotUnderstand: #<
> EncoderForV3PlusClosures(EncoderForV3)>>genPushLiteral:
> EncoderForV3PlusClosures(BytecodeEncoder)>>sizeOpcodeSelector:withArguments:
> EncoderForV3PlusClosures(BytecodeEncoder)>>sizePushLiteral:
> LiteralNode>>sizeCodeForValue:
> [] in MessageNode>>sizeCodeForValue:
> Array(SequenceableCollection)>>collect:
> MessageNode>>sizeCodeForValue:
> [] in MessageNode>>sizeCodeForValue:
> OrderedCollection>>collect:
> MessageNode>>sizeCodeForValue:
> MessageNode(ParseNode)>>sizeCodeForEffect:
> MessageNode>>sizeCodeForEffect:
> BlockNode>>sizeCodeExceptLast:
> BlockNode>>sizeCodeForEvaluatedValue:
> BytecodeAgnosticMethodNode>>generate:
> CompiledMethodWithNode class>>generateMethodFromNode:trailer:
> MorphicReplayDemoTest class(Behavior)>>compile:classified:notifying:trailer:ifFail:
> MorphicReplayDemoTest class(ClassDescription)>>compile:classified:withStamp:notifying:logSource:
> MorphicReplayDemoTest class(ClassDescription)>>compile:classified:withStamp:notifying:
> MorphicReplayDemoTest class(ClassDescription)>>compile:classified:notifying:
> MorphicReplayDemoTest class(ClassDescription)>>compile:notifying:
> MorphicReplayDemoTest class(Behavior)>>compile:
> ByteString>>DoIt
> Compiler>>evaluate:in:to:notifying:ifFail:logged:
> [] in TextMorphEditor(ParagraphEditor)>>evaluateSelection
> BlockClosure>>on:do:
> TextMorphEditor(ParagraphEditor)>>evaluateSelection
> TextMorphEditor(ParagraphEditor)>>doIt
> [] in TextMorphEditor(ParagraphEditor)>>doIt:
> TextMorphEditor(ParagraphEditor)>>terminateAndInitializeAround:
> TextMorphEditor(ParagraphEditor)>>doIt:
> TextMorphEditor(ParagraphEditor)>>dispatchOnKeyEvent:with:
> TextMorphEditor>>dispatchOnKeyEvent:with:
> TextMorphEditor(ParagraphEditor)>>keystroke:
> TextMorphEditor>>keystroke:
> [] in [] in TextMorphForEditView(TextMorph)>>keyStroke:
> TextMorphForEditView(TextMorph)>>handleInteraction:
> TextMorphForEditView>>handleInteraction:
> - - - - - - - - - - - - - - -
> - - - - - - - - - - - - - - - - - -
> [] in TextMorphForEditView(TextMorph)>>keyStroke:
> ECToolSet class>>codeCompletionAround:textMorph:keyStroke:
> DEVToolSet class>>codeCompletionAround:textMorph:keyStroke:
> ToolSet class>>codeCompletionAround:textMorph:keyStroke:
> TextMorphForEditView(TextMorph)>>keyStroke:
> TextMorphForEditView>>keyStroke:
> TextMorphForEditView(TextMorph)>>handleKeystroke:
> KeyboardEvent>>sentTo:
> TextMorphForEditView(Morph)>>handleEvent:
> TextMorphForEditView(Morph)>>handleFocusEvent:
> [] in HandMorph>>sendFocusEvent:to:clear:
> [] in PasteUpMorph>>becomeActiveDuring:
> BlockClosure>>on:do:
> PasteUpMorph>>becomeActiveDuring:
> HandMorph>>sendFocusEvent:to:clear:
> HandMorph>>sendEvent:focus:clear:
> HandMorph>>sendKeyboardEvent:
> 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
> -----------------------------------------------------------
>
>
> _______________________________________________
> 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
>
>
>
> --
> imagination is more important than knowledge - Albert Einstein
> Logic will get you from A to B. Imagination will take you everywhere - Albert Einstein
> Learn from yesterday, live for today, hope for tomorrow. The important thing is not to stop questioning. - Albert Einstein
> The true sign of intelligence is not knowledge but imagination. - Albert Einstein
> Gravitation is not responsible for people falling in love. - Albert Einstein
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> <Encoder-notify.st>_______________________________________________
> 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