<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <blockquote type="cite">
      <div>An interesting follow up question would be what form people
        would like to see the ORCv2 C APIs take.</div>
      <div><br>
      </div>
      <div>The minimalist path would be to just expose LLJIT/LLazyJIT’s
        functionality via a C API.</div>
      <div><br>
      </div>
      <div>The maximalist path would be to expose the raw ORCv2
        interfaces (things like MaterializationUnit, ObjectLayer,
        IRLayer, etc.) so that C API users can potentially inject their
        own layer/mat-unit implementations into stacks along with
        existing layers. </div>
      <div><br>
      </div>
      <div>I would lean towards the former. If we could pin down a nice
        remote-process model for LLJIT/LLLazyJIT the resulting C
        interface could give us the feature-set promised by
        ExecutionEngine’s interface (a feature-set that no actual
        implementation has ever provided), plus concurrency.</div>
    </blockquote>
    Good point. I'd like to see the C bindings as "LTS" version of the
    LLVM API. Indeed ORCv2 got more and more stable, but I wouldn't say
    it reached the point, where its details should be nailed down to an
    API that aims for long-term support. It would likely either break or
    complicate upcoming changes. The former is more likely to remain
    stable over the next couple of releases, so I'd vote for it too.<br>
    <br>
    Maybe the decision made, should be revisited from time to time.<br>
    <br>
    <div class="moz-cite-prefix">On 12/07/2019 03:07, Lang Hames wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:42C4E281-3AB6-4966-89FD-B666DBDFE38F@gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      Hi Stefan,
      <div><br>
      </div>
      <div>
        <blockquote type="cite">
          <div dir="ltr">
            <p><font color="#000000"><span style="caret-color: rgb(0, 0,
                  0); background-color: rgba(255, 255, 255, 0);">Maybe
                  this is worth a discussion, as I have seen people
                  confused (and I am not up-to-date either):<br>
                  * Are the C-bindings meant to be functional for OrcV1
                  and OrcV2?<br>
                  * Do they provide full or partial functionality? <br>
                  * Which parts work, which don't?</span></font></p>
          </div>
        </blockquote>
        Good questions!</div>
      <div><br>
      </div>
      <div>The C-bindings are backed by ORCv1. I expect them to change,
        if not receive a full re-write, when ORCv1 is deprecated.</div>
      <div><br>
      </div>
      <div>The C APIs for ORCv1 could only ever provide partial
        functionality, given how pervasive template usage was in ORCv1.</div>
      <div><br>
      </div>
      <div>The parts that are used by the ORCCBindings unit test
        definitely work. For everything else... your mileage may vary.</div>
      <div><br>
      </div>
      <div>An interesting follow up question would be what form people
        would like to see the ORCv2 C APIs take.</div>
      <div><br>
      </div>
      <div>The minimalist path would be to just expose LLJIT/LLazyJIT’s
        functionality via a C API.</div>
      <div><br>
      </div>
      <div>The maximalist path would be to expose the raw ORCv2
        interfaces (things like MaterializationUnit, ObjectLayer,
        IRLayer, etc.) so that C API users can potentially inject their
        own layer/mat-unit implementations into stacks along with
        existing layers. </div>
      <div><br>
      </div>
      <div>I would lean towards the former. If we could pin down a nice
        remote-process model for LLJIT/LLLazyJIT the resulting C
        interface could give us the feature-set promised by
        ExecutionEngine’s interface (a feature-set that no actual
        implementation has ever provided), plus concurrency.</div>
      <div><br>
      </div>
      <div>What do others think?</div>
      <div><br>
      </div>
      <div>— Lang.</div>
      <div><br>
      </div>
      <div>
        <div id="AppleMailSignature" dir="ltr">Sent from my iPad</div>
        <div dir="ltr"><br>
          On May 23, 2019, at 11:42 AM, Stefan Gränitz <<a
            href="mailto:stefan.graenitz@gmail.com"
            moz-do-not-send="true">stefan.graenitz@gmail.com</a>>
          wrote:<br>
          <br>
        </div>
        <blockquote type="cite">
          <div dir="ltr">
            <meta http-equiv="Content-Type" content="text/html;
              charset=UTF-8">
            Thanks for your attention! We found 7 outdated issues and
            reviewed 8 more that now describe a way forward.<br>
            This was a good step towards overview :)<br>
            <br>
            The remaining long-standing reports gather around 2
            hotspots:<br>
            <br>
            Missing functionality and workarounds on Windows: <a
              href="http://llvm.org/PR25493" moz-do-not-send="true">llvm.org/PR25493</a>,
            <a href="http://llvm.org/PR41595" moz-do-not-send="true">llvm.org/PR41595</a><br>
            In my experience the Windows incompatibilities are hard to
            tackle. I am not surprised having a number of permanent
            tickets there. <br>
            <br>
            C-API bindings: <a href="http://llvm.org/PR31101"
              moz-do-not-send="true">llvm.org/PR31101</a>, <a
              href="http://llvm.org/PR31103" moz-do-not-send="true">llvm.org/PR31103</a>,
            <a href="http://llvm.org/PR32628" moz-do-not-send="true">llvm.org/PR32628</a>,
            <a href="http://llvm.org/PR36896" moz-do-not-send="true">llvm.org/PR36896</a><br>
            <p>Maybe this is worth a discussion, as I have seen people
              confused (and I am not up-to-date either):<br>
              * Are the C-bindings meant to be functional for OrcV1 and
              OrcV2?<br>
              * Do they provide full or partial functionality? <br>
              * Which parts work, which don't?<br>
              <br>
              Best<br>
              Stefan<br>
              <br>
            </p>
            On 5/18/19 8:02 PM, Praveen Velliengiri wrote:<br>
            <blockquote type="cite"
