Charles Reiss wrote:

So, to start off, a copyright question:

It would be nice to use libraries that provide relatively portable
atomic operation support (needed for good implementations of most
"lock-free" schemes), such as HP's atomic_ops [
http://www.hpl.hp.com/research/linux/atomic_ops/index.php4 ] which is
which is under a 'modified BSD'-like license (that is, one that
requires displaying copyright notices). Is this acceptable or not to
put in Parrot?

Including BSD licensed libraries in Parrot is fine. But, atomic_ops also contains some GPL code ("test code, sample applications, and the libatomic_ops_gpl portion of the library") which cannot be included in Parrot. So, you can take portions of atomic_ops into Parrot.

(If not, it's a relatively easy matter to provide fast implementations
of these operations by hand for those platforms to which I have access
-- but borrowing from a library should give a lot of extra
portability.)

Ultimately, this is probably the better solution.

When we incorporate a third-party library into Parrot, it becomes our responsibility to guarantee the portability of that library for all the platforms Parrot supports. Better to link to an external library and make it optional (like ICU), or to implement the tiny piece of functionality we need from the library in Parrot (taking advantage of Parrot's very portable design).

Allison

Reply via email to