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
February 2013
- 79 participants
- 1346 messages
[Pharo-project] Wow... we've closed a lot of issues
by Sean P. DeNigris
I was just doing some housecleaning, deleting some old bug fix images and I
was struck by how many important things we've accomplished. I'm still
dumbfounded that a community of our size has resolved 1548 issues since 1.4.
Cheers,
Sean
--
View this message in context: http://forum.world.st/Wow-we-ve-closed-a-lot-of-issues-tp4669901.html
Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
Feb. 14, 2013
[Pharo-project] [update 2.0] #20546
by Marcus Denker
20546
-----
Issue 7505: do #cleanUpForRelease for every build
http://code.google.com/p/pharo/issues/detail?id=7505
Diff information:
http://ss3.gemstone.com/ss/Pharo20/UpdateStreamer-Core-MarcusDenker.10.diff
Feb. 14, 2013
Re: [Pharo-project] Regex with $? not working?
by Sean P. DeNigris
Mariano Martinez Peck wrote
> Am I doing something wrong?
You have to put what you're trying to match zero or one times first.
For example:
'.?' asRegex.
'a' matchesRegex: '.?'. "true"
Browse implementor of c:syntax: for more info
HTH,
Sean
--
View this message in context: http://forum.world.st/Regex-with-not-working-tp4669856p4669875.html
Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
Feb. 14, 2013
[Pharo-project] [update 2.0] #20545
by Marcus Denker
20545
-----
Issue 7467: SystemReporter should not include SUnit Results
http://code.google.com/p/pharo/issues/detail?id=7467
Issue 7495: Failing test: FLCreateTraitSerializationTest>>#testCreateWithInstance
http://code.google.com/p/pharo/issues/detail?id=7495
Issue 7498: RPackage>>extensionMethodsForClass forget methods
http://code.google.com/p/pharo/issues/detail?id=7498
Issue 7507: location is undefined for a SmalltalkHub repository in MCHttpRepository>>password
http://code.google.com/p/pharo/issues/detail?id=7507
Diff information:
http://ss3.gemstone.com/ss/Pharo20/Tools-MarcusDenker.1040.diff
http://ss3.gemstone.com/ss/Pharo20/RPackage-Core-MarcusDenker.212.diff
http://ss3.gemstone.com/ss/Pharo20/Monticello-MarcusDenker.769.diff
http://ss3.gemstone.com/ss/Pharo20/FuelMetalevelTests-MarcusDenker.56.diff
Feb. 14, 2013
Re: [Pharo-project] Rectangle>>intersects: change Rationale
by Nicolas Cellier
2013/2/14 Igor Stasenko <siguctua(a)gmail.com>:
> On 14 February 2013 07:35, Nicolas Cellier
> <nicolas.cellier.aka.nice(a)gmail.com> wrote:
>> 2013/2/13 Igor Stasenko <siguctua(a)gmail.com>:
>>> On 14 February 2013 00:15, Nicolas Cellier
>>> <nicolas.cellier.aka.nice(a)gmail.com> wrote:
>>>> Please use my MessageTally trick above and you'll unfortunately see
>>>> that intersect: is just one producer of empty Rectangle among many...
>>>>
>>>> So I think that the ifNone: protection is quite vain given the flow of
>>>> empty rectangles, user is not in control at all, it's an illusion, and
>>>> that a reasonnable decision is to enforce the invariant.
>>>>
>>>
>>> but the way to enforce it is to make rect to have consistent answers
>>> to #width and #height,
>>> regardless in what order of origin:corner coordinates given.
>>> First , you make rectangle to be consistent.. then the users of it..
>>> i do not see other way to deal with it..
>>>
>>>
>>> I repeat, the final intent was to change #setOrigin:corner: to:
>>>
>>> Rectangle>>setOrigin: topLeft corner: bottomRight
>>> origin := (topLeft x min: bottomRight x) @ (topLeft y min:
>>> bottomRight y).
>>> corner := (topLeft x max: bottomRight x) @ (topLeft y max:
>>> bottomRight y).
>>>
>>> like that, there is no way a #width or #height can answer negative values.
>>>
>>
>> What I just want to remind you is that the base system is not at all
>> ready for such a change and that you have a lot of work to clean it of
>> degenerated Rectangle, it's not just cleaning intersect: and
>> intersects:
>>
>> Are you sure you aint' gonna need an abstraction to represent an empty
>> Rectangle?
>> What if I try to inset a rectangle by more than half extent?
>> What if I explicitely create a Rectangle with negative extent?
>> (0@0 extent: -10@10) extent = (10@10) does not necessarily better meet
>> my expectations...
>>
> negative extent? That should raise an error imo.
>
>> So what is your plan?
>> - don't provide empty rectangle abstraction but equip each and every
>> Rectangle producer with an ifEmpty: parameter?
>> - create a class EmptyRectangle class with more explicit semantic than
>> hasPositiveExtent not?
>>
> no. I do not see why we need such thing. We could have "isEmpty" or
> "isDegenerate" tests,
> to let users check this if necessary.. but then consider our code base:
> - where you will put these tests?
> I will give you a clue: in places where code doing wrong things with rects..
> That means, you are gonna to fix that code anyways.
>
>> Of course, if you can come with a cleaner model (less obscure
>> features, and avoiding spreading guards everywhere in client code)
>> then it is better to change the model rather than patch it.
>>
>> But it's not clear at all to me what your strategy is and where I can
>> read about it?
>> The bug reports I read are not informative and rather scary because
>> they just completely ignore the old invariants. It's not a recipe for
>> providing smooth transition.
>>
>> Also, when you change the invariants in the base system you have to
>> provide a transition period to support the migration of client code.
>>
>> IMO, in the transition period, the code should better raise an Error
>> rather than fixing things to what you THINK that is right in total
>> contradiction with what users KNEW was right in the previous version.
>>
> wait, what was right? that intersection of two non-intersecting
> rectangles gives you some rectangle?
>
> or that insetting 2-pixels wide rectangle by 5 pixels should produce
> some useful shape?
>
> btw, do you know that after i replaced intersect: with #intersect:ifNone:,
> i got a small, yet noticeable world redraw speedup.
>
>> What are your plans concerning transition?
>
> The "strategy" is pretty simple ;) :
> - change the behavior
> - see where it breaks
> - fix broken stuff
>
Good luck
>>
>> Nicolas
>>
>
> --
> Best regards,
> Igor Stasenko.
>
Feb. 14, 2013
Re: [Pharo-project] Rectangle>>intersects: change Rationale
by Igor Stasenko
On 14 February 2013 14:37, Igor Stasenko <siguctua(a)gmail.com> wrote:
> On 14 February 2013 07:35, Nicolas Cellier
> <nicolas.cellier.aka.nice(a)gmail.com> wrote:
>> 2013/2/13 Igor Stasenko <siguctua(a)gmail.com>:
>>> On 14 February 2013 00:15, Nicolas Cellier
>>> <nicolas.cellier.aka.nice(a)gmail.com> wrote:
>>>> Please use my MessageTally trick above and you'll unfortunately see
>>>> that intersect: is just one producer of empty Rectangle among many...
>>>>
>>>> So I think that the ifNone: protection is quite vain given the flow of
>>>> empty rectangles, user is not in control at all, it's an illusion, and
>>>> that a reasonnable decision is to enforce the invariant.
>>>>
>>>
>>> but the way to enforce it is to make rect to have consistent answers
>>> to #width and #height,
>>> regardless in what order of origin:corner coordinates given.
>>> First , you make rectangle to be consistent.. then the users of it..
>>> i do not see other way to deal with it..
>>>
>>>
>>> I repeat, the final intent was to change #setOrigin:corner: to:
>>>
>>> Rectangle>>setOrigin: topLeft corner: bottomRight
>>> origin := (topLeft x min: bottomRight x) @ (topLeft y min:
>>> bottomRight y).
>>> corner := (topLeft x max: bottomRight x) @ (topLeft y max:
>>> bottomRight y).
>>>
>>> like that, there is no way a #width or #height can answer negative values.
>>>
>>
>> What I just want to remind you is that the base system is not at all
>> ready for such a change and that you have a lot of work to clean it of
>> degenerated Rectangle, it's not just cleaning intersect: and
>> intersects:
>>
>> Are you sure you aint' gonna need an abstraction to represent an empty
>> Rectangle?
>> What if I try to inset a rectangle by more than half extent?
>> What if I explicitely create a Rectangle with negative extent?
>> (0@0 extent: -10@10) extent = (10@10) does not necessarily better meet
>> my expectations...
>>
> negative extent? That should raise an error imo.
>
>> So what is your plan?
>> - don't provide empty rectangle abstraction but equip each and every
>> Rectangle producer with an ifEmpty: parameter?
>> - create a class EmptyRectangle class with more explicit semantic than
>> hasPositiveExtent not?
>>
> no. I do not see why we need such thing. We could have "isEmpty" or
> "isDegenerate" tests,
> to let users check this if necessary.. but then consider our code base:
> - where you will put these tests?
> I will give you a clue: in places where code doing wrong things with rects..
> That means, you are gonna to fix that code anyways.
>
>> Of course, if you can come with a cleaner model (less obscure
>> features, and avoiding spreading guards everywhere in client code)
>> then it is better to change the model rather than patch it.
>>
>> But it's not clear at all to me what your strategy is and where I can
>> read about it?
>> The bug reports I read are not informative and rather scary because
>> they just completely ignore the old invariants. It's not a recipe for
>> providing smooth transition.
>>
>> Also, when you change the invariants in the base system you have to
>> provide a transition period to support the migration of client code.
>>
>> IMO, in the transition period, the code should better raise an Error
>> rather than fixing things to what you THINK that is right in total
>> contradiction with what users KNEW was right in the previous version.
>>
and yes, about raising an Error..
this is exactly what i did by replacing:
rect1 intersect: rect2
with:
rect1 intersect: rect2 ifNone: [ self error: '..... do something about it' ].
so where we have a disagreement about it?
yes.. the thing is not finished.. still the changes we did going
towards right direction.
just need more work.
> wait, what was right? that intersection of two non-intersecting
> rectangles gives you some rectangle?
>
> or that insetting 2-pixels wide rectangle by 5 pixels should produce
> some useful shape?
>
> btw, do you know that after i replaced intersect: with #intersect:ifNone:,
> i got a small, yet noticeable world redraw speedup.
>
>> What are your plans concerning transition?
>
> The "strategy" is pretty simple ;) :
> - change the behavior
> - see where it breaks
> - fix broken stuff
>
>>
>> Nicolas
>>
>
> --
> Best regards,
> Igor Stasenko.
--
Best regards,
Igor Stasenko.
Feb. 14, 2013
Re: [Pharo-project] Rectangle>>intersects: change Rationale
by Igor Stasenko
On 14 February 2013 07:35, Nicolas Cellier
<nicolas.cellier.aka.nice(a)gmail.com> wrote:
> 2013/2/13 Igor Stasenko <siguctua(a)gmail.com>:
>> On 14 February 2013 00:15, Nicolas Cellier
>> <nicolas.cellier.aka.nice(a)gmail.com> wrote:
>>> Please use my MessageTally trick above and you'll unfortunately see
>>> that intersect: is just one producer of empty Rectangle among many...
>>>
>>> So I think that the ifNone: protection is quite vain given the flow of
>>> empty rectangles, user is not in control at all, it's an illusion, and
>>> that a reasonnable decision is to enforce the invariant.
>>>
>>
>> but the way to enforce it is to make rect to have consistent answers
>> to #width and #height,
>> regardless in what order of origin:corner coordinates given.
>> First , you make rectangle to be consistent.. then the users of it..
>> i do not see other way to deal with it..
>>
>>
>> I repeat, the final intent was to change #setOrigin:corner: to:
>>
>> Rectangle>>setOrigin: topLeft corner: bottomRight
>> origin := (topLeft x min: bottomRight x) @ (topLeft y min:
>> bottomRight y).
>> corner := (topLeft x max: bottomRight x) @ (topLeft y max:
>> bottomRight y).
>>
>> like that, there is no way a #width or #height can answer negative values.
>>
>
> What I just want to remind you is that the base system is not at all
> ready for such a change and that you have a lot of work to clean it of
> degenerated Rectangle, it's not just cleaning intersect: and
> intersects:
>
> Are you sure you aint' gonna need an abstraction to represent an empty
> Rectangle?
> What if I try to inset a rectangle by more than half extent?
> What if I explicitely create a Rectangle with negative extent?
> (0@0 extent: -10@10) extent = (10@10) does not necessarily better meet
> my expectations...
>
negative extent? That should raise an error imo.
> So what is your plan?
> - don't provide empty rectangle abstraction but equip each and every
> Rectangle producer with an ifEmpty: parameter?
> - create a class EmptyRectangle class with more explicit semantic than
> hasPositiveExtent not?
>
no. I do not see why we need such thing. We could have "isEmpty" or
"isDegenerate" tests,
to let users check this if necessary.. but then consider our code base:
- where you will put these tests?
I will give you a clue: in places where code doing wrong things with rects..
That means, you are gonna to fix that code anyways.
> Of course, if you can come with a cleaner model (less obscure
> features, and avoiding spreading guards everywhere in client code)
> then it is better to change the model rather than patch it.
>
> But it's not clear at all to me what your strategy is and where I can
> read about it?
> The bug reports I read are not informative and rather scary because
> they just completely ignore the old invariants. It's not a recipe for
> providing smooth transition.
>
> Also, when you change the invariants in the base system you have to
> provide a transition period to support the migration of client code.
>
> IMO, in the transition period, the code should better raise an Error
> rather than fixing things to what you THINK that is right in total
> contradiction with what users KNEW was right in the previous version.
>
wait, what was right? that intersection of two non-intersecting
rectangles gives you some rectangle?
or that insetting 2-pixels wide rectangle by 5 pixels should produce
some useful shape?
btw, do you know that after i replaced intersect: with #intersect:ifNone:,
i got a small, yet noticeable world redraw speedup.
> What are your plans concerning transition?
The "strategy" is pretty simple ;) :
- change the behavior
- see where it breaks
- fix broken stuff
>
> Nicolas
>
--
Best regards,
Igor Stasenko.
Feb. 14, 2013
[Pharo-project] Regex with $? not working?
by Mariano Martinez Peck
Hi guys. I am trying some regex expressions that involve '?' and they do
not work.
Try for example: '/<(\w+?)>([^<]+)/m' asRegex
or
'<([^/>]+)>([^<]*?)<\1>' asRegex
and they all throw an error with the ? saying: 'RegexSyntaxError: nullable
closure'
Am I doing something wrong?
Thanks,
--
Mariano
http://marianopeck.wordpress.com
Feb. 14, 2013
Re: [Pharo-project] bug metacello toolbox / pharo2
by Camillo Bruni
On 2013-02-13, at 22:45, Christophe Demarey <Christophe.Demarey(a)inria.fr> wrote:
> Hi,
>
> Pharo 2.0 is shipped with Metacello. Metacello version installed is based on the stable version (1.0-beta.31.1.5).
> This version loads Metacello-ToolBox-dkh.130 but strangely, the Metacello-ToolBox package shipped in Pharo 2.0 is Metacello-ToolBox-MarkusDenker.135. Its ancestor is Metacello-ToolBox-dkh131 but Metacello-ToolBox-dkh.130 is not its ancestor.
> It seems that Metacello-ToolBox-dkh131 is another branch and that Pharo 2.0 does not ship the right version of Metacello Toolbox.
>
> I found this with tests using the toolbox. They failed because the method configurationNameFrom behavior is not the same :
> Metacello-ToolBox-dkh.130>>Metacello-ToolBox>>configurationNameFrom: baseName
> "Return the fully-qualified configuration class name."
>
> <apiDocumentation>
> ^ (baseName indexOfSubCollection: 'ConfigurationOf') > 0
> ifTrue: [ baseName ]
> ifFalse: [ 'ConfigurationOf' , baseName ]
>
> Metacello-ToolBox-MarkusDenker.135>>Metacello-ToolBox>>configurationNameFrom: baseName
> "Return the fully-qualified configuration class name."
>
> <apiDocumentation>
> self flag: 'More work needed based on MetacelloScriptEngine'.
> ^ baseName'
> => Here it is strange because the basename of a Configuration is the name without 'ConfigurationOf' and e expect to have as result 'ConfigurationOfXXX'
>
> So, 2 questions :
> is the Metacello-ToolBox-MarkusDenker.135 working?
nope, it only works partially. I already made some hackish fixes here and there to pass
at least the #validate method. That's why I guess we are at 135.
> should we not use the same base version of Metacello-ToolBox as the one declared (Metacello-ToolBox-dkh.130) in Metacello 1.0-beta.31.1.5 configuration?
I guess we should fix the current Toolbox by loading in the changes from 130.
Initially we must have loaded an older version of the Toolbox and then start to
fix certain things on it.
Feb. 14, 2013
Re: [Pharo-project] Rectangle>>intersects: change Rationale
by Nicolas Cellier
2013/2/14 Nicolas Cellier <nicolas.cellier.aka.nice(a)gmail.com>:
> Hi Stephane,
> I added the exception just to instrument code and trace the usage of
> degenerated Rectangles.
>
> You must execute the MessageTally snippet in a workspace and then do
> some normal Pharo activity (since I presume you have some developer
> activity, open a MC browser or system browser, select a method, browse
> implementors, etc...)
>
> The snippet does emulate the World activity, but is catching the
> DegeneratedRectangle notification and tallying the call stack each
> time this notification is raised.
>
> You then get a nice report of each and every call stack that raised a
> DegeneratedRectangle...
>
I forgot to tell, the snippet contains a Timer that should stop World
emulation after 5 minutes.
But you can simply trigger it by hand by evaluating in the workspace:
tallyEnd := true
> Inserting a halt in place of the notification in the hope to debug it
> is impossible (try it)
> Otherwise you can try and use haltOnce, but IMO it's too limited.
>
> Nicolas
>
> 2013/2/14 stephane ducasse <stephane.ducasse(a)free.fr>:
>> Nicolas
>>
>> I did what you suggest
>>
>>> Notification subclass: #DegeneratedRectangle
>>> instanceVariableNames: ''
>>> classVariableNames: ''
>>> poolDictionaries: ''
>>> category: 'Kernel-BasicObjects'
>>>
>>> Rectangle>>setOrigin: topLeft corner: bottomRight
>>> origin := topLeft.
>>> corner := bottomRight.
>>> (self width < 0 or: [ self height < 0 ]) ifTrue: [
>>> DegeneratedRectangle signal ]
>>>
>>> Then in a workspace:
>>>
>>> tally := MessageTally new.
>>> tally spyEvery: 100 on: ['em ezilaitini ot si siht' reverse].
>>> tally class: World class method: World class>>#doOneCycle.
>>> "middle lines begin"
>>> tallyEnd := false.
>>> [(Delay forSeconds: 300) wait. tallyEnd := true] fork.
>>> [[World doOneCycle. Processor yield.tallyEnd] whileFalse]
>>> on: DegeneratedRectangle
>>> do: [:exc | tally tally: exc signalerContext by: 1.
>>> exc resume].
>>> (StringHolder new contents:
>>> (String streamContents: [:s | tally report: s]))
>>> openLabel: 'DegeneratedRectangle Spy Results'.
>>> "middle lines end"
>>> tally close.
>>>
>>
>> But I get nothing 20531
>> Then I do not understand the trace you sent where is the information about the wrong rectangle in it.
>>
>>
>>
>>
>>> and here we go:
>>>
>>> - 371 tallies, 2 msec.
>>>
>>> **Tree**
>>> --------------------------------
>>> Process: other processes
>>> --------------------------------
>>> 38.3% {1ms} NautilusUI(AbstractNautilusUI)>>browseMessages
>>> 38.3% {1ms} NautilusUI(AbstractTool)>>browseMessagesFrom:
>>> 38.3% {1ms}
>>> NautilusUI(AbstractTool)>>getSelectorAndSendQuery:to:with:selector:
>>> 38.3% {1ms} SystemNavigation>>browseAllImplementorsOf:
>>> 38.3% {1ms} SystemNavigation>>browseImplementorsOf:name:autoSelect:
>>> 38.3% {1ms} SystemNavigation>>browseMessageList:name:autoSelect:
>>> 38.3% {1ms} MessageBrowser class>>openMessageList:name:autoSelect:
>>> 38.3% {1ms} MessageBrowser>>openWithSpec
>>> 38.3% {1ms} MessageBrowser(ComposableModel)>>openWithSpec
>>> 38.3% {1ms} MessageBrowser(ComposableModel)>>openWithSpec:
>>> 38.3% {1ms} WindowModel>>openWithSpec:
>>> 32.1% {1ms} WindowModel>>buildWithSpec:
>>> |24.8% {0ms} WindowModel>>addModelIn:withSpec:
>>> | |22.9% {0ms}
>>> MessageBrowser(ComposableModel)>>buildWithSpec:
>>> | | |19.4% {0ms} SpecInterpreter
>>> class>>buildWidgetFor:withSpec:
>>> | | | |19.4% {0ms} SpecInterpreter
>>> class>>interpretASpec:model:
>>> | | | | 19.4% {0ms} SpecInterpreter
>>> class>>interpretASpec:model:superSpec:
>>> | | | | 19.4% {0ms} SpecInterpreter
>>> class>>private_interpretASpec:model:superSpec:
>>> | | | | 19.4% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | | 19.4% {0ms}
>>> SpecInterpreter>>interpretASpec:
>>> | | | | 19.4% {0ms}
>>> SpecInterpreter class>>private_interpretASpec:model:superSpec:
>>> | | | | 19.4% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | | 19.4% {0ms}
>>> SpecInterpreter>>interpretASpec:
>>> | | | | 19.4% {0ms}
>>> SpecInterpreter>>retreiveSpecFrom:
>>> | | | | 9.7% {0ms}
>>> SpecInterpreter class>>private_interpretASpec:model:superSpec:
>>> | | | | |9.7% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | | | 9.7% {0ms}
>>> SpecInterpreter>>interpretASpec:
>>> | | | | | 9.7% {0ms}
>>> SpecInterpreter class>>private_interpretASpec:model:superSpec:
>>> | | | | | 9.7%
>>> {0ms} SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | | | 9.7%
>>> {0ms} SpecInterpreter>>interpretASpec:
>>> | | | | | 9.7%
>>> {0ms} SpecInterpreter>>retreiveSpecFrom:
>>> | | | | |
>>> 4.9% {0ms} SpecInterpreter
>>> class>>private_interpretASpec:model:superSpec:
>>> | | | | |
>>> |4.9% {0ms} SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | | | |
>>> 4.9% {0ms} SpecInterpreter>>interpretASpec:
>>> | | | | | |
>>> 4.9% {0ms} MultiColumnListModel(ComposableModel)>>private_buildWithSpec
>>> | | | | | |
>>> 4.9% {0ms}
>>> MultiColumnListModel(ComposableModel)>>private_buildWithSpec:
>>> | | | | | |
>>> 4.9% {0ms} SpecInterpreter
>>> class>>private_buildWidgetFor:withSpec:
>>> | | | | | |
>>> 4.9% {0ms} SpecInterpreter
>>> class>>private_interpretASpec:model:
>>> | | | | | |
>>> 4.9% {0ms} SpecInterpreter>>interpretASpec:model:
>>> | | | | | |
>>> 4.9% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | | | |
>>> 4.9% {0ms} SpecInterpreter>>interpretASpec:
>>> | | | | | |
>>> 2.7% {0ms} SpecInterpreter
>>> class>>private_interpretASpec:model:superSpec:
>>> | | | | | |
>>> |2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | | | |
>>> | 2.7% {0ms} SpecInterpreter>>interpretASpec:
>>> | | | | | |
>>> | 2.7% {0ms}
>>> DropListModel(ComposableModel)>>private_buildWithSpec
>>> | | | | | |
>>> | 2.7% {0ms}
>>> DropListModel(ComposableModel)>>private_buildWithSpec:
>>> | | | | | |
>>> | 2.7% {0ms} SpecInterpreter
>>> class>>private_buildWidgetFor:withSpec:
>>> | | | | | |
>>> | 2.7% {0ms} SpecInterpreter
>>> class>>private_interpretASpec:model:
>>> | | | | | |
>>> | 2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:model:
>>> | | | | | |
>>> | 2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | | | |
>>> | 2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:
>>> | | | | | |
>>> | 2.7% {0ms}
>>> SpecInterpreter>>actionToPerformWithSelector:arguments:
>>> | | | | | |
>>> | 2.7% {0ms}
>>> DropListSpec(AbstractSpec)>>instance
>>> | | | | | |
>>> | 2.7% {0ms}
>>> DropListSpec(AbstractSpec)>>initializeInstance
>>> | | | | | |
>>> | 2.7% {0ms} SpecInterpreter
>>> class>>private_interpretASpec:model:
>>> | | | | | |
>>> | 2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:model:
>>> | | | | | |
>>> | 2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | | | |
>>> | 2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:
>>> | | | | | |
>>> | 2.7% {0ms}
>>> SpecInterpreter>>retreiveSpecFrom:
>>> | | | | | |
>>> | 1.3% {0ms}
>>> SpecInterpreter class>>private_interpretASpec:model:superSpec:
>>> | | | | | |
>>> | |1.3% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | | | |
>>> | | 1.3% {0ms}
>>> SpecInterpreter>>interpretASpec:
>>> | | | | | |
>>> | | 1.3%
>>> {0ms} SpecInterpreter>>convertSymbolOfClassToInstance:
>>> | | | | | |
>>> | | 1.3%
>>> {0ms} DropListMorph class(Behavior)>>new
>>> | | | | | |
>>> | | 1.3%
>>> {0ms} DropListMorph>>initialize
>>> | | | | | |
>>> | 1.3% {0ms}
>>> RawSpec>>defaultReceiver:model:
>>> | | | | | |
>>> | 1.3% {0ms}
>>> SpecInterpreter class>>private_interpretASpec:model:
>>> | | | | | |
>>> | 1.3% {0ms}
>>> SpecInterpreter>>interpretASpec:model:
>>> | | | | | |
>>> | 1.3% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | | | |
>>> | 1.3%
>>> {0ms} SpecInterpreter>>interpretASpec:
>>> | | | | | |
>>> | 1.3%
>>> {0ms} SpecInterpreter>>convertSymbolOfClassToInstance:
>>> | | | | | |
>>> | 1.3%
>>> {0ms} DropListMorph class(Behavior)>>new
>>> | | | | | |
>>> |
>>> 1.3% {0ms} DropListMorph>>initialize
>>> | | | | | |
>>> 2.2% {0ms}
>>> SpecInterpreter>>actionToPerformWithSelector:arguments:
>>> | | | | | |
>>> 2.2% {0ms}
>>> MultiColumnListSpec(AbstractSpec)>>instance
>>> | | | | | |
>>> 2.2% {0ms}
>>> MultiColumnListSpec(AbstractSpec)>>initializeInstance
>>> | | | | | |
>>> 2.2% {0ms} SpecInterpreter
>>> class>>private_interpretASpec:model:
>>> | | | | | |
>>> 2.2% {0ms}
>>> SpecInterpreter>>interpretASpec:model:
>>> | | | | | |
>>> 2.2% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | | | |
>>> 2.2% {0ms}
>>> SpecInterpreter>>interpretASpec:
>>> | | | | | |
>>> 2.2% {0ms}
>>> SpecInterpreter>>retreiveSpecFrom:
>>> | | | | |
>>> 4.9% {0ms} RawSpec>>defaultReceiver:model:
>>> | | | | |
>>> 4.9% {0ms} SpecInterpreter class>>private_interpretASpec:model:
>>> | | | | |
>>> 4.9% {0ms} SpecInterpreter>>interpretASpec:model:
>>> | | | | |
>>> 4.9% {0ms} SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | | |
>>> 4.9% {0ms} SpecInterpreter>>interpretASpec:
>>> | | | | |
>>> 4.9% {0ms}
>>> MultiColumnListModel(ComposableModel)>>private_buildWithSpec
>>> | | | | |
>>> 4.9% {0ms}
>>> MultiColumnListModel(ComposableModel)>>private_buildWithSpec:
>>> | | | | |
>>> 4.9% {0ms} SpecInterpreter
>>> class>>private_buildWidgetFor:withSpec:
>>> | | | | |
>>> 4.9% {0ms} SpecInterpreter
>>> class>>private_interpretASpec:model:
>>> | | | | |
>>> 4.9% {0ms} SpecInterpreter>>interpretASpec:model:
>>> | | | | |
>>> 4.9% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | | |
>>> 4.9% {0ms} SpecInterpreter>>interpretASpec:
>>> | | | | |
>>> 2.7% {0ms} SpecInterpreter
>>> class>>private_interpretASpec:model:superSpec:
>>> | | | | |
>>> |2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | | |
>>> | 2.7% {0ms} SpecInterpreter>>interpretASpec:
>>> | | | | |
>>> | 2.7% {0ms}
>>> DropListModel(ComposableModel)>>private_buildWithSpec
>>> | | | | |
>>> | 2.7% {0ms}
>>> DropListModel(ComposableModel)>>private_buildWithSpec:
>>> | | | | |
>>> | 2.7% {0ms} SpecInterpreter
>>> class>>private_buildWidgetFor:withSpec:
>>> | | | | |
>>> | 2.7% {0ms} SpecInterpreter
>>> class>>private_interpretASpec:model:
>>> | | | | |
>>> | 2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:model:
>>> | | | | |
>>> | 2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | | |
>>> | 2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:
>>> | | | | |
>>> | 2.7% {0ms}
>>> SpecInterpreter>>actionToPerformWithSelector:arguments:
>>> | | | | |
>>> | 2.7% {0ms}
>>> DropListSpec(AbstractSpec)>>instance
>>> | | | | |
>>> | 2.7% {0ms}
>>> DropListSpec(AbstractSpec)>>initializeInstance
>>> | | | | |
>>> | 2.7% {0ms}
>>> SpecInterpreter class>>private_interpretASpec:model:
>>> | | | | |
>>> | 2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:model:
>>> | | | | |
>>> | 2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | | |
>>> | 2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:
>>> | | | | |
>>> | 2.7% {0ms}
>>> SpecInterpreter>>retreiveSpecFrom:
>>> | | | | |
>>> | 1.3% {0ms}
>>> SpecInterpreter class>>private_interpretASpec:model:superSpec:
>>> | | | | |
>>> | |1.3% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | | |
>>> | | 1.3%
>>> {0ms} SpecInterpreter>>interpretASpec:
>>> | | | | |
>>> | | 1.3%
>>> {0ms} SpecInterpreter>>convertSymbolOfClassToInstance:
>>> | | | | |
>>> | | 1.3%
>>> {0ms} DropListMorph class(Behavior)>>new
>>> | | | | |
>>> | |
>>> 1.3% {0ms} DropListMorph>>initialize
>>> | | | | |
>>> | 1.3% {0ms}
>>> RawSpec>>defaultReceiver:model:
>>> | | | | |
>>> | 1.3% {0ms}
>>> SpecInterpreter class>>private_interpretASpec:model:
>>> | | | | |
>>> | 1.3%
>>> {0ms} SpecInterpreter>>interpretASpec:model:
>>> | | | | |
>>> | 1.3%
>>> {0ms} SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | | |
>>> | 1.3%
>>> {0ms} SpecInterpreter>>interpretASpec:
>>> | | | | |
>>> |
>>> 1.3% {0ms} SpecInterpreter>>convertSymbolOfClassToInstance:
>>> | | | | |
>>> |
>>> 1.3% {0ms} DropListMorph class(Behavior)>>new
>>> | | | | |
>>> |
>>> 1.3% {0ms} DropListMorph>>initialize
>>> | | | | |
>>> 2.2% {0ms}
>>> SpecInterpreter>>actionToPerformWithSelector:arguments:
>>> | | | | |
>>> 2.2% {0ms}
>>> MultiColumnListSpec(AbstractSpec)>>instance
>>> | | | | |
>>> 2.2% {0ms}
>>> MultiColumnListSpec(AbstractSpec)>>initializeInstance
>>> | | | | |
>>> 2.2% {0ms} SpecInterpreter
>>> class>>private_interpretASpec:model:
>>> | | | | |
>>> 2.2% {0ms}
>>> SpecInterpreter>>interpretASpec:model:
>>> | | | | |
>>> 2.2% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | | |
>>> 2.2% {0ms}
>>> SpecInterpreter>>interpretASpec:
>>> | | | | |
>>> 2.2% {0ms}
>>> SpecInterpreter>>retreiveSpecFrom:
>>> | | | | 9.7% {0ms}
>>> RawSpec>>defaultReceiver:model:
>>> | | | | 9.7% {0ms}
>>> SpecInterpreter class>>private_interpretASpec:model:
>>> | | | | 9.7% {0ms}
>>> SpecInterpreter>>interpretASpec:model:
>>> | | | | 9.7% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | | 9.7% {0ms}
>>> SpecInterpreter>>interpretASpec:
>>> | | | | 9.7%
>>> {0ms} SpecInterpreter class>>private_interpretASpec:model:superSpec:
>>> | | | | 9.7%
>>> {0ms} SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | | 9.7%
>>> {0ms} SpecInterpreter>>interpretASpec:
>>> | | | |
>>> 9.7% {0ms} SpecInterpreter>>retreiveSpecFrom:
>>> | | | |
>>> 4.9% {0ms} SpecInterpreter
>>> class>>private_interpretASpec:model:superSpec:
>>> | | | |
>>> |4.9% {0ms} SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | |
>>> | 4.9% {0ms} SpecInterpreter>>interpretASpec:
>>> | | | |
>>> | 4.9% {0ms}
>>> MultiColumnListModel(ComposableModel)>>private_buildWithSpec
>>> | | | |
>>> | 4.9% {0ms}
>>> MultiColumnListModel(ComposableModel)>>private_buildWithSpec:
>>> | | | |
>>> | 4.9% {0ms} SpecInterpreter
>>> class>>private_buildWidgetFor:withSpec:
>>> | | | |
>>> | 4.9% {0ms} SpecInterpreter
>>> class>>private_interpretASpec:model:
>>> | | | |
>>> | 4.9% {0ms} SpecInterpreter>>interpretASpec:model:
>>> | | | |
>>> | 4.9% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | |
>>> | 4.9% {0ms} SpecInterpreter>>interpretASpec:
>>> | | | |
>>> | 2.7% {0ms} SpecInterpreter
>>> class>>private_interpretASpec:model:superSpec:
>>> | | | |
>>> | |2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | |
>>> | | 2.7% {0ms} SpecInterpreter>>interpretASpec:
>>> | | | |
>>> | | 2.7% {0ms}
>>> DropListModel(ComposableModel)>>private_buildWithSpec
>>> | | | |
>>> | | 2.7% {0ms}
>>> DropListModel(ComposableModel)>>private_buildWithSpec:
>>> | | | |
>>> | | 2.7% {0ms} SpecInterpreter
>>> class>>private_buildWidgetFor:withSpec:
>>> | | | |
>>> | | 2.7% {0ms} SpecInterpreter
>>> class>>private_interpretASpec:model:
>>> | | | |
>>> | | 2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:model:
>>> | | | |
>>> | | 2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | |
>>> | | 2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:
>>> | | | |
>>> | | 2.7% {0ms}
>>> SpecInterpreter>>actionToPerformWithSelector:arguments:
>>> | | | |
>>> | | 2.7% {0ms}
>>> DropListSpec(AbstractSpec)>>instance
>>> | | | |
>>> | | 2.7% {0ms}
>>> DropListSpec(AbstractSpec)>>initializeInstance
>>> | | | |
>>> | | 2.7% {0ms}
>>> SpecInterpreter class>>private_interpretASpec:model:
>>> | | | |
>>> | | 2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:model:
>>> | | | |
>>> | | 2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | |
>>> | | 2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:
>>> | | | |
>>> | | 2.7% {0ms}
>>> SpecInterpreter>>retreiveSpecFrom:
>>> | | | |
>>> | | 1.3% {0ms}
>>> SpecInterpreter class>>private_interpretASpec:model:superSpec:
>>> | | | |
>>> | | |1.3% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | |
>>> | | | 1.3%
>>> {0ms} SpecInterpreter>>interpretASpec:
>>> | | | |
>>> | | | 1.3%
>>> {0ms} SpecInterpreter>>convertSymbolOfClassToInstance:
>>> | | | |
>>> | | | 1.3%
>>> {0ms} DropListMorph class(Behavior)>>new
>>> | | | |
>>> | | |
>>> 1.3% {0ms} DropListMorph>>initialize
>>> | | | |
>>> | | 1.3% {0ms}
>>> RawSpec>>defaultReceiver:model:
>>> | | | |
>>> | | 1.3% {0ms}
>>> SpecInterpreter class>>private_interpretASpec:model:
>>> | | | |
>>> | | 1.3%
>>> {0ms} SpecInterpreter>>interpretASpec:model:
>>> | | | |
>>> | | 1.3%
>>> {0ms} SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | |
>>> | | 1.3%
>>> {0ms} SpecInterpreter>>interpretASpec:
>>> | | | |
>>> | |
>>> 1.3% {0ms} SpecInterpreter>>convertSymbolOfClassToInstance:
>>> | | | |
>>> | |
>>> 1.3% {0ms} DropListMorph class(Behavior)>>new
>>> | | | |
>>> | |
>>> 1.3% {0ms} DropListMorph>>initialize
>>> | | | |
>>> | 2.2% {0ms}
>>> SpecInterpreter>>actionToPerformWithSelector:arguments:
>>> | | | |
>>> | 2.2% {0ms}
>>> MultiColumnListSpec(AbstractSpec)>>instance
>>> | | | |
>>> | 2.2% {0ms}
>>> MultiColumnListSpec(AbstractSpec)>>initializeInstance
>>> | | | |
>>> | 2.2% {0ms} SpecInterpreter
>>> class>>private_interpretASpec:model:
>>> | | | |
>>> | 2.2% {0ms}
>>> SpecInterpreter>>interpretASpec:model:
>>> | | | |
>>> | 2.2% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | |
>>> | 2.2% {0ms}
>>> SpecInterpreter>>interpretASpec:
>>> | | | |
>>> | 2.2% {0ms}
>>> SpecInterpreter>>retreiveSpecFrom:
>>> | | | |
>>> 4.9% {0ms} RawSpec>>defaultReceiver:model:
>>> | | | |
>>> 4.9% {0ms} SpecInterpreter class>>private_interpretASpec:model:
>>> | | | |
>>> 4.9% {0ms} SpecInterpreter>>interpretASpec:model:
>>> | | | |
>>> 4.9% {0ms} SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | |
>>> 4.9% {0ms} SpecInterpreter>>interpretASpec:
>>> | | | |
>>> 4.9% {0ms}
>>> MultiColumnListModel(ComposableModel)>>private_buildWithSpec
>>> | | | |
>>> 4.9% {0ms}
>>> MultiColumnListModel(ComposableModel)>>private_buildWithSpec:
>>> | | | |
>>> 4.9% {0ms} SpecInterpreter
>>> class>>private_buildWidgetFor:withSpec:
>>> | | | |
>>> 4.9% {0ms} SpecInterpreter
>>> class>>private_interpretASpec:model:
>>> | | | |
>>> 4.9% {0ms} SpecInterpreter>>interpretASpec:model:
>>> | | | |
>>> 4.9% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | |
>>> 4.9% {0ms} SpecInterpreter>>interpretASpec:
>>> | | | |
>>> 2.7% {0ms} SpecInterpreter
>>> class>>private_interpretASpec:model:superSpec:
>>> | | | |
>>> |2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | |
>>> | 2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:
>>> | | | |
>>> | 2.7% {0ms}
>>> DropListModel(ComposableModel)>>private_buildWithSpec
>>> | | | |
>>> | 2.7% {0ms}
>>> DropListModel(ComposableModel)>>private_buildWithSpec:
>>> | | | |
>>> | 2.7% {0ms} SpecInterpreter
>>> class>>private_buildWidgetFor:withSpec:
>>> | | | |
>>> | 2.7% {0ms} SpecInterpreter
>>> class>>private_interpretASpec:model:
>>> | | | |
>>> | 2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:model:
>>> | | | |
>>> | 2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | |
>>> | 2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:
>>> | | | |
>>> | 2.7% {0ms}
>>> SpecInterpreter>>actionToPerformWithSelector:arguments:
>>> | | | |
>>> | 2.7% {0ms}
>>> DropListSpec(AbstractSpec)>>instance
>>> | | | |
>>> | 2.7% {0ms}
>>> DropListSpec(AbstractSpec)>>initializeInstance
>>> | | | |
>>> | 2.7% {0ms}
>>> SpecInterpreter class>>private_interpretASpec:model:
>>> | | | |
>>> | 2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:model:
>>> | | | |
>>> | 2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | |
>>> | 2.7% {0ms}
>>> SpecInterpreter>>interpretASpec:
>>> | | | |
>>> | 2.7% {0ms}
>>> SpecInterpreter>>retreiveSpecFrom:
>>> | | | |
>>> | 1.3% {0ms}
>>> SpecInterpreter class>>private_interpretASpec:model:superSpec:
>>> | | | |
>>> | |1.3%
>>> {0ms} SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | |
>>> | | 1.3%
>>> {0ms} SpecInterpreter>>interpretASpec:
>>> | | | |
>>> | |
>>> 1.3% {0ms} SpecInterpreter>>convertSymbolOfClassToInstance:
>>> | | | |
>>> | |
>>> 1.3% {0ms} DropListMorph class(Behavior)>>new
>>> | | | |
>>> | |
>>> 1.3% {0ms} DropListMorph>>initialize
>>> | | | |
>>> | 1.3% {0ms}
>>> RawSpec>>defaultReceiver:model:
>>> | | | |
>>> | 1.3%
>>> {0ms} SpecInterpreter class>>private_interpretASpec:model:
>>> | | | |
>>> | 1.3%
>>> {0ms} SpecInterpreter>>interpretASpec:model:
>>> | | | |
>>> | 1.3%
>>> {0ms} SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | |
>>> |
>>> 1.3% {0ms} SpecInterpreter>>interpretASpec:
>>> | | | |
>>> |
>>> 1.3% {0ms} SpecInterpreter>>convertSymbolOfClassToInstance:
>>> | | | |
>>> |
>>> 1.3% {0ms} DropListMorph class(Behavior)>>new
>>> | | | |
>>> |
>>> 1.3% {0ms} DropListMorph>>initialize
>>> | | | |
>>> 2.2% {0ms}
>>> SpecInterpreter>>actionToPerformWithSelector:arguments:
>>> | | | |
>>> 2.2% {0ms}
>>> MultiColumnListSpec(AbstractSpec)>>instance
>>> | | | |
>>> 2.2% {0ms}
>>> MultiColumnListSpec(AbstractSpec)>>initializeInstance
>>> | | | |
>>> 2.2% {0ms} SpecInterpreter
>>> class>>private_interpretASpec:model:
>>> | | | |
>>> 2.2% {0ms}
>>> SpecInterpreter>>interpretASpec:model:
>>> | | | |
>>> 2.2% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | | | |
>>> 2.2% {0ms}
>>> SpecInterpreter>>interpretASpec:
>>> | | | |
>>> 2.2% {0ms}
>>> SpecInterpreter>>retreiveSpecFrom:
>>> | | |3.5% {0ms}
>>> MessageBrowser(ComposableModel)>>ensureExtentFor:
>>> | | | 3.5% {0ms} PanelMorph(Morph)>>extent:
>>> | | | 3.5% {0ms} PanelMorph(Morph)>>changed
>>> | | | 3.5% {0ms}
>>> PanelMorph(Morph)>>privateFullBounds
>>> | | | 3.5% {0ms}
>>> PanelMorph(Morph)>>submorphBounds
>>> | | | 3.5% {0ms}
>>> PanelMorph(Morph)>>fullBounds
>>> | | | 3.5% {0ms}
>>> PanelMorph(Morph)>>doLayoutIn:
>>> | | | 3.5% {0ms}
>>> ProportionalLayout>>layout:in:
>>> | | | 3.5% {0ms}
>>> PluggableTextMorph(Morph)>>layoutProportionallyIn:
>>> | | | 3.2% {0ms}
>>> PluggableTextMorph(Morph)>>layoutInBounds:
>>> | | | 2.7% {0ms}
>>> PluggableTextMorph(Morph)>>bounds:
>>> | | | 1.6% {0ms}
>>> PluggableTextMorph>>extent:
>>> | |1.9% {0ms}
>>> StandardWindow(SystemWindow)>>addMorph:frame:
>>> | | 1.9% {0ms}
>>> StandardWindow(SystemWindow)>>addMorph:fullFrame:
>>> | | 1.9% {0ms} PanelMorph>>adoptPaneColor:
>>> | | 1.9% {0ms} PanelMorph(Morph)>>color:
>>> | | 1.9% {0ms} PanelMorph(Morph)>>changed
>>> | | 1.9% {0ms}
>>> PanelMorph(Morph)>>privateFullBounds
>>> | | 1.9% {0ms}
>>> PanelMorph(Morph)>>submorphBounds
>>> | | 1.9% {0ms}
>>> PanelMorph(Morph)>>fullBounds
>>> | | 1.9% {0ms}
>>> PanelMorph(Morph)>>doLayoutIn:
>>> | | 1.9% {0ms}
>>> ProportionalLayout>>layout:in:
>>> | | 1.9% {0ms}
>>> PluggableTextMorph(Morph)>>layoutProportionallyIn:
>>> | | 1.6% {0ms}
>>> PluggableTextMorph(Morph)>>layoutInBounds:
>>> |7.3% {0ms} SpecInterpreter
>>> class>>private_buildWidgetFor:withSpec:
>>> | 7.3% {0ms} SpecInterpreter
>>> class>>private_interpretASpec:model:
>>> | 7.3% {0ms} SpecInterpreter>>interpretASpec:model:
>>> | 7.3% {0ms}
>>> SpecInterpreter>>interpretASpec:model:superSpec:
>>> | 7.3% {0ms} SpecInterpreter>>interpretASpec:
>>> | 7.3% {0ms}
>>> SpecInterpreter>>actionToPerformWithSelector:arguments:
>>> | 7.3% {0ms}
>>> WindowSpec(AbstractSpec)>>instance
>>> | 7.3% {0ms} WindowSpec>>initializeInstance
>>> | 7.3% {0ms} StandardWindow
>>> class(Behavior)>>new
>>> | 7.3% {0ms} StandardWindow>>initialize
>>> | 3.8% {0ms}
>>> StandardWindow(SystemWindow)>>initialize
>>> | |3.5% {0ms}
>>> StandardWindow(SystemWindow)>>extent:
>>> | | 3.5% {0ms}
>>> StandardWindow(Morph)>>extent:
>>> | | 3.5% {0ms}
>>> StandardWindow(Morph)>>changed
>>> | | 3.5% {0ms}
>>> StandardWindow(Morph)>>privateFullBounds
>>> | | 3.5% {0ms}
>>> StandardWindow(Morph)>>submorphBounds
>>> | | 3.5% {0ms}
>>> AlignmentMorph(Morph)>>fullBounds
>>> | | 3.2% {0ms}
>>> AlignmentMorph(Morph)>>doLayoutIn:
>>> | | 3.2%
>>> {0ms} RowLayout>>layout:in:
>>> | | 3.0%
>>> {0ms} Point>>extent:
>>> | | 3.0%
>>> {0ms} Rectangle class>>origin:extent:
>>> | |
>>> 3.0% {0ms} Rectangle>>setOrigin:corner:
>>> | 3.5% {0ms}
>>> StandardWindow(SystemWindow)>>setWindowColor:
>>> | 3.5% {0ms}
>>> StandardWindow(SystemWindow)>>setStripeColorsFrom:
>>> | 3.5% {0ms}
>>> StandardWindow(Morph)>>fillStyle:
>>> | 3.5% {0ms}
>>> StandardWindow(Morph)>>changed
>>> | 3.5% {0ms}
>>> StandardWindow(Morph)>>privateFullBounds
>>> | 3.5% {0ms}
>>> StandardWindow(Morph)>>submorphBounds
>>> | 3.5% {0ms}
>>> AlignmentMorph(Morph)>>fullBounds
>>> | 3.2% {0ms}
>>> AlignmentMorph(Morph)>>doLayoutIn:
>>> | 3.2%
>>> {0ms} RowLayout>>layout:in:
>>> | 3.0%
>>> {0ms} Point>>extent:
>>> | 3.0%
>>> {0ms} Rectangle class>>origin:extent:
>>> |
>>> 3.0% {0ms} Rectangle>>setOrigin:corner:
>>> 6.2% {0ms} StandardWindow(Morph)>>openInWorld
>>> 6.2% {0ms} StandardWindow(SystemWindow)>>openInWorld:
>>> 3.5% {0ms} StandardWindow(Morph)>>bounds:
>>> |3.5% {0ms} StandardWindow(SystemWindow)>>position:
>>> | 3.5% {0ms} StandardWindow(Morph)>>position:
>>> | 3.5% {0ms} StandardWindow(Morph)>>fullBounds
>>> | 3.5% {0ms} StandardWindow(Morph)>>doLayoutIn:
>>> | 3.5% {0ms} ProportionalLayout>>layout:in:
>>> | 3.5% {0ms}
>>> AlignmentMorph(Morph)>>layoutProportionallyIn:
>>> | 3.5% {0ms}
>>> AlignmentMorph(Morph)>>fullBounds
>>> | 3.2% {0ms}
>>> AlignmentMorph(Morph)>>doLayoutIn:
>>> | 3.2% {0ms} RowLayout>>layout:in:
>>> | 3.0% {0ms} Point>>extent:
>>> | 3.0% {0ms} Rectangle
>>> class>>origin:extent:
>>> | 3.0% {0ms}
>>> Rectangle>>setOrigin:corner:
>>> 2.7% {0ms} StandardWindow>>openAsIsIn:
>>> 2.7% {0ms} StandardWindow(SystemWindow)>>openAsIsIn:
>>> 2.7% {0ms} StandardWindow(SystemWindow)>>activate
>>> 2.7% {0ms}
>>> StandardWindow(SystemWindow)>>navigateFocusForward
>>> 2.7% {0ms}
>>> StandardWindow(Morph)>>navigateFocusForward
>>> 2.7% {0ms}
>>> PluggableTextMorph(Morph)>>takeKeyboardFocus
>>> 2.7% {0ms} HandMorph>>newKeyboardFocus:
>>> 2.7% {0ms}
>>> PluggableTextMorph>>keyboardFocusChange:
>>> 2.7% {0ms}
>>> TextMorphForEditView(Morph)>>takeKeyboardFocus
>>> 2.7% {0ms}
>>> HandMorph>>newKeyboardFocus:
>>> 2.7% {0ms}
>>> TextMorphForEditView>>keyboardFocusChange:
>>> 2.7% {0ms}
>>> SmalltalkEditor(TextEditor)>>focused:
>>> 2.7% {0ms}
>>> SmalltalkEditingState>>focused:from:
>>> 2.7% {0ms}
>>> SmalltalkEditingState(EditingState)>>focused:from:
>>> 2.7% {0ms}
>>> EditorFindReplaceDialogWindow class>>on:
>>> 2.7% {0ms}
>>> EditorFindReplaceDialogWindow>>on:
>>> 2.7% {0ms}
>>> EditorFindReplaceDialogWindow(StandardWindow)>>model:
>>> 2.7% {0ms}
>>> EditorFindReplaceDialogWindow(SystemWindow)>>model:
>>> 2.7%
>>> {0ms} EditorFindReplaceDialogWindow(Morph)>>fillStyle:
>>> 2.7%
>>> {0ms} EditorFindReplaceDialogWindow(Morph)>>changed
>>> 2.7%
>>> {0ms} EditorFindReplaceDialogWindow(Morph)>>privateFullBounds
>>>
>>> 2.7% {0ms} EditorFindReplaceDialogWindow(Morph)>>submorphBounds
>>>
>>> 2.7% {0ms} AlignmentMorph(Morph)>>fullBounds
>>>
>>> 2.4% {0ms} AlignmentMorph(Morph)>>doLayoutIn:
>>>
>>> 2.4% {0ms} RowLayout>>layout:in:
>>>
>>> 2.2% {0ms} Point>>extent:
>>>
>>> 2.2% {0ms} Rectangle class>>origin:extent:
>>>
>>> 2.2% {0ms} Rectangle>>setOrigin:corner:
>>> 38.3% {1ms} MethodToolbar>>versionMethod
>>> 38.3% {1ms} AbstractTool>>browseVersionsFrom:
>>> 38.3% {1ms} VersionsBrowser
>>> class>>browseVersionsOf:class:meta:category:selector:
>>> 38.3% {1ms} VersionsBrowser
>>> class>>browseVersionsOf:class:meta:category:selector:lostMethodPointer:
>>> 38.3% {1ms} VersionsBrowser class(ChangeList
>>> class)>>open:name:multiSelect:
>>> 38.3% {1ms} VersionsBrowser class(ChangeList
>>> class)>>openAsMorph:name:multiSelect:
>>> 38.3% {1ms}
>>> VersionsBrowser(ChangeList)>>openAsMorphName:multiSelect:
>>> 28.0% {1ms} SystemWindow(Morph)>>openInWorld
>>> |28.0% {1ms} SystemWindow>>openInWorld:
>>> | 15.1% {0ms} SystemWindow(Morph)>>bounds:
>>> | |15.1% {0ms} SystemWindow>>position:
>>> | | 15.1% {0ms} SystemWindow(Morph)>>position:
>>> | | 15.1% {0ms} SystemWindow(Morph)>>fullBounds
>>> | | 15.1% {0ms} SystemWindow(Morph)>>doLayoutIn:
>>> | | 14.8% {0ms} ProportionalLayout>>layout:in:
>>> | | 14.8% {0ms}
>>> AlignmentMorph(Morph)>>layoutProportionallyIn:
>>> | | 13.2% {0ms} AlignmentMorph(Morph)>>fullBounds
>>> | | |12.9% {0ms}
>>> AlignmentMorph(Morph)>>doLayoutIn:
>>> | | | 12.4% {0ms}
>>> ProportionalLayout>>layout:in:
>>> | | | 12.4% {0ms}
>>> PanelMorph(Morph)>>layoutProportionallyIn:
>>> | | | 11.9% {0ms}
>>> PanelMorph(Morph)>>layoutInBounds:
>>> | | | 10.2% {0ms}
>>> PanelMorph(Morph)>>bounds:
>>> | | | 8.1% {0ms}
>>> PanelMorph(Morph)>>position:
>>> | | | 6.5% {0ms}
>>> PanelMorph(Morph)>>fullBounds
>>> | | | 5.7% {0ms}
>>> PanelMorph(Morph)>>doLayoutIn:
>>> | | | 4.0% {0ms}
>>> TableLayout>>layout:in:
>>> | | | |3.2% {0ms}
>>> TableLayout>>placeCells:in:horizontal:target:
>>> | | | | 3.2% {0ms}
>>> PluggableTextMorph(Morph)>>layoutInBounds:
>>> | | | | 3.2% {0ms}
>>> PluggableTextMorph(Morph)>>bounds:
>>> | | | | 3.2%
>>> {0ms} PluggableTextMorph>>extent:
>>> | | | | 1.6%
>>> {0ms} TextMorphForEditView(TextMorph)>>extent:
>>> | | | | 1.3%
>>> {0ms} PluggableTextMorph(ScrollPane)>>extent:
>>> | | | 1.6% {0ms}
>>> PanelMorph(Morph)>>privateFullBounds
>>> | | 1.6% {0ms}
>>> AlignmentMorph(Morph)>>layoutInBounds:
>>> | | 1.6% {0ms} AlignmentMorph(Morph)>>bounds:
>>> | 12.9% {0ms} SystemWindow>>openAsIsIn:
>>> | 12.7% {0ms} SystemWindow>>activate
>>> | 12.7% {0ms} SystemWindow>>basicActivate
>>> | 7.8% {0ms} SystemWindow(Morph)>>changed
>>> | |7.8% {0ms} SystemWindow(Morph)>>privateFullBounds
>>> | | 7.8% {0ms} SystemWindow(Morph)>>submorphBounds
>>> | | 7.8% {0ms} AlignmentMorph(Morph)>>fullBounds
>>> | | 7.8% {0ms} AlignmentMorph(Morph)>>doLayoutIn:
>>> | | 7.8% {0ms} ProportionalLayout>>layout:in:
>>> | | 7.8% {0ms}
>>> PanelMorph(Morph)>>layoutProportionallyIn:
>>> | | 7.8% {0ms} PanelMorph(Morph)>>fullBounds
>>> | | 7.8% {0ms}
>>> PanelMorph(Morph)>>doLayoutIn:
>>> | | 7.8% {0ms} TableLayout>>layout:in:
>>> | | 6.2% {0ms}
>>> TableLayout>>placeCells:in:horizontal:target:
>>> | | |6.2% {0ms}
>>> DiffMorph(Morph)>>layoutInBounds:
>>> | | | 6.2% {0ms}
>>> DiffMorph(Morph)>>bounds:
>>> | | | 5.7% {0ms}
>>> DiffMorph>>extent:
>>> | | | 5.7% {0ms}
>>> DiffMorph>>calibrateScrollbar
>>> | | | 5.7% {0ms}
>>> DiffMorph(Morph)>>fullBounds
>>> | | | 5.7% {0ms}
>>> DiffMorph(Morph)>>doLayoutIn:
>>> | | | 5.7%
>>> {0ms} ProportionalLayout>>layout:in:
>>> | | | 5.7%
>>> {0ms} PanelMorph(Morph)>>layoutProportionallyIn:
>>> | | | 5.4%
>>> {0ms} PanelMorph(Morph)>>layoutInBounds:
>>> | | |
>>> 4.6% {0ms} PanelMorph(Morph)>>bounds:
>>> | | |
>>> 3.5% {0ms} PanelMorph(Morph)>>position:
>>> | | |
>>> 2.7% {0ms} PanelMorph(Morph)>>fullBounds
>>> | | |
>>> 2.2% {0ms} PanelMorph(Morph)>>doLayoutIn:
>>> | | |
>>> 1.3% {0ms} PanelMorph(Morph)>>privateFullBounds
>>> | | 1.6% {0ms}
>>> TableLayout>>computeCellSizes:in:horizontal:
>>> | | 1.6% {0ms}
>>> DiffMorph(Morph)>>minExtent
>>> | | 1.6% {0ms}
>>> ProportionalLayout>>minExtentOf:in:
>>> | | 1.6% {0ms}
>>> PanelMorph(Morph)>>minExtent
>>> | | 1.6% {0ms}
>>> PanelMorph(Morph)>>layoutBounds
>>> | 4.9% {0ms} VersionsBrowser(CodeHolder)>>modelWakeUpIn:
>>> | 4.9% {0ms} VersionsBrowser>>updateListsAndCodeIn:
>>> | 4.9% {0ms} VersionsBrowser>>reformulateList
>>> | 4.9% {0ms} VersionsBrowser>>contentsChanged
>>> | 4.9% {0ms} VersionsBrowser>>buildDiffCodePane
>>> | 4.9% {0ms}
>>> VersionsBrowser>>buildDiffMorphFromOldString:toNewString:contextClass:
>>> | 4.6% {0ms} DiffMorph class(Behavior)>>new
>>> | 4.6% {0ms} DiffMorph>>initialize
>>> | 4.6% {0ms} DiffMorph>>extent:
>>> | 4.6% {0ms}
>>> DiffMorph>>calibrateScrollbar
>>> | 4.6% {0ms}
>>> DiffMorph(Morph)>>fullBounds
>>> | 4.6% {0ms}
>>> DiffMorph(Morph)>>doLayoutIn:
>>> | 2.7% {0ms}
>>> DiffMorph(Morph)>>privateFullBounds
>>> | |2.7% {0ms}
>>> DiffMorph(Morph)>>submorphBounds
>>> | | 2.7% {0ms}
>>> PanelMorph(Morph)>>fullBounds
>>> | | 2.2% {0ms}
>>> PanelMorph(Morph)>>doLayoutIn:
>>> | | 1.3% {0ms}
>>> PanelMorph(Morph)>>privateFullBounds
>>> | 1.9% {0ms}
>>> ProportionalLayout>>layout:in:
>>> | 1.9% {0ms}
>>> PanelMorph(Morph)>>layoutProportionallyIn:
>>> | 1.6% {0ms}
>>> PanelMorph(Morph)>>layoutInBounds:
>>> 3.8% {0ms} SystemWindow class>>labelled:
>>> |3.8% {0ms} SystemWindow class(Behavior)>>new
>>> | 3.8% {0ms} SystemWindow>>initialize
>>> | 3.5% {0ms} SystemWindow>>extent:
>>> | 3.5% {0ms} SystemWindow(Morph)>>extent:
>>> | 3.5% {0ms} SystemWindow(Morph)>>changed
>>> | 3.5% {0ms} SystemWindow(Morph)>>privateFullBounds
>>> | 3.5% {0ms} SystemWindow(Morph)>>submorphBounds
>>> | 3.5% {0ms} AlignmentMorph(Morph)>>fullBounds
>>> | 3.2% {0ms} AlignmentMorph(Morph)>>doLayoutIn:
>>> | 3.2% {0ms} RowLayout>>layout:in:
>>> | 3.0% {0ms} Point>>extent:
>>> | 3.0% {0ms} Rectangle
>>> class>>origin:extent:
>>> | 3.0% {0ms} Rectangle>>setOrigin:corner:
>>> 3.5% {0ms} SystemWindow>>model:
>>> |3.5% {0ms} SystemWindow(Morph)>>fillStyle:
>>> | 3.5% {0ms} SystemWindow(Morph)>>changed
>>> | 3.5% {0ms} SystemWindow(Morph)>>privateFullBounds
>>> | 3.5% {0ms} SystemWindow(Morph)>>submorphBounds
>>> | 3.5% {0ms} AlignmentMorph(Morph)>>fullBounds
>>> | 3.2% {0ms} AlignmentMorph(Morph)>>doLayoutIn:
>>> | 3.2% {0ms} RowLayout>>layout:in:
>>> | 3.0% {0ms} Point>>extent:
>>> | 3.0% {0ms} Rectangle class>>origin:extent:
>>> | 3.0% {0ms} Rectangle>>setOrigin:corner:
>>> 1.9% {0ms} VersionsBrowser(CodeHolder)>>addLowerPanesTo:at:with:
>>> 1.9% {0ms}
>>> VersionsBrowser(CodeHolder)>>addOptionalButtonsTo:at:plus:
>>> 17.5% {0ms} ToolRegistry>>openClassBrowser
>>> 17.5% {0ms} Nautilus class>>open
>>> 17.5% {0ms} Nautilus class>>openInEnvironment:
>>> 17.5% {0ms} Nautilus>>open
>>> 17.5% {0ms} NautilusUI>>open
>>> 17.5% {0ms} NautilusUI(AbstractNautilusUI)>>open
>>> 7.3% {0ms} NautilusWindow class(Behavior)>>new
>>> |7.3% {0ms} NautilusWindow(StandardWindow)>>initialize
>>> | 3.8% {0ms} NautilusWindow(SystemWindow)>>initialize
>>> | |3.5% {0ms} NautilusWindow(SystemWindow)>>extent:
>>> | | 3.5% {0ms} NautilusWindow(Morph)>>extent:
>>> | | 3.5% {0ms} NautilusWindow(Morph)>>changed
>>> | | 3.5% {0ms} NautilusWindow(Morph)>>privateFullBounds
>>> | | 3.5% {0ms} NautilusWindow(Morph)>>submorphBounds
>>> | | 3.5% {0ms} AlignmentMorph(Morph)>>fullBounds
>>> | | 3.2% {0ms} AlignmentMorph(Morph)>>doLayoutIn:
>>> | | 3.2% {0ms} RowLayout>>layout:in:
>>> | | 3.0% {0ms} Point>>extent:
>>> | | 3.0% {0ms} Rectangle class>>origin:extent:
>>> | | 3.0% {0ms} Rectangle>>setOrigin:corner:
>>> | 3.5% {0ms} NautilusWindow(SystemWindow)>>setWindowColor:
>>> | 3.5% {0ms} NautilusWindow(SystemWindow)>>setStripeColorsFrom:
>>> | 3.5% {0ms} NautilusWindow(Morph)>>fillStyle:
>>> | 3.5% {0ms} NautilusWindow(Morph)>>changed
>>> | 3.5% {0ms} NautilusWindow(Morph)>>privateFullBounds
>>> | 3.5% {0ms} NautilusWindow(Morph)>>submorphBounds
>>> | 3.5% {0ms} AlignmentMorph(Morph)>>fullBounds
>>> | 3.2% {0ms} AlignmentMorph(Morph)>>doLayoutIn:
>>> | 3.2% {0ms} RowLayout>>layout:in:
>>> | 3.0% {0ms} Point>>extent:
>>> | 3.0% {0ms} Rectangle class>>origin:extent:
>>> | 3.0% {0ms} Rectangle>>setOrigin:corner:
>>> 6.7% {0ms} NautilusUI>>addAll:
>>> |5.7% {0ms} NautilusUI>>buildColumns:height:
>>> | 1.3% {0ms} NautilusUI>>buildNavigationList
>>> | 1.3% {0ms} DropListMorph
>>> class>>on:list:selected:changeSelected:
>>> | 1.3% {0ms} DropListMorph class(Behavior)>>new
>>> | 1.3% {0ms} DropListMorph>>initialize
>>> 3.5% {0ms} NautilusWindow(Morph)>>openInWorld
>>> 3.5% {0ms} NautilusWindow(SystemWindow)>>openInWorld:
>>> 3.5% {0ms} NautilusWindow(Morph)>>bounds:
>>> 3.5% {0ms} NautilusWindow(SystemWindow)>>position:
>>> 3.5% {0ms} NautilusWindow(Morph)>>position:
>>> 3.5% {0ms} NautilusWindow(Morph)>>fullBounds
>>> 3.5% {0ms} NautilusWindow(Morph)>>doLayoutIn:
>>> 3.5% {0ms} ProportionalLayout>>layout:in:
>>> 3.5% {0ms}
>>> AlignmentMorph(Morph)>>layoutProportionallyIn:
>>> 3.5% {0ms} AlignmentMorph(Morph)>>fullBounds
>>> 3.2% {0ms} AlignmentMorph(Morph)>>doLayoutIn:
>>> 3.2% {0ms} RowLayout>>layout:in:
>>> 3.0% {0ms} Point>>extent:
>>> 3.0% {0ms} Rectangle class>>origin:extent:
>>> 3.0% {0ms} Rectangle>>setOrigin:corner:
>>> 3.2% {0ms} WorldState>>doOneCycleNowFor:
>>> 3.2% {0ms} HandMorph>>processEvents
>>> 3.2% {0ms} HandMorph>>handleEvent:
>>> 3.2% {0ms} HandMorph>>sendMouseEvent:
>>> 3.2% {0ms} HandMorph>>sendEvent:focus:clear:
>>> 3.2% {0ms} PasteUpMorph(Morph)>>processEvent:
>>> 3.2% {0ms} PasteUpMorph>>processEvent:using:
>>> 3.2% {0ms} PasteUpMorph(Morph)>>processEvent:using:
>>> 3.2% {0ms} MorphicEventDispatcher>>dispatchEvent:with:
>>> 3.2% {0ms} MorphicEventDispatcher>>dispatchMouseDown:with:
>>> 3.2% {0ms} PasteUpMorph(Morph)>>handleEvent:
>>> 3.2% {0ms} MouseButtonEvent>>sentTo:
>>> 3.2% {0ms} PasteUpMorph(Morph)>>handleMouseDown:
>>> 3.2% {0ms} PasteUpMorph>>mouseDown:
>>> 3.2% {0ms} PasteUpMorph>>invokeWorldMenu:
>>> 3.2% {0ms} MenuMorph>>popUpEvent:in:
>>> 3.2% {0ms} MenuMorph>>popUpAt:forHand:in:
>>> 3.2% {0ms}
>>> MenuMorph>>popUpAt:forHand:in:allowKeyboard:
>>> 3.2% {0ms}
>>> MenuMorph>>positionAt:relativeTo:inWorld:
>>> 3.2% {0ms} MenuMorph(Morph)>>fullBounds
>>> 3.2% {0ms} MenuMorph(Morph)>>doLayoutIn:
>>> 3.2% {0ms} TableLayout>>layout:in:
>>> 3.2% {0ms}
>>> TableLayout>>layoutTopToBottom:in:
>>> 2.4% {0ms}
>>> AlignmentMorph(Morph)>>layoutInBounds:
>>> 1.6% {0ms}
>>> AlignmentMorph(Morph)>>bounds:
>>> 1.6% {0ms}
>>> AlignmentMorph(Morph)>>position:
>>> 1.6% {0ms}
>>> AlignmentMorph(Morph)>>fullBounds
>>> 1.3% {0ms}
>>> AlignmentMorph(Morph)>>doLayoutIn:
>>> 2.7% {0ms} NautilusWindow(SystemWindow)>>closeBoxHit
>>> 2.7% {0ms} NautilusWindow>>delete
>>> 2.7% {0ms} NautilusWindow(StandardWindow)>>delete
>>> 2.7% {0ms} NautilusWindow(SystemWindow)>>delete
>>> 2.7% {0ms} SystemWindow class>>noteTopWindowIn:
>>> 2.7% {0ms} SystemWindow>>activate
>>> 2.7% {0ms} SystemWindow>>navigateFocusForward
>>> 2.7% {0ms} SystemWindow(Morph)>>navigateFocusForward
>>> 2.7% {0ms} PluggableTextMorph(Morph)>>takeKeyboardFocus
>>> 2.7% {0ms} HandMorph>>newKeyboardFocus:
>>> 2.7% {0ms} PluggableTextMorph>>keyboardFocusChange:
>>> 2.7% {0ms} TextMorphForEditView(Morph)>>takeKeyboardFocus
>>> 2.7% {0ms} HandMorph>>newKeyboardFocus:
>>> 2.7% {0ms} TextMorphForEditView>>keyboardFocusChange:
>>> 2.7% {0ms} SmalltalkEditor(TextEditor)>>focused:
>>> 2.7% {0ms} SmalltalkEditingState>>focused:from:
>>> 2.7% {0ms}
>>> SmalltalkEditingState(EditingState)>>focused:from:
>>> 2.7% {0ms}
>>> EditorFindReplaceDialogWindow class>>on:
>>> 2.7% {0ms}
>>> EditorFindReplaceDialogWindow>>on:
>>> 2.7% {0ms}
>>> EditorFindReplaceDialogWindow(StandardWindow)>>model:
>>> 2.7% {0ms}
>>> EditorFindReplaceDialogWindow(SystemWindow)>>model:
>>> 2.7% {0ms}
>>> EditorFindReplaceDialogWindow(Morph)>>fillStyle:
>>> 2.7% {0ms}
>>> EditorFindReplaceDialogWindow(Morph)>>changed
>>> 2.7% {0ms}
>>> EditorFindReplaceDialogWindow(Morph)>>privateFullBounds
>>> 2.7% {0ms}
>>> EditorFindReplaceDialogWindow(Morph)>>submorphBounds
>>> 2.7% {0ms}
>>> AlignmentMorph(Morph)>>fullBounds
>>> 2.4% {0ms}
>>> AlignmentMorph(Morph)>>doLayoutIn:
>>> 2.4% {0ms}
>>> RowLayout>>layout:in:
>>> 2.2% {0ms}
>>> Point>>extent:
>>> 2.2% {0ms}
>>> Rectangle class>>origin:extent:
>>> 2.2% {0ms}
>>> Rectangle>>setOrigin:corner:
>>>
>>> **Leaves**
>>> 100.0% {2ms} Rectangle>>setOrigin:corner:
>>>
>>> **Memory**
>>> old +0 bytes
>>> young +4,588 bytes
>>> used +4,588 bytes
>>> free -4,588 bytes
>>>
>>> **GCs**
>>> full 0 totalling 0ms (0.0% uptime)
>>> incr 0 totalling 0ms (0.0% uptime)
>>> tenures 0
>>> root table 0 overflows
>>>
>>> My feeling is that you are not thru with degenerated rectangles :)
>>> You'd better enforce the invariant in
>>> http://code.google.com/p/pharo/issues/detail?id=2601
>>> rathert than remove it as requested in
>>> http://code.google.com/p/pharo/issues/detail?id=2441
>>>
>>> Nicolas
>>>
>>> 2013/2/13 Nicolas Cellier <nicolas.cellier.aka.nice(a)gmail.com>:
>>>> I tried to put a halt in Rectangle>>setOrigin: topLeft corner: bottomRight
>>>> in latest Pharo (20543) if width < 0 or height < 0 and of course the
>>>> image hung...
>>>> which means that degenerated Rectangles are pretty much in use
>>>>
>>>> I think I will juts raise a Notification, and catch it with a
>>>> MessageTally hack to track the senders
>>>> (as documented at
>>>> http://bugs.squeak.org/bug_view_advanced_page.php?bug_id=6755 )
>>>>
>>>> Nicolas
>>>>
>>>> 2013/2/13 Igor Stasenko <siguctua(a)gmail.com>:
>>>>> yes.. and i'd like to add that in some places i replaced senders of
>>>>>
>>>>> rect1 intersect: rect2
>>>>>
>>>>> with:
>>>>>
>>>>> rect1 intersect: rect2 ifNone: [ self error: 'should not happen'].
>>>>>
>>>>> as it appears, it happens in some places... because of the above inconsistency.
>>>>>
>>>>>
>>>>> --
>>>>> Best regards,
>>>>> Igor Stasenko.
>>>>>
>>>
>>
>>
Feb. 14, 2013