Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Software transactional memory / atomic_ops copyright

5 views
Skip to first unread message

Charles Reiss

unread,
May 26, 2006, 4:11:54 PM5/26/06
to perl6-i...@perl.org, all...@perl.org
I'm the student doing the summer of code project to implement STM in
parrot. I've created a branch of parrot named 'stm' for this purpose.

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?

(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.)

-- Charles

Allison Randal

unread,
May 30, 2006, 3:00:20 PM5/30/06
to Charles Reiss, perl6-i...@perl.org
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

0 new messages