
Hi, First, please, forgive me if this subject have been discussed already, but I couldn't find anything in the lists archives and Boost docs. Today, my friend was told (warned) on the #c++ IRC channel that Boost uses some technologies already patented by IBM (and may be other entities), like RCU or SMR (and may be more). I have no idea if this is true or not, so I'd like to ask some questions regarding this warning: 1. Does Boost use any patented technologies? 2. If it does, and for example it uses some in library X, does it mean I can not use library Y (without copying X) in my program because of patents-derived restrictions? In other words, if Boost uses any patented technologies in library X, does it influence other libraries? What are implications regarding it? I appologize if something is not clear, but I'm not a lawyer at all, so it may be hard for me to express my considerations. But I hope it's understandable :-) Thanks in advance for any clarification. Cheers -- Mateusz Loskot http://mateusz.loskot.net

Mateusz Loskot wrote:
Today, my friend was told (warned) on the #c++ IRC channel that Boost uses some technologies already patented by IBM (and may be other entities), like RCU or SMR (and may be more).
What is RCU and SMR?
2. If it does, and for example it uses some in library X, does it mean I can not use library Y (without copying X) in my program because of patents-derived restrictions? In other words, if Boost uses any patented technologies in library X, does it influence other libraries? What are implications regarding it?
You should ask a suitably competent patent lawyer that, since it seems a general patent applicability question. -- -- Grafik - Don't Assume Anything -- Redshift Software, Inc. - http://redshift-software.com -- rrivera/acm.org - grafik/redshift-software.com -- 102708583/icq - grafikrobot/aim - grafikrobot/yahoo

Rene Rivera wrote:
Mateusz Loskot wrote:
Today, my friend was told (warned) on the #c++ IRC channel that Boost uses some technologies already patented by IBM (and may be other entities), like RCU or SMR (and may be more).
What is RCU and SMR?
AFAIR, these abbreviations stand for: - Read-Copy-Update - Safe Memory Reclamation
2. If it does, and for example it uses some in library X, does it mean I can not use library Y (without copying X) in my program because of patents-derived restrictions? In other words, if Boost uses any patented technologies in library X, does it influence other libraries? What are implications regarding it?
You should ask a suitably competent patent lawyer that, since it seems a general patent applicability question.
Yes, I understand. Cheers -- Mateusz Loskot http://mateusz.loskot.net

Mateusz Loskot wrote:
Hi,
First, please, forgive me if this subject have been discussed already, but I couldn't find anything in the lists archives and Boost docs.
Today, my friend was told (warned) on the #c++ IRC channel that Boost uses some technologies already patented by IBM (and may be other entities), like RCU or SMR (and may be more).
Boost doesn't use any RCU or SMR as far as I know.

Peter Dimov wrote:
Mateusz Loskot wrote:
Hi,
First, please, forgive me if this subject have been discussed already, but I couldn't find anything in the lists archives and Boost docs.
Today, my friend was told (warned) on the #c++ IRC channel that Boost uses some technologies already patented by IBM (and may be other entities), like RCU or SMR (and may be more).
Boost doesn't use any RCU or SMR as far as I know.
Peter, I see. Thanks! Cheers -- Mateusz Loskot http://mateusz.loskot.net

| -----Original Message----- | From: boost-bounces@lists.boost.org | [mailto:boost-bounces@lists.boost.org] On Behalf Of Peter Dimov | Sent: 21 September 2006 16:07 | To: boost@lists.boost.org | Subject: Re: [boost] Boost and patents | | Mateusz Loskot wrote: | > Today, my friend was told (warned) on the #c++ IRC channel that | > Boost uses some technologies already patented by IBM (and | may be other | > entities), like RCU or SMR (and may be more). | | Boost doesn't use any RCU or SMR as far as I know. But IF IT HAD, it MIGHT provide 'prior art' to defend against the patent, for Boost is undoubtedly published in the public domain and available for everyone to see. I hope that Boost will, in future, prevent (or at least deter) some of the silly software patents that are doing little but enrich some members of the legal progression. Paul --- Paul A Bristow Prizet Farmhouse, Kendal, Cumbria UK LA8 8AB +44 1539561830 & SMS, Mobile +44 7714 330204 & SMS pbristow@hetp.u-net.com

