<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>On 5/17/19 9:46 PM, Christian Schafmeister wrote:<br>
    </p>
    <blockquote type="cite"
cite="mid:CABk4j8fxhXx9EV5BPdGJxSHikHM8tEbTET6q_ws6zLEyzzwy+A@mail.gmail.com">
      <div>Recently, I switched over to using the new API - works
        great!  <br>
      </div>
    </blockquote>
    FYI the Orc v2 JIT is here:<br>
<a class="moz-txt-link-freetext" href="https://github.com/clasp-developers/clasp/commit/f66d7260#diff-6a3b65e229a66395da951fc9ee989ef0R4269">https://github.com/clasp-developers/clasp/commit/f66d7260#diff-6a3b65e229a66395da951fc9ee989ef0R4269</a><br>
    <br>
    <blockquote type="cite"
cite="mid:CABk4j8fxhXx9EV5BPdGJxSHikHM8tEbTET6q_ws6zLEyzzwy+A@mail.gmail.com">
      <div dir="ltr">
        <div>I'm excited to hear that there is a fix for lldb debugging
          of jitted code coming (thanks Stefan!).</div>
      </div>
    </blockquote>
    <p>Well, it's a start. (One can always fall back to GDB :b)<br>
      Updated the bug report, with a shot summary of what has been done
      and what is necessary next:
      <a class="moz-txt-link-freetext" href="https://bugs.llvm.org/show_bug.cgi?id=36209#c2">https://bugs.llvm.org/show_bug.cgi?id=36209#c2</a><br>
      <br>
      <br>
      On 5/17/19 9:46 PM, Christian Schafmeister wrote:<br>
    </p>
    <blockquote type="cite"
