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
Re: [Pharo-project] Rectangle>>intersects: change Rationale
by Igor Stasenko
On 14 February 2013 18:27, Nicolas Cellier
<nicolas.cellier.aka.nice(a)gmail.com> wrote:
> I don't want nothing, but you inherit from very specialized class
> historically used to draw on pixel boundaries...
> A rectangle that you cannot even rotate, common ;)
>
Well, from that perspective, then we should not touch anything and let
it stink forever :)
P.S. I think that we should revert the change to #intersects:
--
Best regards,
Igor Stasenko.
Feb. 14, 2013
Re: [Pharo-project] Rectangle>>intersects: change Rationale
by Nicolas Cellier
I don't want nothing, but you inherit from very specialized class
historically used to draw on pixel boundaries...
A rectangle that you cannot even rotate, common ;)
Nicolas
2013/2/14 Igor Stasenko <siguctua(a)gmail.com>:
> On 14 February 2013 18:10, Nicolas Cellier
> <nicolas.cellier.aka.nice(a)gmail.com> wrote:
>> That means you probably need to change some graphics primitives.
>>
>> If you want to go this way (have mathematical geometric objects), then
>> I think you're on the step off Juan Morphic 3...
>>
> well, how you can reason about intersecting rectangles without using geometry?
>
> i do not want a rectangle which is not a rectangle in common sense,
> but rectangle in "our" sense,
> just because it fits us better.
>
>
>> Nicolas
>
>
> --
> Best regards,
> Igor Stasenko.
>
Feb. 14, 2013
Re: [Pharo-project] Rectangle>>intersects: change Rationale
by Frank Shearar
On 14 February 2013 17:22, Igor Stasenko <siguctua(a)gmail.com> wrote:
> On 14 February 2013 18:10, Nicolas Cellier
> <nicolas.cellier.aka.nice(a)gmail.com> wrote:
>> That means you probably need to change some graphics primitives.
>>
>> If you want to go this way (have mathematical geometric objects), then
>> I think you're on the step off Juan Morphic 3...
>>
> well, how you can reason about intersecting rectangles without using geometry?
I think Nicolas means intervals over discrete values - integers -
versus intervals over continuous values - reals.
frank
> i do not want a rectangle which is not a rectangle in common sense,
> but rectangle in "our" sense,
> just because it fits us better.
>
>
>> Nicolas
>
>
> --
> Best regards,
> Igor Stasenko.
>
Feb. 14, 2013
Re: [Pharo-project] Rectangle>>intersects: change Rationale
by Igor Stasenko
On 14 February 2013 18:10, Nicolas Cellier
<nicolas.cellier.aka.nice(a)gmail.com> wrote:
> That means you probably need to change some graphics primitives.
>
> If you want to go this way (have mathematical geometric objects), then
> I think you're on the step off Juan Morphic 3...
>
well, how you can reason about intersecting rectangles without using geometry?
i do not want a rectangle which is not a rectangle in common sense,
but rectangle in "our" sense,
just because it fits us better.
> Nicolas
--
Best regards,
Igor Stasenko.
Feb. 14, 2013
Re: [Pharo-project] Rectangle>>intersects: change Rationale
by Nicolas Cellier
That means you probably need to change some graphics primitives.
If you want to go this way (have mathematical geometric objects), then
I think you're on the step off Juan Morphic 3...
Nicolas
2013/2/14 Igor Stasenko <siguctua(a)gmail.com>:
> Yet another perspective.. is that if we state:
>
> Any two points form a rectangle..
>
> Then, by construction it means that
>
> Rectangle origin: pt1 corner: pt2
>
> should be equal to:
>
> Rectangle origin: pt2 corner: pt1
>
> and here the evil part: if you use [) intervals
> you not get what you want, because in one case
> it will be rectangle which includes all points from pt1 to pt2 but not
> including pt2
> while in another case, it will be rectangle which includes all points
> from pt1 to pt2 but not including pt1..
>
> and this is why i inclined to use [] intervals for defining the rectangles.
>
> --
> Best regards,
> Igor Stasenko.
>
Feb. 14, 2013
Re: [Pharo-project] Rectangle>>intersects: change Rationale
by Nicolas Cellier
Yes, I think it is a problem of reasonning as whole number of pixels
Interval [ ) is for the case where (0@0 extent: 10@1) is exactly 10
pixels wide, and 1 pixel tall...
The mail I cited above is using Rectangle as an abstraction of
horizontal/vertical line segment (zero-width), in which case [a a)
must still intersects...
That must be conflicting with redrawing surfaces for which [a a) must not...
Nicolas
2013/2/14 Igor Stasenko <siguctua(a)gmail.com>:
> It is all about intervals..
> if you define a rectangle using pair of intervals (2-dimensional):
>
> [ a .. b )
>
> then it contains all points between a and b, including a, but not including b
> and therefore rectangles
> [ a.. b ) and [b .. c ) (where c >b) do not intersect.
>
> if rectangle defined as pair of intervals:
>
> [ a .. b ]
>
> then it contains all points between a and b, including a AND b
> and of course
> [ a .. b ] and [b .. c ] (where c >b) will overlap.
>
> the problem is if you using [ ) intervals, then how you represent
> degenerate (zero-width or zero-height)
> rectangles..
> because interval [a .. a) holds a contradiction: it includes 'a', but
> not includes 'a', which makes no sense.
>
> and then you have interesting questions, like do intervals
> [a..a) and [a..b) overlap?
>
> While if using [a..a] there's no problem..
> [a..a] certainly overlaps with [a..b]
>
> But from other side, if we will use [...] intervals, then there is no
> way to split interval to get two non-overlapping ones:
>
> [a..b] => [a..c] + [c..b]
> (a<=c<=b)
>
> But i am not sure whether it will have significant impact or not.
>
> So, here my question: what interval type is better [) or [] ?
> Existed implementation uses [)
>
> --
> Best regards,
> Igor Stasenko.
>
Feb. 14, 2013
Re: [Pharo-project] Rectangle>>intersects: change Rationale
by Igor Stasenko
Yet another perspective.. is that if we state:
Any two points form a rectangle..
Then, by construction it means that
Rectangle origin: pt1 corner: pt2
should be equal to:
Rectangle origin: pt2 corner: pt1
and here the evil part: if you use [) intervals
you not get what you want, because in one case
it will be rectangle which includes all points from pt1 to pt2 but not
including pt2
while in another case, it will be rectangle which includes all points
from pt1 to pt2 but not including pt1..
and this is why i inclined to use [] intervals for defining the rectangles.
--
Best regards,
Igor Stasenko.
Feb. 14, 2013
Re: [Pharo-project] Rectangle>>intersects: change Rationale
by Igor Stasenko
It is all about intervals..
if you define a rectangle using pair of intervals (2-dimensional):
[ a .. b )
then it contains all points between a and b, including a, but not including b
and therefore rectangles
[ a.. b ) and [b .. c ) (where c >b) do not intersect.
if rectangle defined as pair of intervals:
[ a .. b ]
then it contains all points between a and b, including a AND b
and of course
[ a .. b ] and [b .. c ] (where c >b) will overlap.
the problem is if you using [ ) intervals, then how you represent
degenerate (zero-width or zero-height)
rectangles..
because interval [a .. a) holds a contradiction: it includes 'a', but
not includes 'a', which makes no sense.
and then you have interesting questions, like do intervals
[a..a) and [a..b) overlap?
While if using [a..a] there's no problem..
[a..a] certainly overlaps with [a..b]
But from other side, if we will use [...] intervals, then there is no
way to split interval to get two non-overlapping ones:
[a..b] => [a..c] + [c..b]
(a<=c<=b)
But i am not sure whether it will have significant impact or not.
So, here my question: what interval type is better [) or [] ?
Existed implementation uses [)
--
Best regards,
Igor Stasenko.
Feb. 14, 2013
Re: [Pharo-project] Wow... we've closed a lot of issues
by Nicolas Cellier
You must also ask how many issues you have created since 1.4, because
I doubt there are 1500 issues applying to 1.4.
It's not a critic.
It simply reflect the fact that it is necessary to temporarily break
things in order to change underlying system (events, text, browser
etc...)
Especially when the system has evolved up to a point where it is
fragile and hardly maintainable.
Nicolas
2013/2/14 Sean P. DeNigris <sean(a)clipperadams.com>:
> 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
Re: [Pharo-project] Rectangle>>intersects: change Rationale
by stephane ducasse
On Feb 14, 2013, at 10:28 AM, Nicolas Cellier <nicolas.cellier.aka.nice(a)gmail.com> wrote:
> 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…)
Ok I was nicely waiting :)
>
> 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...
>
> 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