Paul A Bristow wrote:
| -----Original Message----- | From: boost-bounces@lists.boost.org | [mailto:boost-bounces@lists.boost.org] On Behalf Of Peter Dimov | Sent: 21 September 2006 16:07 | To: boost@lists.boost.org | Subject: Re: [boost] Boost and patents | | Mateusz Loskot wrote:
| > Today, my friend was told (warned) on the #c++ IRC channel that | > Boost uses some technologies already patented by IBM (and | may be other | > entities), like RCU or SMR (and may be more). | | Boost doesn't use any RCU or SMR as far as I know.
But IF IT HAD, it MIGHT provide 'prior art' to defend against the patent, for Boost is undoubtedly published in the public domain and available for everyone to see.
Paul, Thank you for this valuable explanation. I hope it will calm down my friends from the dev team ,-)
I hope that Boost will, in future, prevent (or at least deter) some of the silly software patents that are doing little but enrich some members of the legal progression.
Yes, it seems to be very important aspect nowadays, to have eyes wide open :) Cheers -- Mateusz Loskot http://mateusz.loskot.net

Paul A Bristow wrote: [...]
silly software patents that are doing little but enrich some members of the legal progression.
C'mon, $$$ licensing aside (it enriches shareholders), unless prosecuted, RCU patents enrich the LTC guys. IBM's Invention Achievement Plateau Awards and all that. :-) Ha! Note that under SCO's crackpot theory (inspired by the FSF's crackpot theory regarding "based on" copyright derivation a la "Subclassing is creating a derivative work. Therefore, the terms of the GPL affect the whole program where you create a subclass of a GPL'ed class." www.gnu.org/licenses/gpl-faq.html#OOPLang), IBM does (kind of) own RCU but can't publicly disclose it (due to nonsensical reading of AT&T contracts, ignoring side letters, etc.) because it's sorta "UNIX derivative" method and/or concept and/or code infected by viral SCO's license on ancient SysV stuff that it was in contact (is "based on") and hence got contaminated (same as with FSF's contamination theory***). And since patenting requires public disclosure... IBM just can't patent it without owing SCO a petabuck or two in contractual damages (copyright claim arising from subsequent use of purportedly SCO's copyrighted material after license termination for breach aside for a moment). Man oh man. ***) http://www.fsf.org/blogs/licensing/assignunisrule.html ----- Once code is written and placed under the GPL, any code based on that code and distributed will also placed under the GPL. Thus, there is nothing a university could do with a developer's code if it is based on previously GPL'd code anyway. There is no good reason NOT to assign code to the FSF. ----- and http://www.google.com/search?q=jacobson+FSF yields "From: "Jonas Jacobson via RT" <copyright-clerk at fsf dot org>" and "FSF Assignment Administrator Jonas Jacobson". Man oh man. regards, alexander.

Mateusz Loskot wrote:
Hi,
First, please, forgive me if this subject have been discussed already, but I couldn't find anything in the lists archives and Boost docs.
Today, my friend was told (warned) on the #c++ IRC channel that Boost uses some technologies already patented by IBM (and may be other entities), like RCU or SMR (and may be more). I have no idea if this is true or not, so I'd like to ask some questions regarding this warning:
1. Does Boost use any patented technologies?
Not knowingly, which doesn't mean that we don't of course. What are RCU and SMR? I'd be interested to know exactly what folks are saying about Boost, especially if it sounds a little like some FUD.
2. If it does, and for example it uses some in library X, does it mean I can not use library Y (without copying X) in my program because of patents-derived restrictions? In other words, if Boost uses any patented technologies in library X, does it influence other libraries? What are implications regarding it?
IANAL: and that's something you would need a lawyer for :-( John.

John Maddock wrote:
Mateusz Loskot wrote:
Hi,
First, please, forgive me if this subject have been discussed already, but I couldn't find anything in the lists archives and Boost docs.
Today, my friend was told (warned) on the #c++ IRC channel that Boost uses some technologies already patented by IBM (and may be other entities), like RCU or SMR (and may be more). I have no idea if this is true or not, so I'd like to ask some questions regarding this warning:
1. Does Boost use any patented technologies?
Not knowingly, which doesn't mean that we don't of course.
John, I see, that makes sense, certainly.
What are RCU and SMR?
I understand it as Read-Copy-Update and Safe Memory Reclamation
I'd be interested to know exactly what folks are saying about Boost, especially if it sounds a little like some FUD.
I tried to ask authors of these warnings about patents in Boost on the #c++ and there wasn't anyone who could explain me this issue in details. I suppose now it's only a rumour, but nothing serious. So, I appologize for making unnecessary noise here, but it did scare me a little :-)
2. If it does, and for example it uses some in library X, does it mean I can not use library Y (without copying X) in my program because of patents-derived restrictions? In other words, if Boost uses any patented technologies in library X, does it influence other libraries? What are implications regarding it?
IANAL: and that's something you would need a lawyer for :-(
Yes that's now clear for me. I just wanted to understand if Boost libraries are licensed as a standalone package and if patent/licensing issues in one library may influence another one, both live in Boost. As I understand, Boost is a set of libraries available under common license, Boost license, so I think that when library X breaks some copyrights or patents then it does not influences library Y and others. But I'll ask a lawyer, when I find a good one ;-) Cheers -- Mateusz Loskot http://mateusz.loskot.net

