<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <font face="Georgia">If you want speed, then why not limit the
      visual updates to something you can see:<br>
      <br>
      doStepSeveral<br>
      <br>
      &nbsp;&nbsp;&nbsp; | n t lastDisplay |<br>
      &nbsp;&nbsp;&nbsp; t := [<br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (n := 500) timesRepeat: [<br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; self doStep.<br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ].<br>
      &nbsp;&nbsp;&nbsp; ] timeToRun.<br>
      &nbsp;&nbsp;&nbsp; Transcript show: t asString,' ms for ',n asString,' steps
      without display'; cr.<br>
      &nbsp;&nbsp;&nbsp; <br>
      &nbsp;&nbsp;&nbsp; t := [<br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (n := 500) timesRepeat: [<br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; self doStep.<br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; self changed: #contentsSelection.<br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; World displayWorldSafely.<br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ].<br>
      &nbsp;&nbsp;&nbsp; ] timeToRun.<br>
      &nbsp;&nbsp;&nbsp; Transcript show: t asString,' ms for ',n asString,' steps with
      display'; cr.<br>
      &nbsp;&nbsp;&nbsp; <br>
      &nbsp;&nbsp;&nbsp; lastDisplay := Time millisecondClockValue.<br>
      &nbsp;&nbsp;&nbsp; t := [<br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (n := 500) timesRepeat: [<br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; self doStep.<br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (lastDisplay - Time millisecondClockValue) abs &gt; 20
      ifTrue: [<br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; lastDisplay := Time millisecondClockValue.<br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; self changed: #contentsSelection.<br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; World displayWorldSafely.<br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ].<br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ].<br>
      &nbsp;&nbsp;&nbsp; ] timeToRun.<br>
      &nbsp;&nbsp;&nbsp; Transcript show: t asString,' ms for ',n asString,' steps with
      occasional display'; cr.<br>
      &nbsp;&nbsp;&nbsp; <br>
      yields:<br>
      <br>
      68 ms for 500 steps without display<br>
      4290 ms for 500 steps with display<br>
      101 ms for 500 steps with occasional display<br>
      <br>
      Cheers,<br>
      Bob<br>
      <br>
    </font>
    <div class="moz-cite-prefix">On 11/15/12 3:16 AM, Eliot Miranda
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAC20JE2PccGFhb06Cvtr3D9LTjNtneCBeWV=zA5WMPkOyBraaA@mail.gmail.com"
      type="cite">Hi Bob,
      <div><br>
      </div>
      <div>&nbsp; &nbsp;thanks, but no thanks &lt;blush&gt;. &nbsp;I want to see the
        update as fast as possible, even if it flickers like crazy. &nbsp;I
        don't want to display the whole world, just the text morph in
        question.&nbsp;</div>
      <div class="gmail_extra"><br>
        <br>
        <div class="gmail_quote">On Wed, Nov 14, 2012 at 11:13 AM, Bob
          Arning <span dir="ltr">&lt;<a moz-do-not-send="true"
              href="mailto:arning315@comcast.net" target="_blank">arning315@comcast.net</a>&gt;</span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div text="#000000" bgcolor="#FFFFFF"> <font face="Georgia">This
                works for me:<br>
                <br>
                doStepSeveral<br>
                <br>
                &nbsp;&nbsp;&nbsp; 10 timesRepeat: [<br>
                &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; self doStep.<br>
                &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; self changed: #contentsSelection.<br>
                &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; World displayWorldSafely.<br>
                &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (Delay forMilliseconds: 100) wait.&nbsp;&nbsp;&nbsp; "in case
                you want to see each step"<br>
                &nbsp;&nbsp;&nbsp; ]<br>
                &nbsp;&nbsp;&nbsp; <br>
                &nbsp;&nbsp;&nbsp; <br>
                Cheers,<br>
                Bob<br>
                <br>
              </font>
              <div>
                <div class="h5">
                  <div>On 11/14/12 1:26 PM, Eliot Miranda wrote:<br>
                  </div>
                  <blockquote type="cite">Hi All,
                    <div><br>
                    </div>
                    <div>&nbsp; &nbsp; 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. &nbsp;But
                      I can't see how to do that. &nbsp;I *think* selection
                      update is done with a callback here in
                      Debugger&gt;&gt;contents:selection:</div>
                    <div><br>
                    </div>
                    <div>
                      <div><br>
                      </div>
                      <div><span style="white-space:pre-wrap"> </span>Smalltalk

                        isMorphic ifTrue:</div>
                      <div><span style="white-space:pre-wrap"> </span>[World</div>
                      <div><span style="white-space:pre-wrap"> </span>addAlarm:

                        #changed:</div>
                      <div><span style="white-space:pre-wrap"> </span>withArguments:

                        #(contentsSelection)</div>
                      <div><span style="white-space:pre-wrap"> </span>for:
                        self</div>
                      <div><span style="white-space:pre-wrap"> </span>at:
                        (Time millisecondClockValue + 200)].</div>
                    </div>
                    <div><br clear="all">
                      <div>And I'm not sure how this causes the
                        selection to update. &nbsp;Is it part of text morph
                        draw or a separate thing? &nbsp;This is too
                        convoluted to look through. &nbsp;So perhaps someone
                        can help e. &nbsp;If I want the selection to redraw
                        what's the minimum action necessary. &nbsp;This is as
                        part of a loop that looks like</div>
                      <div><br>
                      </div>
                      <div>
                        <div><span style="white-space:pre-wrap"> </span>[self

                          selectedContext == context</div>
                        <div><span style="white-space:pre-wrap"> </span>
                          and: [(value := receiver with: context
                          executeMethod: method) == false]] whileTrue:</div>
                        <div><span style="white-space:pre-wrap"> </span>[self

                          doStep].</div>
                      </div>
                      <div><br>
                      </div>
                      <div>i.e. after the doStep I'd like to force the
                        code pane to update its selection.</div>
                      <div><br>
                      </div>
                      <div>AdvThanksance</div>
                      -- <br>
                      best,
                      <div>Eliot</div>
                      <br>
                    </div>
                    <br>
                    <fieldset></fieldset>
                    <br>
                  </blockquote>
                  <br>
                </div>
              </div>
            </div>
            <br>
            <br>
            <br>
          </blockquote>
        </div>
        <br>
        <br clear="all">
        <div><br>
        </div>
        -- <br>
        best,
        <div>Eliot</div>
        <br>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">
</pre>
    </blockquote>
    <br>
  </body>
</html>