<div dir="ltr">I was thinking about my last suggestion of the previous mail... I think we should look for a way to "simulate" Morph from Morph, for example using the simulation code that the debugger uses and run that simulation in a "controlled" fashion, a "morph simulation sandbox" or something like that. Then when an error occurs we can debug it with the normal debugger... <div>Not sure how much would it take to try something like this, I remember Juan that you removed the code that allowed more than one world at the same time... anyway, just an idea.</div><div><br></div><div>Cheers!</div><div>Hernan.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Feb 8, 2022 at 6:37 PM Juan Vuletich <<a href="mailto:JuanVuletich@zoho.com">JuanVuletich@zoho.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><u></u>

  
    
  
  <div bgcolor="#ffffff">
    Maybe for some cases, we could improve the situation. At least,
    errors in #drawOn: should never crash the image. Not sure for other
    methods, though. If you post a UserChanges file that results in this
    behavior, I'll try to take a look.<br>
    <br>
    Cheers,<br>
    <br>
    On 08/02/2022 02:55 p.m., Hernan Wilkinson via Cuis-dev wrote:
    <blockquote type="cite">
      <div dir="ltr">Juan is the best one to answer this question (he's
        on vacation for a couple of weeks).
        <div>It is not easy to debug Morph because of the
          meta-circularity of it that you already know...</div>
        <div>I know that Juan uses the logs that are saved when an error
          occurs (that is disabled in CuisUniversity just in case you
          are using it, there is a preference to enable it).</div>
        <div>It would be great to find a way to break the circularity
          when doing this kind of thing. For example, if you want to
          make changes in the debugger, the best way to do it is to
          subclass it, work in the subclass so if an error occurs the
          original debugger appears, and when finish push up the changes
          to the debugger class, but I do not see how to do something
          similar in Morph... maybe creating a new world with a
          different hierarchy of morphs that are the one you are working
          on?... or try to use a "stack of the morph framework" in the
          same way some people work with a stack of compiler when
          working with meta-circular languages?... </div>
        <div>I'm sorry I can not provide concrete solutions but just
          some ideas...</div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Tue, Feb 8, 2022 at 1:43 PM
          Nicolás Papagna Maldonado via Cuis-dev <<a href="mailto:cuis-dev@lists.cuis.st" target="_blank">cuis-dev@lists.cuis.st</a>>
          wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
          <div dir="ltr">Aloha folks!
            <div><br>
            </div>
            <div>From time to time It happens to me that, for some
              reason (an Exception I believe), when I open a Morph I'm
              developing the image freezes.</div>
            <div>The cursor usually alternates between the pointer and
              the clock and stays stuck there.</div>
            <div><br>
            </div>
            <div>Cmd + . usually does not help, and I end up killing the
              VM from the command line/activity monitor.</div>
            <div><br>
            </div>
            <div>When I reopen the image, I get to restore the changes,
              and by looking at what was not "committed" I can tell if
              there is something wrong (but I have to "execute it in my
              head").</div>
            <div><br>
            </div>
            <div>Is there a better way to debug this kind of situation?</div>
            <div>I found that putting a halt on a method usually leads
              to the same situation.</div>
            <div>
              <div><br>
              </div>
              Best,</div>
            <div>Nico PM</div>
          </div>
          -- <br>
          Cuis-dev mailing list<br>
          <a href="mailto:Cuis-dev@lists.cuis.st" target="_blank">Cuis-dev@lists.cuis.st</a><br>
          <a href="https://lists.cuis.st/mailman/listinfo/cuis-dev" rel="noreferrer" target="_blank">https://lists.cuis.st/mailman/listinfo/cuis-dev</a><br>
        </blockquote>
      </div>
      <br clear="all">
      <div><br>
      </div>
      -- <br>
      <div dir="ltr">
        <div dir="ltr"><span style="font-size:xx-small;border-collapse:collapse">
            <div style="font-size:small"><a href="https://10pines.com/" style="font-family:Roboto,Helvetica,Arial,sans-serif;font-size:medium" target="_blank"><img src="https://10pines.github.io/email-signature/10pines-firma@2x.png" style="margin-bottom: 0.5em;" width="108"></a><span style="color:rgb(0,0,0);font-family:Roboto,Helvetica,Arial,sans-serif;font-size:medium"></span>
              <h1 style="margin:0px;font-size:14px">Hernán Wilkinson</h1>
              <h2 style="margin:0px 0px 1em;font-size:14px;color:rgb(100,100,100)">Software Developer & Coach</h2>
              <p style="margin:0px;color:rgb(100,100,100);font-size:12px">Alem 896, Floor 6, Buenos Aires,
                Argentina</p>
              <p style="margin:0px;color:rgb(100,100,100);font-size:12px">+54 11 6091 3125</p>
              <p style="margin:0px;color:rgb(100,100,100);font-size:12px">@HernanWilkinson</p>
            </div>
          </span></div>
      </div>
    </blockquote>
    <br>
    <br>
    <pre cols="72">-- 
Juan Vuletich
<a href="http://www.cuis-smalltalk.org" target="_blank">www.cuis-smalltalk.org</a>
<a href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev" target="_blank">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a>
<a href="https://github.com/jvuletich" target="_blank">https://github.com/jvuletich</a>
<a href="https://www.linkedin.com/in/juan-vuletich-75611b3" target="_blank">https://www.linkedin.com/in/juan-vuletich-75611b3</a>
<a href="https://independent.academia.edu/JuanVuletich" target="_blank">https://independent.academia.edu/JuanVuletich</a>
<a href="https://www.researchgate.net/profile/Juan-Vuletich" target="_blank">https://www.researchgate.net/profile/Juan-Vuletich</a>
<a href="https://patents.justia.com/inventor/juan-manuel-vuletich" target="_blank">https://patents.justia.com/inventor/juan-manuel-vuletich</a>
@JuanVuletich</pre>
  </div>

</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><span style="font-size:xx-small;border-collapse:collapse"><div style="font-size:small"><a href="https://10pines.com/" style="font-family:Roboto,Helvetica,Arial,sans-serif;font-size:medium" target="_blank"><img width="108" src="https://10pines.github.io/email-signature/10pines-firma@2x.png" style="margin-bottom: 0.5em;"></a><span style="color:rgb(0,0,0);font-family:Roboto,Helvetica,Arial,sans-serif;font-size:medium"></span><h1 style="margin:0px;font-size:14px">Hernán Wilkinson</h1><h2 style="margin:0px 0px 1em;font-size:14px;color:rgb(100,100,100)">Software Developer & Coach</h2><p style="margin:0px;color:rgb(100,100,100);font-size:12px">Alem 896, Floor 6, Buenos Aires, Argentina</p><p style="margin:0px;color:rgb(100,100,100);font-size:12px">+54 11 6091 3125</p><p style="margin:0px;color:rgb(100,100,100);font-size:12px">@HernanWilkinson</p></div></span></div></div>