I'm bringing the APR (Apache Portable Runtime) up for consideration as
the implementation of lib/System again. For those not familiar with it,
APR is the portability library used by the Apache Group and others in
open source projects such as HTTPD and Subversion. While its relatively
new, it is quickly gaining mind share and it provides lots of features
and supports numerous platforms today. For more details you can check
Our use of APR would be limited to the lib/System library. That is, we
would provide very thin C++ veneers on top of APR's C interface that
match the current lib/System and lib/Support APIs.
Since an APR implementation would get lib/System "done" on all our
platforms much faster than the current approach, I'd like to know if
anyone has any objections. Briefly, here's the upside/downside:
* Get lib/System implemented on all platforms faster
* Avoid maintaining complicated platform independence code (the
gust of lib/System) so that our attention is not diverted from
compiler tool building.
* Faster bug fixing in this area because other developers are
working on it.
* Faster support for new platforms because other developers are
working on it.
* Makes LLVM dependent on a third party library
* Makes LLVM platform support dependent on
* Error handling in APR is somewhat strange and it could be quite
difficult for us to continue to meet the "throw std::string"
approach we have today.
Silence on this issue will be taken as tacit approval. If you have any
objections/thoughts/questions, please post them so we can discuss.