On Thu, 21 Sep 2006 19:06:30 +0200, Mateusz Loskot <mateusz@loskot.net> wrote:
As I understand, Boost is a set of libraries available under common license, Boost license, so I think that when library X breaks some copyrights or patents then it does not influences library Y and others. But I'll ask a lawyer, when I find a good one ;-)
Intuitively I would think patent licensing issues on library X would affect the whole package; however removing the offending parts creates a new package, in conformity with law. But as I said that's my intuition. A lawyer should have something less impalpable to back his opinion up :-) -- Genny.

Gennaro Prota wrote:
On Thu, 21 Sep 2006 19:06:30 +0200, Mateusz Loskot <mateusz@loskot.net> wrote:
As I understand, Boost is a set of libraries available under common license, Boost license, so I think that when library X breaks some copyrights or patents then it does not influences library Y and others. But I'll ask a lawyer, when I find a good one ;-)
Intuitively I would think patent licensing issues on library X would affect the whole package; however removing the offending parts creates a new package, in conformity with law. But as I said that's my intuition. A lawyer should have something less impalpable to back his opinion up :-)
OK, but even then, when the new package is created and it does not include any offending libraries, the situation is clear enough so I can use the new package. And I won't break Boost license and, ideally, any patents too. Cheers -- Mateusz Loskot http://mateusz.loskot.net

Mateusz Loskot wrote:
And I won't break Boost license and, ideally, any patents too.
It's just your hope. It's estimated that this year over 40000 patents in the software domain will be issued in total (in USA). Forty thousands - just in case you doubt all these zeros. All this in one year. Plus all those that were already issued previously. (Surely, some of them are duplicates or at least largely overlapping, but who cares.) I bet that you are breaking some number of these patents anyway, no matter what you do. In fact, it would be interesting to know how many patents you are breaking on average per each 1kLOC of code that you think you created. :-) -- Maciej Sobczak : http://www.msobczak.com/ Programming : http://www.msobczak.com/prog/

Maciej Sobczak wrote:
Mateusz Loskot wrote:
And I won't break Boost license and, ideally, any patents too.
It's just your hope.
Maciej, Absolutely right. I'm a kind of inveterate optimist, here :-)
It's estimated that this year over 40000 patents in the software domain will be issued in total (in USA). Forty thousands - just in case you doubt all these zeros. All this in one year. Plus all those that were already issued previously. (Surely, some of them are duplicates or at least largely overlapping, but who cares.)
Definitely, you've touched a very important issue but I don't think there is any resolution at the moment. I mean, the only I can see is to stop programming :-)
I bet that you are breaking some number of these patents anyway, no matter what you do. In fact, it would be interesting to know how many patents you are breaking on average per each 1kLOC of code that you think you created. :-)
Exactly. I think Seweryn from pl.comp.lang.c could be interested in developing some statistics about it ;-) In the meantime, I'm going to consider Boost as free of patented garbage ;-) Cheers -- Mateusz Loskot http://mateusz.loskot.net

On Thu, 21 Sep 2006 16:42:50 +0200, Mateusz Loskot <mateusz@loskot.net> wrote:
Today, my friend was told (warned) on the #c++ IRC channel that Boost uses some technologies already patented by IBM (and may be other entities), like RCU or SMR (and may be more). I have no idea if this is true or not, so I'd like to ask some questions regarding this warning:
1. Does Boost use any patented technologies?
I don't know in general. As it concerns RCU and SMR specifically there has been lot of work in the threads area in the latest months, so you should probably grep into the sources (Threads, Asio, etc.). I'd be surprised if just using the OS API (which I think is the case for boost code) were a patent violation, though. -- Genny.

On 9/21/06, Mateusz Loskot <mateusz@loskot.net> wrote:
1. Does Boost use any patented technologies?
Honestly I have no idea. That being said, Boost generally covers two categories of library: - Good implementations of common classes and idioms - New interfaces, ideas, and idioms For the former, it might be challengeable with prior art, as it's common. For the later, in many cases the boost version is the originator of the technique, so the danger would be if someone patented an idea and never made that known, but at worst for that there's no way that the infringement could be considered malicious. And of course, in most cases a non-boost implementation of the same functionality would likely also infringe on a patent, if one existed.
2. If it does, and for example it uses some in library X, does it mean I can not use library Y (without copying X) in my program because of patents-derived restrictions? In other words, if Boost uses any patented technologies in library X, does it influence other libraries? What are implications regarding it?
In seems to me like the most common Boost dependencies for the other Boost libraries are the ones that are better implementations of or interfaces for ideas already found in the standard or other common libraries. For example, Smart Pointer and Bind are improvements on the related facilities already found in the standard library and thread is a fairly thin wrapper on top of the operating system's threading system. Of course, IANAL as well, ~ Scott