cite="mid:CABk4j8fxhXx9EV5BPdGJxSHikHM8tEbTET6q_ws6zLEyzzwy+A@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">I thought I would add a data point.
        <div><br>
        </div>
        <div>I implemented the Orc v1 API in Clasp - an implementation
          of Common Lisp that uses llvm as the backend. </div>
        <div>Recently, I switched over to using the new API - works
          great!  I'm very excited about the work Lang has been doing
          and I'm excited to hear that there is a fix for lldb debugging
          of jitted code coming (thanks Stefan!).</div>
        <div><br>
        </div>
        <div>Orc v1 API Clasp:  (<a
            href="https://github.com/clasp-developers/clasp/tree/dev"
            moz-do-not-send="true">https://github.com/clasp-developers/clasp/tree/dev</a>) </div>
        <div>New Orc API Clasp:  (<a
            href="https://github.com/clasp-developers/clasp/tree/dev-llvmtot"
            moz-do-not-send="true">https://github.com/clasp-developers/clasp/tree/dev-llvmtot</a>)</div>
        <div><br>
        </div>
        <div>It's a bit weird because Clasp is self-hosting and I expose
          the llvm API's to Common Lisp and I use the llvm API's in a
          combination of C++ code and Common Lisp code.</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div><br>
        </div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Fri, May 17, 2019 at 3:35
          PM Stefan Gränitz <<a
            href="mailto:stefan.graenitz@gmail.com"
            moz-do-not-send="true">stefan.graenitz@gmail.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">
          <div bgcolor="#FFFFFF"> I agree, the deprecation of Orc v1
            should come with more guidance and preparation than
            currently available. I don't think you are missing any
            channel. The main sources of information are code and
            reviews. I gathered some data on typical lines of
            argumentation below. Maybe it makes sense to have look at
            them in isolation.<br>
            <br>
            TL;DR: While I do have a number of proposals for the points
            in the end, I would first like to hear your opinions.<br>
            <br>
            (1) MCJIT can be considered mature and stable, while Orc is
            experimental:<br>
            * Orc is in trunk for more than 4 years now [1]<br>
            * tutorials moved to Orc with Release 3.8 (3 years ago) [2]<br>
            * "ORC should be preferred for new projects" made it to the
            official release notes only now, with 8.0<br>
            * it's a common statement on the list since many years [3]<br>
            <br>
            (2) The LLVM test suite has various use-cases for lli, so
            the JIT gets exercised well. Grepping through lit tests on
            master today gives me:<br>
            * 202 matches for lli in total (regex: RUN.*[% ]lli)<br>
            * 80 matches for lli using Orc v1 (regex: RUN.*[%
            ]lli.*jit-kind=orc-mcjit)<br>
            * 17 matches for lli using Orc v2 (regex: RUN.*[%
            ]lli.*jit-kind=orc-lazy)<br>
            <br>
            (3) There are few active stakeholders in LLVM JIT
            development:<br>
            * ExecutionEngine saw about 250 commits in total during the
            last year (looking at: llvm/include/llvm/ExecutionEngine
            && llvm/lib/ExecutionEngine)<br>
            * 192 of these are from Lang, most of the remaining one's
            are either not touching the JIT or NFC<br>
            * I just submitted a fix for JITed code debugging in LLDB,
            which was broken since Release 5.0 [4]<br>
            <br>
            Conclusions?<br>
            * All newcomers go with Orc, because the tutorial uses it
            and the list recommends it.<br>
            * Some newcomers became clients. Their projects got mature
            and they ask for a more stable API.<br>
            * We saw drastic API changes in Orc with past releases.
            Upcoming releases should account for the rate of adoption
            more and more.<br>
            * Most clients stay clients. Certainly, there are many
            reasons for that. Anyway, we need more active participation.<br>
            <br>
            It's time to:<br>
            * Switch lli's default to Orc to increase visibility and
            test coverage. Of course, MCJIT-specific tests should pass
            -jit-kind=mcjit.<br>
            * Agree on a way forward, at least for the current release,
            so we can carve out small/simple tasks and distribute the
            work in the community. If the removal of Orc v1 is part of
            the plan, we should start convergence soon.<br>
            * Communicate/discuss the current state (haves and wants)
            regularly and transparently.<br>
            * Get more people to participate actively.<br>
            <br>
            <br>
            [1] <a
              class="gmail-m_3365745578504649023moz-txt-link-freetext"
              href="https://github.com/llvm/llvm-project/commit/93de2a12"
              target="_blank" moz-do-not-send="true">https://github.com/llvm/llvm-project/commit/93de2a12</a><br>
            [2]
            <a class="gmail-m_3365745578504649023moz-txt-link-freetext"
href="http://releases.llvm.org/3.8.0/docs/ReleaseNotes.html#non-comprehensive-list-of-changes-in-this-release"
              target="_blank" moz-do-not-send="true">http://releases.llvm.org/3.8.0/docs/ReleaseNotes.html#non-comprehensive-list-of-changes-in-this-release</a><br>
            [3] <a
              class="gmail-m_3365745578504649023moz-txt-link-freetext"
              href="http://lists.llvm.org/pipermail/llvm-dev/2016-March/097767.html"
              target="_blank" moz-do-not-send="true">http://lists.llvm.org/pipermail/llvm-dev/2016-March/097767.html</a><br>
            [4] <a
              class="gmail-m_3365745578504649023moz-txt-link-freetext"
              href="https://reviews.llvm.org/D61611" target="_blank"
              moz-do-not-send="true">https://reviews.llvm.org/D61611</a><br>
            <br>
            <div class="gmail-m_3365745578504649023moz-cite-prefix">On
              5/13/19 10:22 AM, Alex Denisov via llvm-dev wrote:<br>
            </div>
            <blockquote type="cite">
              <pre class="gmail-m_3365745578504649023moz-quote-pre">Hi folks,

Rather by accident than on purpose I looked at the release notes and found the following:
<a class="gmail-m_3365745578504649023moz-txt-link-freetext" href="http://releases.llvm.org/8.0.0/docs/ReleaseNotes.html#changes-to-the-jit-apis" target="_blank" moz-do-not-send="true">http://releases.llvm.org/8.0.0/docs/ReleaseNotes.html#changes-to-the-jit-apis</a>

TL;DR: Orc v1 is deprecated and will be removed in the next release.

I have several questions in this regard:

1. Is there a migration guide I can use to update my code to the new version?
2. Is there any development plan for this part of LLVM? So far I have feeling that it's a closed source development.
3. Is there some communication channels I am missing to follow? I follow dev&commits mailing lists and present on IRC once in a while, but I somehow missed the message about the Orc v1 removal.

Also, the release notes mention that Orc v2 is the recommended way for the new projects, but:

1. Is there a documentation?
2. How stable the APIs are?

Thank you,
Alex.

</pre>
              <br>
              <fieldset
                class="gmail-m_3365745578504649023mimeAttachmentHeader"></fieldset>
              <pre class="gmail-m_3365745578504649023moz-quote-pre">_______________________________________________
LLVM Developers mailing list
<a class="gmail-m_3365745578504649023moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org" target="_blank" moz-do-not-send="true">llvm-dev@lists.llvm.org</a>
<a class="gmail-m_3365745578504649023moz-txt-link-freetext" href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" target="_blank" moz-do-not-send="true">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a>
</pre>
            </blockquote>
            <pre class="gmail-m_3365745578504649023moz-signature" cols="72">-- 
<a class="gmail-m_3365745578504649023moz-txt-link-freetext" href="https://flowcrypt.com/pub/stefan.graenitz@gmail.com" target="_blank" moz-do-not-send="true">https://flowcrypt.com/pub/stefan.graenitz@gmail.com</a></pre>
          </div>
        </blockquote>
      </div>
      <br clear="all">
      <div><br>
      </div>
      -- <br>
      <div dir="ltr" class="gmail_signature">
        <div dir="ltr">
          <div style="font-size:small">Christian Schafmeister</div>
          <div style="font-size:small">Professor, Chemistry Department</div>
          <div style="font-size:small">Temple University</div>
        </div>
      </div>
    </blockquote>
    <pre class="moz-signature" cols="72">-- 
<a class="moz-txt-link-freetext" href="https://flowcrypt.com/pub/stefan.graenitz@gmail.com">https://flowcrypt.com/pub/stefan.graenitz@gmail.com</a></pre>
  </body>
</html>