<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">On 7/11/20 1:50 AM, Chris Lattner
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:40F8ED27-06A6-4E4C-BB68-EE0D644097C1@nondot.org">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      On Jul 10, 2020, at 2:58 PM, Richard Smith via cfe-dev <<a
        href="mailto:cfe-dev@lists.llvm.org" class=""
        moz-do-not-send="true">cfe-dev@lists.llvm.org</a>> wrote:<br
        class="">
      <div>
        <blockquote type="cite" class="">
          <div class="">
            <div dir="ltr" class="">
              <div class="gmail_quote">
                <div class=""><br class="">
                </div>
                <div class="">One other thing I think we should
                  consider: there will be substantial overlap between
                  the incremental compilation, code generation, REPL,
                  etc. of cling and that of lldb. For the initial
                  integration of cling into LLVM, there's probably not
                  much we can do about that, but it would seem
                  beneficial for both cling and lldb if common parts
                  could be shared where possible. As an extreme example,
                  if we could fully unify the projects to the point
                  where a user could switch into an 'lldb mode' in the
                  middle of a cling session to do step-by-step debugging
                  of code entered into the REPL, that would seem like an
                  incredibly useful feature. Perhaps there's some common
                  set of base functionality that can be factored out of
                  lldb and cling and unified. It would likely be a good
                  idea to start talking to the lldb folks about that
                  early, in case it guides your work porting cling to
                  trunk.</div>
              </div>
            </div>
          </div>
        </blockquote>
        <br class="">
      </div>
      <div>This is a really good point.  I’m not sure how much awareness
        there is on this list, but the Swift REPL is worth looking at if
        you haven’t seen it.  It is built on/in LLDB, and provides some
        really nice user experience features.</div>
      <div><br class="">
      </div>
      <div>For example, if you evaluate an expression that crashes, you
        get a full backtrace and integrated debugger experience.  There
        are a couple of examples on this page, and more detailed info
        online:</div>
      <div><a href="https://swift.org/lldb/" class=""
          moz-do-not-send="true">https://swift.org/lldb/</a></div>
    </blockquote>
    <p><br>
    </p>
    <p>  Thanks Chris! The <a moz-do-not-send="true"
        href="https://reviews.llvm.org/D34444#793311">comments</a>
      coming from John McCall allude to this that we need some broader
      discussion on how we do things for incremental compilation. I
      still have not forgotten that I need to get back to him with that
      ;)</p>
    <p>  That's one of the challenges I see. Currently upstreaming our
      patches did not have enough context. Now I hope that we can start
      with something minimal (and likely wrong) but we will have a
      common tool in the context of which we can discuss how to make
      things better. Putting swift-repl folks, lldb folks and cling
      folks in one virtual room may be helpful.<br>
    </p>
    <p><br>
    </p>
    <blockquote type="cite"
      cite="mid:40F8ED27-06A6-4E4C-BB68-EE0D644097C1@nondot.org">
      <div><br class="">
      </div>
      <div>-Chris</div>
      <br class="">
    </blockquote>
    <p><br>
    </p>
  </body>
</html>