Mateusz Loskot <mateusz@loskot.net> wrote:
Hi,
First, please, forgive me if this subject have been discussed already, but I couldn't find anything in the lists archives and Boost docs.
Today, my friend was told (warned) on the #c++ IRC channel that Boost uses some technologies already patented by IBM (and may be other entities), like RCU or SMR (and may be more). I have no idea if this is true or not, so I'd like to ask some questions regarding this warning:
1. Does Boost use any patented technologies?
Yes. There is a huge volume of truly silly patents out there (e.g. xor), so it is basically impossible for Boost not to use patented techniques. As far as I know, Boost has not received any cease-and-desist letters. But that does not mean Boost will never get one. Is is a Sword of Damocles over every software project. Software patents really suck.
2. If it does, and for example it uses some in library X, does it mean I can not use library Y (without copying X) in my program because of patents-derived restrictions? In other words, if Boost uses any patented technologies in library X, does it influence other libraries? What are implications regarding it?
Ripping out library X should be sufficient. However, many of Boost's libraries depend on each other, so it may not be a simple task. Cheers, Walter Landry wlandry@ucsd.edu

Walter Landry wrote:
Mateusz Loskot <mateusz@loskot.net> wrote:
2. If it does, and for example it uses some in library X, does it mean I can not use library Y (without copying X) in my program because of patents-derived restrictions? In other words, if Boost uses any patented technologies in library X, does it influence other libraries? What are implications regarding it?
Ripping out library X should be sufficient. However, many of Boost's libraries depend on each other, so it may not be a simple task.
Yes, I understand it may not be simple task but I'm considering such case in theory. All of responses to my question in this thread helped me to understand the complexity of problem and that there is no simple answer. Thanks to all! Cheers -- Mateusz Loskot http://mateusz.loskot.net

Mateusz Loskot wrote :
Today, my friend was told (warned) on the #c++ IRC channel that Boost uses some technologies already patented by IBM (and may be other entities), like RCU or SMR (and may be more).
I think I saw part of that discussion. It actually started about the cost of reference counting in multithreading environments. Then it was said that using technologies such as RCU and SMR could improve performance, but given that those are patented [1], they couldn't be used in boost::shared_ptr. I do not know how this discussion transformed into patents being used in boost though. Since I don't really know myself how RCU and SMR work, I am unable to give more info but if you're interested you could search for "RCU SMR" in Google groups which seems to bring interesting results in comp.programming.threads and comp.lang.c++.moderated about this kind of stuff. [1] It seems, though, that IBM has authorized the use of RCU in GPL'ed software.

loufoque wrote:
Mateusz Loskot wrote :
Today, my friend was told (warned) on the #c++ IRC channel that Boost uses some technologies already patented by IBM (and may be other entities), like RCU or SMR (and may be more).
I think I saw part of that discussion. It actually started about the cost of reference counting in multithreading environments. Then it was said that using technologies such as RCU and SMR could improve performance, but given that those are patented [1], they couldn't be used in boost::shared_ptr.
RCU is a read-write scheme to abuse scheduler. It has nothing to do with boost::shared_ptr. SMR is "poor man" garbage collector (very expensive) for ala-Java ref^^^pointers providing strong thread-safety. It has also nothing to with boost::shared_ptr because it provide basic thread-safety, not strong. regards, alexander.

loufoque wrote:
Mateusz Loskot wrote :
Today, my friend was told (warned) on the #c++ IRC channel that Boost uses some technologies already patented by IBM (and may be other entities), like RCU or SMR (and may be more).
I think I saw part of that discussion. It actually started about the cost of reference counting in multithreading environments. Then it was said that using technologies such as RCU and SMR could improve performance, but given that those are patented [1], they couldn't be used in boost::shared_ptr.
I do not know how this discussion transformed into patents being used in boost though.
loufoque, Thank you very much for this summary. I think it's a kind of grapevine, transmitted by me too :-) at least to this list.
Since I don't really know myself how RCU and SMR work, I am unable to give more info but if you're interested you could search for "RCU SMR" in Google groups which seems to bring interesting results in comp.programming.threads and comp.lang.c++.moderated about this kind of stuff.
Yup, I've searched these archives. As some of participants in this thread confirmed, RCU and SMR is not used in Boost, so I'm quite sure that it was a rumour about RCU/SMR issues ;-) Although, what Maciej and others suggested, it doesn't mean Boost is completely free of patented technologies :-( Cheers -- Mateusz Loskot http://mateusz.loskot.net
participants (11)
-
Alexander Terekhov
-
Gennaro Prota
-
John Maddock
-
loufoque
-
Maciej Sobczak
-
Mateusz Loskot
-
me22
-
Paul A Bristow
-
Peter Dimov
-
Rene Rivera
-
Walter Landry