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 Nicolas Cellier
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.
It's not ideal, but it's a wiser decision in the short term.
Nicolas
2013/2/13 Igor Stasenko <siguctua(a)gmail.com>:
> On 14 February 2013 00:01, Nicolas Cellier
> <nicolas.cellier.aka.nice(a)gmail.com> wrote:
>> So here is what I did:
> .....
>
>>
>> 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
>
> After replacement of intersect: with intersect:ifNone:
> there is no need to enforcing invariants in #intersect: anymore, because
> users can decide by themselves what to do if two rects are not intersecting..
>
> the behavior of #intersect: for non-intersecting rects is totally
> absurd and changing it to answer empty rect
> (like with all zeroes) is not a good solution either, comparing to
> providing a closure to handle it.
>
>>
>> Nicolas
>>
>
>
> --
> Best regards,
> Igor Stasenko.
>
Feb. 13, 2013
Re: [Pharo-project] Rectangle>>intersects: change Rationale
by Igor Stasenko
On 14 February 2013 00:01, Nicolas Cellier
<nicolas.cellier.aka.nice(a)gmail.com> wrote:
> So here is what I did:
.....
>
> 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
After replacement of intersect: with intersect:ifNone:
there is no need to enforcing invariants in #intersect: anymore, because
users can decide by themselves what to do if two rects are not intersecting..
the behavior of #intersect: for non-intersecting rects is totally
absurd and changing it to answer empty rect
(like with all zeroes) is not a good solution either, comparing to
providing a closure to handle it.
>
> Nicolas
>
--
Best regards,
Igor Stasenko.
Feb. 13, 2013
Re: [Pharo-project] Rectangle>>intersects: change Rationale
by Nicolas Cellier
So here is what I did:
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.
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. 13, 2013
Re: [Pharo-project] Rectangle>>intersects: change Rationale
by Igor Stasenko
On 13 February 2013 23:47, Nicolas Cellier
<nicolas.cellier.aka.nice(a)gmail.com> wrote:
> 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
>
they are, because you can construct rectanges from two arbitrary points:
rect := (100@100) corner: (0@0)..
but internally, Rectangle should check that and do correct
rearrangement and then answer correct values on:
left => 0
top => 0
right => 100
bottom => 100
width => 100
height => 100
that was the final goal of all refactorings (make sure that internally
, Rectangle stores coordinates in right order, regardless of what you
supplied as origin & corner).
But that was requiring to review all users of rects where it assumed
that once they put origin>corner
it will be like that.. (like offsets in frames etc)..
so, this last change was not done.. because it is scary one ;)
we need to test if it will work.
> 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.
>>
>
--
Best regards,
Igor Stasenko.
Feb. 13, 2013
Re: [Pharo-project] Rectangle>>intersects: change Rationale
by Nicolas Cellier
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. 13, 2013
[Pharo-project] bug metacello toolbox / pharo2
by Christophe Demarey
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?
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?
Regards,
Christophe.
Feb. 13, 2013
Re: [Pharo-project] Rectangle>>intersects: change Rationale
by Igor Stasenko
On 13 February 2013 23:41, Nicolas Cellier
<nicolas.cellier.aka.nice(a)gmail.com> wrote:
> Ah, and the change is the other way around, <= was replaced with <...
> I ask because we had a request in squeak-dev after I changed
> Rectangle>>intersects:
> and was wondering if this should be in Squeak too
>
> http://lists.squeakfoundation.org/pipermail/squeak-dev/2013-January/167855.…
>
yes, imo :
"The right question is: do the two rectangles have points in common?"
> 2013/2/13 stephane ducasse <stephane.ducasse(a)free.fr>:
>> Nicolas
>>
>> what I know is that with igor we fixed all the senders of fractions:offset: and
>> after igor introduced intersect:ifNone:
>> to avoid generating "wrong" rectangles with negative values.
>>
>> I thought that intersect: was deprecated.
>> or the precondition should be clearer.
>>
>> Stef
>>
>> On Feb 13, 2013, at 9:55 PM, Nicolas Cellier <nicolas.cellier.aka.nice(a)gmail.com> wrote:
>>
>>> Rectangle>>intersects: has been changed recently (GuillermoPolito 2/8/2013)
>>> rCorner x < origin x ifTrue: [ ^ false ].
>>> rCorner y < origin y ifTrue: [ ^ false ].
>>> rOrigin x > corner x ifTrue: [ ^ false ].
>>> rOrigin y > corner y ifTrue: [ ^ false ].
>>>
>>> these inequalities have been transformed into <= and >=
>>> Can someone point me to the issue number documenting this change?
>>>
>>> Nicolas
>>>
>>
>>
>
--
Best regards,
Igor Stasenko.
Feb. 13, 2013
Re: [Pharo-project] Rectangle>>intersects: change Rationale
by Nicolas Cellier
Ah, and the change is the other way around, <= was replaced with <...
I ask because we had a request in squeak-dev after I changed
Rectangle>>intersects:
and was wondering if this should be in Squeak too
http://lists.squeakfoundation.org/pipermail/squeak-dev/2013-January/167855.…
2013/2/13 stephane ducasse <stephane.ducasse(a)free.fr>:
> Nicolas
>
> what I know is that with igor we fixed all the senders of fractions:offset: and
> after igor introduced intersect:ifNone:
> to avoid generating "wrong" rectangles with negative values.
>
> I thought that intersect: was deprecated.
> or the precondition should be clearer.
>
> Stef
>
> On Feb 13, 2013, at 9:55 PM, Nicolas Cellier <nicolas.cellier.aka.nice(a)gmail.com> wrote:
>
>> Rectangle>>intersects: has been changed recently (GuillermoPolito 2/8/2013)
>> rCorner x < origin x ifTrue: [ ^ false ].
>> rCorner y < origin y ifTrue: [ ^ false ].
>> rOrigin x > corner x ifTrue: [ ^ false ].
>> rOrigin y > corner y ifTrue: [ ^ false ].
>>
>> these inequalities have been transformed into <= and >=
>> Can someone point me to the issue number documenting this change?
>>
>> Nicolas
>>
>
>
Feb. 13, 2013
Re: [Pharo-project] Rectangle>>intersects: change Rationale
by Igor Stasenko
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. 13, 2013
Re: [Pharo-project] Rectangle>>intersects: change Rationale
by stephane ducasse
Nicolas
what I know is that with igor we fixed all the senders of fractions:offset: and
after igor introduced intersect:ifNone:
to avoid generating "wrong" rectangles with negative values.
I thought that intersect: was deprecated.
or the precondition should be clearer.
Stef
On Feb 13, 2013, at 9:55 PM, Nicolas Cellier <nicolas.cellier.aka.nice(a)gmail.com> wrote:
> Rectangle>>intersects: has been changed recently (GuillermoPolito 2/8/2013)
> rCorner x < origin x ifTrue: [ ^ false ].
> rCorner y < origin y ifTrue: [ ^ false ].
> rOrigin x > corner x ifTrue: [ ^ false ].
> rOrigin y > corner y ifTrue: [ ^ false ].
>
> these inequalities have been transformed into <= and >=
> Can someone point me to the issue number documenting this change?
>
> Nicolas
>
Feb. 13, 2013