[LLVMdev] To APR Or Not To APR. That is the question.

John Criswell criswell at cs.uiuc.edu
Mon Sep 13 09:08:15 PDT 2004


Reid Spencer wrote:
> John,
> 
> If we were to do this, I don't think that adding it to the LLVM source
> base is the right way to go. We would simply use "configure" to find the
> library and header files. The moment we put APR into our source base, it
> would be out of date. Keeping it up to date would not be fun for anyone
> and there's no reason for us to do that.  Furthermore, this approach
> completely avoids any licensing issues. We wouldn't distribute APR, just
> use it (even though Apache's license is relatively tame).
> 
> As for other libraries, there is boost (which we've already excised),
> and ACE (which is huge and heavy weight). APR is the rising star in this
> area.

Okay.

We excised boost because we were only using a small subset of it that we 
could have written ourselves.  If boost as a whole does what we need, I 
think it could become an option again (although, IIRC, boost does not 
have uniform copyrights like Apache does, we was giving me a headache, 
so that might be an issue).

Were there any other reasons to not consider boost?  I'm not suggesting 
we use it; I'm just curious.

> 
> I think Chris had the right idea: make APR "one" of the possible
> implementations. That is, make it possible for the user to configure
> LLVM so that it thinks the operating system its building for is "APR".
> All we have to do is create an APR directory in lib/System and the
> necessary functions in configure.ac to allow it to be specified as the
> host operating system. I think I might do this regardless of what the
> decision on this issue is because it would at least give new platforms a
> shot at having LLVM work.

I think this approach would be good for transitioning over to APR.

However, I don't really like the idea of having two facilities in LLVM 
to do the same thing (namely, platform abstraction).  If APR lives up to 
its goal, then we should eventually be able to use it as *the* platform 
abstraction library, in which case, I think it should go into the source 
tree so that people don't have to install it in order to install LLVM.

I think trying out APR as you and Chris have suggested above would be a 
good way to see whether or not it will really work without committing 
completely to it.  When we know it will work, we can discuss whether it 
should go into the source tree or not.  Cross that bridge when we get to 
it sort of a thing.

-- John T.

> 
> Reid.
> 
> On Mon, 2004-09-13 at 08:18, John Criswell wrote:
> 
>>Dear All,
>>
>>Time to add my two cents:
>>
>>I think incorporating something like APR into the LLVM tree is fine, 
>>given that it works, its licensing doesn't interefere with our licensing 
>>(and doesn't give me a headache), and we can merge it into the LLVM 
>>source base relatively seamlessly (i.e. users don't need to install it 
>>before building LLVM and APR plays nice with our build system).
>>
>>I think building our own lib/System is going to be a bit of a time sink, 
>>especially with our limited access to other platforms.  And adding third 
>>party libraries is okay as long as the user doesn't have to install 
>>extra stuff to use LLVM.
>>
>>The licensing, I think, will be okay.  The remainder of the problem lies 
>>with how well APR works and how well it will integrate with our build 
>>system.  For that, I think we'll simply have to try it out and see if it 
>>works.
>>
>>Are there any other libraries available that will do the things we need 
>>to do?  It strikes me that we haven't enumerated what we need and what 
>>our options are.
>>
>>If we go ahead and do incorporate APR, I would recommend the following:
>>
>>a) Keep APR as a separate library and write lib/System as a wrapper 
>>around it.
>>
>>b) Maintain a vendor branch for APR so that changes from the Apache 
>>Foundation are more easily merged into the tree (the CVS docs describe 
>>how to do this in the "Tracking Third Party Sources" section).
>>
>>-- John T
> 
> .
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev


-- 
*********************************************************************
* John T. Criswell                         Email: criswell at uiuc.edu *
* Research Programmer                                               *
* University of Illinois at Urbana-Champaign                        *
*                                                                   *
* "It's today!" said Piglet. "My favorite day," said Pooh.          *
*********************************************************************





More information about the llvm-dev mailing list