[llvm-dev] [LLVMdev] [RFC] Developer Policy for LLVM C API

Reid Kleckner via llvm-dev llvm-dev at lists.llvm.org
Mon Aug 17 08:34:47 PDT 2015

On Sun, Aug 16, 2015 at 10:34 PM, deadal nix via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> 2015-08-16 21:51 GMT-07:00 Eric Christopher <echristo at gmail.com>:
>> The promise of stability. We don't promise that the C++ API will stay
>> stable.
> Why was that promise be made in the first place ? Has it been made in the
> first place ?

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. :)

There are really three goals here: flexibility to change LLVM IR,
completeness of the C API, and stability of the C API. Pick two.

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.

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.

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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150817/3c3a7f1f/attachment.html>

More information about the llvm-dev mailing list