cite="mid:CAL56b7SMFS8+J8J241Ocp35NzXx+coQ6JjTC2Y5ZiuhG1QNFFA@mail.gmail.com">
              <meta http-equiv="content-type" content="text/html;
                charset=UTF-8">
              <div dir="ltr">
                <div>Hi Stefan <br>
                </div>
                <div>Thank you! <br>
                </div>
                <div>In case, you missed in llvm-dev listing: you can
                  find the proposal here : <a
href="https://docs.google.com/document/d/1202EcXlWMQ8yxu5qD0b5fE0a_kihlcaPNpZo_Jk0YeQ/edit?usp=sharing"
                    moz-do-not-send="true">link. <br>
                  </a></div>
                <div>Thanks for working on summarising the Bugzilla
                  tickets to track the recent changes in ORC this is
                  really helpful.<br>
                </div>
                <div><br>
                </div>
              </div>
              <br>
              <div class="gmail_quote">
                <div dir="ltr" class="gmail_attr">On Sat, 18 May 2019 at
                  21:33, Stefan Gränitz <<a
                    href="mailto:stefan.graenitz@gmail.com"
                    target="_blank" 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">
                    <p>In fact, this is all very good practice in my
                      opinion:<br>
                      <a
class="gmail-m_-3222154318062054342gmail-m_-5733687048271808527moz-txt-link-freetext"
href="https://bugs.llvm.org/show_bug.cgi?id=30896" target="_blank"
                        moz-do-not-send="true">https://bugs.llvm.org/show_bug.cgi?id=30896</a><br>
                      <a
class="gmail-m_-3222154318062054342gmail-m_-5733687048271808527moz-txt-link-freetext"
href="https://bugs.llvm.org/show_bug.cgi?id=22608" target="_blank"
                        moz-do-not-send="true">https://bugs.llvm.org/show_bug.cgi?id=22608</a><br>
                      <a
class="gmail-m_-3222154318062054342gmail-m_-5733687048271808527moz-txt-link-freetext"
href="https://bugs.llvm.org/show_bug.cgi?id=24159" target="_blank"
                        moz-do-not-send="true">https://bugs.llvm.org/show_bug.cgi?id=24159</a><br>
                      <br>
                      Back in 2016 I simply didn't know about the
                      Bugzilla tracker.<br>
                      From today's perspective, I think, we should try
                      and revive this spirit and share rough plans
                      there.<br>
                      <br>
                      @Praveen very good initiative!<br>
                      <a
class="gmail-m_-3222154318062054342gmail-m_-5733687048271808527moz-txt-link-freetext"
href="https://bugs.llvm.org/show_bug.cgi?id=41075" target="_blank"
                        moz-do-not-send="true">https://bugs.llvm.org/show_bug.cgi?id=41075</a><br>
                      <br>
                      @Machiel: This is quite recent, but didn't land
                      after it was accepted. Objections?<br>
                      <a
