On Mon, 2006-01-30 at 12:20 -0500, Brian Jones wrote:
> It would be nice, I believe, to re-use libraries that have handled most 
> of the "porting" and "wrapping" for you such as APR 
> (http://apr.apache.org/), or NPR (http://www.mozilla.org/projects/nspr/) 
> to platforms GNU Classpath might care to support.  You might also find 
> glib useful, http://developer.gnome.org/arch/gtk/glib.html.

I think that's a nice idea in theory, but not so nice in practice.

APR is not GPL compatible atm, though it may be next year. NSPR looks
like it is GPL compatible right now, all files I peeked at are dual
licensed with the GPL or tri-licensed with GPL and LGPL. For added fun,
NSPR actually comes with its own tiny mark and sweep gc, a Java-like
Monitor data type, and a bunch of other goodies.

APR is being used by subversion and the Apache web server. NSPR is being
used by evolution, openoffice & various mozilla projects. They seem to
cover a similar range of platforms, thought NSPR also now covers RISC
OS ;)

Otoh, there is no lack of GPL-compatible utility libraries, from Glib,
and GNU Common C++, to Qt's non-GUI classes & Boost. I'd have a hard
time picking any of them, since they all seem to address problems larger
than those we'd need addressing at the moment (we're expecting a largely
POSIXy/glibc environment anyway, and don't have any ports to very weird
environments yet in the CVS tree), while at the same time 'obfuscating'
the code in ways similar to the current target layer.

I believe that's the reason why neither APR nor NSPR (nor other similar
projects) have seen wide spread acceptance, even though they have been
around for many years now: they don't really pay off enough for people
to rewrite their existing code bases to them.

See also what the OpenBSD developers did as one of the first things,
once they 'forked' Apache web server 1.3.x after the Apache license
change: rip out APR and replace its use by plain old posix functions,
since those were more maintainable for them.

cheers,
dalibor topic


Reply via email to