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

Ed Cogburn edcogburn at hotpop.com
Sun Sep 12 21:56:44 PDT 2004


Hi everyone,

On Sunday 12 September 2004 08:03 pm, Chris Lattner wrote:
>
> I think that all of the major platforms should be natively supported by
> lib/System. 


They would, through the APR.

Its not a major issue to me (and I'm a nobody here anyway), but I don't 
understand why you would insist on this software independence *now*, when 
LLVM is at a very early, and still largely unknown, stage.

Note: I don't know anything about APR, so I'm not specifically endorsing it, 
just responding to the general idea that LLVM should be kept independent of 
everything.

Note about Note: I would prefer you try to cover your dependencies using other 
C++ libs first (for no particular reason other than I'm biased towards C++), 
for example, boost probably has some things that we could use instead of APR 
(boost-filesystem, boost-signals, boost-threads), but of course, APR may have 
things you can't find anywhere else.  In any event, what follows isn't 
specific to any particular lib.

Use [insert-lib-here] to get up and running quickly on multiple platforms, and 
if the dependence issue becomes a problem later when LLVM becomes more 
popular, then come back and replace the [insert-lib-here]'s code.  The point 
is to get LLVM up and running *now*, and get it out in the world so it'll 
start gathering mindshare, and more developers.

Looking at Ocaml as an example, which is *roughly* equivalent to what LLVM is 
doing (bytecode compiler, native code compiler, virtual machine), except they 
built it for a specific language, they have numerous dependencies on other 
libs (curses, dbm, tcl, tk, etc).

Python is also similar, and its base has dependencies on 6 other libs besides 
glibc, and that doesn't even count the add-on python modules (and what they 
depend on).

If you want LLVM to become widespread and useful, you *will* end up either 
depending on other libraries or spending a lot of time reinventing the wheel.  
Your choice. :)

FWIW,
Ed




More information about the llvm-dev mailing list