class="gmail-m_-3222154318062054342gmail-m_-5733687048271808527moz-txt-link-freetext"
                        href="https://reviews.llvm.org/D61599"
                        target="_blank" moz-do-not-send="true">https://reviews.llvm.org/D61599</a><br>
                      <br>
                      Cheers<br>
                    </p>
                    <div
class="gmail-m_-3222154318062054342gmail-m_-5733687048271808527moz-forward-container">--------
                      Forwarded Message --------
                      <table
class="gmail-m_-3222154318062054342gmail-m_-5733687048271808527moz-email-headers-table"
                        cellspacing="0" cellpadding="0" border="0">
                        <tbody>
                          <tr>
                            <th valign="BASELINE" nowrap="nowrap"
                              align="RIGHT">Subject: </th>
                            <td>Bugzilla OrcJIT Tickets</td>
                          </tr>
                          <tr>
                            <th valign="BASELINE" nowrap="nowrap"
                              align="RIGHT">Date: </th>
                            <td>Sat, 18 May 2019 17:47:58 +0200</td>
                          </tr>
                          <tr>
                            <th valign="BASELINE" nowrap="nowrap"
                              align="RIGHT">From: </th>
                            <td>Stefan Gränitz <a
class="gmail-m_-3222154318062054342gmail-m_-5733687048271808527moz-txt-link-rfc2396E"
                                href="mailto:stefan.graenitz@gmail.com"
                                target="_blank" moz-do-not-send="true"><stefan.graenitz@gmail.com></a></td>
                          </tr>
                          <tr>
                            <th valign="BASELINE" nowrap="nowrap"
                              align="RIGHT">To: </th>
                            <td>via llvm-dev <a
class="gmail-m_-3222154318062054342gmail-m_-5733687048271808527moz-txt-link-rfc2396E"
                                href="mailto:llvm-dev@lists.llvm.org"
                                target="_blank" moz-do-not-send="true"><llvm-dev@lists.llvm.org></a></td>
                          </tr>
                        </tbody>
                      </table>
                      <br>
                      <br>
                      Hello everyone<br>
                      <br>
                      A previous thread about OrcJIT brought up bug
                      reports on Bugzilla. A<br>
                      quick search gives 20+ results:<br>
                      <a
class="gmail-m_-3222154318062054342gmail-m_-5733687048271808527moz-txt-link-freetext"
href="https://bugs.llvm.org/buglist.cgi?component=OrcJIT&list_id=162232&query_format=advanced&resolution="
                        target="_blank" moz-do-not-send="true">https://bugs.llvm.org/buglist.cgi?component=OrcJIT&list_id=162232&query_format=advanced&resolution=</a>---<br>
                      <br>
                      While some of them are obviously outdated
                      (addModuleSet API cleanup<br>
                      [1]), others may actually be relevant again (Small
                      code model? [2]). If<br>
                      you reported one of them, please take the time
                      (some day) and review<br>
                      from today's perspective.<br>
                      <br>
                      Are there recommendations regarding Bugzilla
                      reports from other parts of<br>
                      LLVM? Best practices that worked out well?<br>
                      <br>
                      Thanks!<br>
                      Stefan<br>
                      <br>
                      --<br>
                      <br>
                      [1] <a
class="gmail-m_-3222154318062054342gmail-m_-5733687048271808527moz-txt-link-freetext"
href="https://bugs.llvm.org/show_bug.cgi?id=30896" target="_blank"
                        moz-do-not-send="true">https://bugs.llvm.org/show_bug.cgi?id=30896</a><br>
                      [2] <a
class="gmail-m_-3222154318062054342gmail-m_-5733687048271808527moz-txt-link-freetext"
href="https://bugs.llvm.org/show_bug.cgi?id=24159" target="_blank"
                        moz-do-not-send="true">https://bugs.llvm.org/show_bug.cgi?id=24159</a><br>
                      <br>
                      <pre class="gmail-m_-3222154318062054342gmail-m_-5733687048271808527moz-signature">-- 
<a class="gmail-m_-3222154318062054342gmail-m_-5733687048271808527moz-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>
                  </div>
                </blockquote>
              </div>
            </blockquote>
            <pre class="moz-signature" cols="72">-- 
<a class="moz-txt-link-freetext" href="https://flowcrypt.com/pub/stefan.graenitz@gmail.com" moz-do-not-send="true">https://flowcrypt.com/pub/stefan.graenitz@gmail.com</a></pre>
          </div>
        </blockquote>
      </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>