<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 08/17/2015 08:34 AM, Reid Kleckner
      via llvm-dev wrote:<br>
    </div>
    <blockquote
cite="mid:CACs=tyK_m8rviZQu=h1AncQwfxA-tjAckPVM1XVXOR2PLmQOtQ@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">On Sun, Aug 16, 2015 at 10:34 PM,
            deadal nix via llvm-dev <span dir="ltr"><<a
                moz-do-not-send="true"
                href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div dir="ltr">
                <div>
                  <div class="h5">
                    <div class="gmail_extra"><br>
                      <div class="gmail_quote">2015-08-16 21:51
                        GMT-07:00 Eric Christopher <span dir="ltr"><<a
                            moz-do-not-send="true"
                            href="mailto:echristo@gmail.com"
                            target="_blank">echristo@gmail.com</a>></span>:
                        <blockquote class="gmail_quote" style="margin:0
                          0 0 .8ex;border-left:1px #ccc
                          solid;padding-left:1ex">
                          <div dir="ltr">
                            <div class="gmail_quote">
                              <div>The promise of stability. We don't
                                promise that the C++ API will stay
                                stable.</div>
                            </div>
                          </div>
                        </blockquote>
                      </div>
                      <br>
                      <br>
                    </div>
                  </div>
                </div>
                <div class="gmail_extra">Why was that promise be made in
                  the first place ? Has it been made in the first place
                  ?<br>
                </div>
              </div>
            </blockquote>
            <div><br>
            </div>
            <div>It sounds like you're in favor of dropping C API
              stability then, if it's holding us back? That feedback is
              actually really helpful. :)</div>
            <div><br>
            </div>
            <div>There are really three goals here: flexibility to
              change LLVM IR, completeness of the C API, and stability
              of the C API. Pick two.</div>
            <div><br>
            </div>
            <div>The goals are mutually incompatible and we have to
              trade off one for the other. Most of the LLVM core
              developers value goal #1, the ability to change the IR.
              Look at the pointee type changes that David Blaikie is
              working on, and the new EH representation. If we promise
              both stability and completeness, these things are
              impossible.</div>
            <div><br>
            </div>
            <div>One way forward is to guarantee stability, but limit
              completeness. This would mean limiting the C API to
              constructs that will always and forever be easily
              represented in LLVM.</div>
            <div><br>
            </div>
            <div>The other choice is to forget stability and wrap the
              C++ API completely, potentially with something
              auto-generated. We could make a more limited stability
              promise along the lines of "these APIs will be updated to
              reflect changes to the IR, and are otherwise stable." I
              think everyone would be fine with that.</div>
          </div>
        </div>
      </div>
    </blockquote>
    In particular, such an API would be a good start to the "unstable"
    API which has been discussed.  If you wanted to use the opportunity
    to introduce such a thing, I'd be in support.  Put it in a different
    directory for now, but if we decide to merge the current C API into
    the unstable grouping, we'll combine them at some point.  <br>
    <blockquote
cite="mid:CACs=tyK_m8rviZQu=h1AncQwfxA-tjAckPVM1XVXOR2PLmQOtQ@mail.gmail.com"
      type="cite">
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
LLVM Developers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>         <a class="moz-txt-link-freetext" href="http://llvm.cs.uiuc.edu">http://llvm.cs.uiuc.edu</a>
<a class="moz-txt-link-freetext" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>