[LLVMdev] [RFC] Developer Policy for LLVM C API

Philip Reames listmail at philipreames.com
Fri Jul 17 16:16:17 PDT 2015



On 07/17/2015 03:35 PM, Eric Christopher wrote:
>
>
> On Fri, Jul 17, 2015 at 3:33 PM Philip Reames 
> <listmail at philipreames.com <mailto:listmail at philipreames.com>> wrote:
>
>
>
>     On 07/17/2015 12:36 PM, Juergen Ributzka wrote:
>     > Hi @ll,
>     >
>     > a few of us had recently a discussion about how to manage the C
>     API and possible policies regarding addition, maintenance,
>     deprecation, and removal of API.
>     >
>     > Even thought there is a strong agreement in the community that
>     we shouldn't break released C API and should be backwards
>     compatible, there doesn’t seem to be a developer policy that backs
>     that up. This is something we should fix.
>     +1
>     >
>     > I was wondering what the interested parties think of the current
>     approach and what could/should we improve to make the use and
>     maintenance of the C API easier for users and the developers alike.
>     >
>     > I was hoping we could also introduce a process that allows the
>     removal of an API after it has been deprecated for a whole release
>     and the release notes stated that it will be removed.
>     +1
>
>     I'd suggest we also have an officially unofficial policy about not
>     versioning just for style or cleanliness reasons.  i.e. We should
>     try to
>     minimize churn of the API unless it's actually needed, or
>     supporting an
>     old API becomes unjustifiably complicated.
>
>
> Could you explain what you mean here? As far as I can tell this is "I 
> don't want versioning unless I want versioning and then I'll want it 
> because it's convenient for me"
What I was trying to get at is that we should aim to not change the API 
unless it's actually *needed*.  Just because we have a versioning 
mechanism doesn't mean we should freely make use of it. Some examples:
- Renaming a method in the API - bad
- Dropping a method involving functionality no longer supported - good

We tend to be much more free with the C++ APIs (with good cause).  I 
don't want to see this applied to the C API.  We should still seek to 
keep a stable API even if we do have a formal mechanism for revising it.

p.s. If that sounds obvious, you've read it right.  :)  This wasn't 
intended to be controversial, just to cement in writing the attitude 
we've already taken.

p.p.s. The preceding would only apply to the "stable" parts of the API.

Philip

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150717/4ee6ea14/attachment.html>


More information about the llvm-dev mailing list