[LLVMdev] [RFC] Developer Policy for LLVM C API
Philip Reames
listmail at philipreames.com
Thu Jul 30 15:35:55 PDT 2015
It's sounds like we've reached two rough conclusions:
1) We need both a stable and a non-stable fully featured C API. It's a
somewhat open question whether both or either should be part of the main
tree.
2) Everyone seemed okay with the proposed deprecation policy for the
stable API.
Given this, I would propose we designate the existing C API as the
"hopefully stable, but subject to future clean up per policy..." Update
the documentation to note that LLVM does not currently have a fully
featured C API. Update the docs to reflect the deprecation policy for
the existing C API.
We can then start discussing how we should create the fully featured
API. I'd lean towards a tool like Swig, but we could also do it purely
on demand. For example, I could add some shims for the experimental GC
support without committing to supporting the current APIs long term.
Philip
On 07/30/2015 01:47 PM, Reid Kleckner wrote:
> On Thu, Jul 30, 2015 at 1:04 PM, Eric Christopher <echristo at gmail.com
> <mailto:echristo at gmail.com>> wrote:
>
> I think the idea of having a (hopefully not too) fluid C API that
> can encompass everything people want to be able to do in the
> language of their choice and calls into LLVM to do work sounds
> like a great idea. I think it would be useful to expand the number
> of people who are able to do research and development with LLVM
> without having to reinvent LLVM. That said, this is directly at
> odds with our desire to have a stable C API that can be supported
> long term (as you said at the end of the email). I.e. where do we
> draw the line on what can or should be added to the C API? What if
> the people that want the functionality are willing to deal with it
> being (occasionally) unstable?
>
>
> Yeah, splitting the concerns of API completeness and API stability
> seems like a good idea. Right now we have clients like llgo that want
> to generate new debug info, and are perfectly happy to keep up to date
> with changes. They need a complete API, not a stable API, and our
> insistence on a stable C API has actually gotten in the way here.
>
> I don't agree with you that no one will take the time to design a
> well thought out C API. We've managed to get a lot of real world
> experience lately at both how these things will be used, and how
> we'll maintain such a thing. I think Juergen and others are a good
> group to come up with an answer to our engineering challenge.
>
>
> Sure, if people are planning to design a stable API that leave LLVM
> with more flexibility, then I'm all in favor of switching over to it.
> So far I haven't heard any new suggestions. I think any such design
> would probably be write-only, and revolve around sharing the bitcode
> auto-upgrade logic.
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150730/d7b08975/attachment.html>
More information about the llvm-dev
mailing list