[squeak-dev] How to force selection update in the debugger?
Bob Arning
arning315 at comcast.net
Thu Nov 15 13:40:01 UTC 2012
If you want speed, then why not limit the visual updates to something
you can see:
doStepSeveral
| n t lastDisplay |
t := [
(n := 500) timesRepeat: [
self doStep.
].
] timeToRun.
Transcript show: t asString,' ms for ',n asString,' steps without
display'; cr.
t := [
(n := 500) timesRepeat: [
self doStep.
self changed: #contentsSelection.
World displayWorldSafely.
].
] timeToRun.
Transcript show: t asString,' ms for ',n asString,' steps with
display'; cr.
lastDisplay := Time millisecondClockValue.
t := [
(n := 500) timesRepeat: [
self doStep.
(lastDisplay - Time millisecondClockValue) abs > 20 ifTrue: [
lastDisplay := Time millisecondClockValue.
self changed: #contentsSelection.
World displayWorldSafely.
].
].
] timeToRun.
Transcript show: t asString,' ms for ',n asString,' steps with
occasional display'; cr.
yields:
68 ms for 500 steps without display
4290 ms for 500 steps with display
101 ms for 500 steps with occasional display
Cheers,
Bob
On 11/15/12 3:16 AM, Eliot Miranda wrote:
> Hi Bob,
>
> thanks, but no thanks <blush>. I want to see the update as fast as
> possible, even if it flickers like crazy. I don't want to display the
> whole world, just the text morph in question.
>
>
> On Wed, Nov 14, 2012 at 11:13 AM, Bob Arning <arning315 at comcast.net
> <mailto:arning315 at comcast.net>> wrote:
>
> This works for me:
>
> doStepSeveral
>
> 10 timesRepeat: [
> self doStep.
> self changed: #contentsSelection.
> World displayWorldSafely.
> (Delay forMilliseconds: 100) wait. "in case you want to
> see each step"
> ]
>
>
> Cheers,
> Bob
>
> On 11/14/12 1:26 PM, Eliot Miranda wrote:
>> Hi All,
>>
>> I submitted a run until feature for the debugger to the
>> Squeak inbox recently and would commit it to trunk except that
>> I'd like the option of having the selection update on each step.
>> But I can't see how to do that. I *think* selection update is
>> done with a callback here in Debugger>>contents:selection:
>>
>>
>> Smalltalk isMorphic ifTrue:
>> [World
>> addAlarm: #changed:
>> withArguments: #(contentsSelection)
>> for: self
>> at: (Time millisecondClockValue + 200)].
>>
>> And I'm not sure how this causes the selection to update. Is it
>> part of text morph draw or a separate thing? This is too
>> convoluted to look through. So perhaps someone can help e. If I
>> want the selection to redraw what's the minimum action necessary.
>> This is as part of a loop that looks like
>>
>> [self selectedContext == context
>> and: [(value := receiver with: context executeMethod: method) ==
>> false]] whileTrue:
>> [self doStep].
>>
>> i.e. after the doStep I'd like to force the code pane to update
>> its selection.
>>
>> AdvThanksance
>> --
>> best,
>> Eliot
>>
>>
>>
>
>
>
>
>
>
>
> --
> best,
> Eliot
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20121115/b3ec37db/attachment.htm
More information about the Squeak-dev
mailing list
|