Interest in a Boost.Chrono/Date library
Hi, maybe some of you have already see the Howard Hinnant presentation at CppCOn2015 [1] about his new data-v2 library [2]. My prototype of Boost.Chrono/Date library ([3] ] was based on the Howard original library, but when we want to reach the maximum of performances we need to use a specific date class for each usage. This is what Howard explains in his marvelous presentation ans his tiny date library My post here wants to know if there is interest in a library providing what H.H. date library provides in Boost. Note that his data-v2 library yet doesn't provides as much as Boost.Date provides but IMHO it is much elegant and efficient. If there is enough interest, I will request you to do a first review of the H.H. Date-V2 library. Then once we have a consensus I will make my POC Chrono/Date library ready for review. H.H. Date-V2 is under MIT license, which IIRC is compatible with the Boost license. I don't know yet if would need to add this license, as my POC [3] is already a good starting point, nevertheless, I would like to know if there could be any issues about having the source under both licenses. Best, Vicente [1] https://www.youtube.com/watch?v=tzyGjOm8AKo [2] https://github.com/HowardHinnant/date [3] https://github.com/viboes/chrono_date/commits/master First commit Nov/2011 Last-Mars2014
On 10/25/2015 5:51 PM, Vicente J. Botet Escriba wrote:
Hi,
maybe some of you have already see the Howard Hinnant presentation at CppCOn2015 [1] about his new data-v2 library [2]. My prototype of Boost.Chrono/Date library ([3] ] was based on the Howard original library, but when we want to reach the maximum of performances we need to use a specific date class for each usage. This is what Howard explains in his marvelous presentation ans his tiny date library
My post here wants to know if there is interest in a library providing what H.H. date library provides in Boost. Note that his data-v2 library yet doesn't provides as much as Boost.Date provides but IMHO it is much elegant and efficient. If there is enough interest, I will request you to do a first review of the H.H. Date-V2 library. Then once we have a consensus I will make my POC Chrono/Date library ready for review.
H.H. Date-V2 is under MIT license, which IIRC is compatible with the Boost license. I don't know yet if would need to add this license, as my POC [3] is already a good starting point, nevertheless, I would like to know if there could be any issues about having the source under both licenses.
Best, Vicente
Hi Vicente, Personally I would be very interested, however while I'm not a lawyer I see what I think might be an incompatibility or at least a point which raises ambiguity between the Boost license and the MIT license. The Boost license clearly states that binary distributions of derivative works do not require attribution in the documentation, while the MIT license is unclear on this as far as I can tell. The relevant portion of the MIT license is: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. It is not clear to me what "all copies or substantial portions of the Software" means. The original source package? Derivative works in source code form? Compiled derivative works? A bit of googling gives me conflicting information but most people seem to think that it refers to compiled derivative works as well, which is incompatible with the Boost license if this is indeed the correct interpretation of the MIT license. Kind regards, Philip Bennefall
On Sun, Oct 25, 2015 at 1:30 PM, Philip Bennefall
On 10/25/2015 5:51 PM, Vicente J. Botet Escriba wrote:
Hi,
maybe some of you have already see the Howard Hinnant presentation at CppCOn2015 [1] about his new data-v2 library [2]. My prototype of Boost.Chrono/Date library ([3] ] was based on the Howard original library, but when we want to reach the maximum of performances we need to use a specific date class for each usage. This is what Howard explains in his marvelous presentation ans his tiny date library
My post here wants to know if there is interest in a library providing what H.H. date library provides in Boost. Note that his data-v2 library yet doesn't provides as much as Boost.Date provides but IMHO it is much elegant and efficient. If there is enough interest, I will request you to do a first review of the H.H. Date-V2 library. Then once we have a consensus I will make my POC Chrono/Date library ready for review.
H.H. Date-V2 is under MIT license, which IIRC is compatible with the Boost license. I don't know yet if would need to add this license, as my POC [3] is already a good starting point, nevertheless, I would like to know if there could be any issues about having the source under both licenses.
Best, Vicente
Hi Vicente,
Personally I would be very interested, however while I'm not a lawyer I see what I think might be an incompatibility or at least a point which raises ambiguity between the Boost license and the MIT license. The Boost license clearly states that binary distributions of derivative works do not require attribution in the documentation, while the MIT license is unclear on this as far as I can tell.
The relevant portion of the MIT license is:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
It is not clear to me what "all copies or substantial portions of the Software" means. The original source package? Derivative works in source code form? Compiled derivative works? A bit of googling gives me conflicting information but most people seem to think that it refers to compiled derivative works as well, which is incompatible with the Boost license if this is indeed the correct interpretation of the MIT license.
Kind regards,
Philip Bennefall
Perhaps we should ask Howard Hinnant to release his code under the Boost license, assuming all of the code is attributable to him. Then no lawyering should be needed (hopefully?). Lee
Lee Clagett wrote: ...
H.H. Date-V2 is under MIT license, which IIRC is compatible with the Boost license. I don't know yet if would need to add this license, as my POC [3] is already a good starting point, nevertheless, I would like to know if there could be any issues about having the source under both licenses.
Best, Vicente ...
Perhaps we should ask Howard Hinnant to release his code under the Boost license, assuming all of the code is attributable to him. Then no lawyering should be needed (hopefully?).
That was my first thought as well.
On Oct 25, 2015, at 2:03 PM, Peter Dimov
Lee Clagett wrote: ...
H.H. Date-V2 is under MIT license, which IIRC is compatible with the >> Boost license. I don't know yet if would need to add this license, as >> my POC [3] is already a good starting point, nevertheless, I would like >> to know if there could be any issues about having the source under both >> licenses.
Best, Vicente ...
Perhaps we should ask Howard Hinnant to release his code under the Boost license, assuming all of the code is attributable to him. Then no lawyering should be needed (hopefully?).
That was my first thought as well.
I have other authors, and clients who have requested the MIT license, and it would be awkward to remove the MIT license at this point. I have no objection to the boost license being added to the MIT license on the boost distribution though. On my personal website it will continue to have only the MIT license. Howard
Howard Hinnant wrote:
I have other authors, and clients who have requested the MIT license, and it would be awkward to remove the MIT license at this point. I have no objection to the boost license being added to the MIT license on the boost distribution though.
This unfortunately can't work because the MIT license is more restrictive than the Boost's one. As far as I know, of course. What can work is for you to release the code under a dual license, that is, the licensee to be able to choose between MIT or Boost at his discretion.
On Oct 25, 2015, at 1:30 PM, Philip Bennefall
Personally I would be very interested, however while I'm not a lawyer I see what I think might be an incompatibility or at least a point which raises ambiguity between the Boost license and the MIT license. The Boost license clearly states that binary distributions of derivative works do not require attribution in the documentation, while the MIT license is unclear on this as far as I can tell.
The relevant portion of the MIT license is:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
It is not clear to me what "all copies or substantial portions of the Software" means. The original source package? Derivative works in source code form? Compiled derivative works? A bit of googling gives me conflicting information but most people seem to think that it refers to compiled derivative works as well, which is incompatible with the Boost license if this is indeed the correct interpretation of the MIT license.
My impression with dealing with various big companies (who have lots of lawyers) on this point is that MIT does not require a license on binaries. This site, while clearly being humorous, seems at least partly based on fact: http://www.billthelizard.com/2012/05/which-open-source-license.html :-) Howard
On 25/10/2015 17:51, Vicente J. Botet Escriba wrote:
My post here wants to know if there is interest in a library providing what H.H. date library provides in Boost.
Absolutely. And if possible we should maybe include the timezone library and the low-level algorithms. I think all of them are really interesting. Howard has a lot of great stuffin his site. Are chrono-io and chrono-utils part of Boost.Chrono? Ion
Le 25/10/15 18:55, Ion Gaztañaga a écrit :
On 25/10/2015 17:51, Vicente J. Botet Escriba wrote:
My post here wants to know if there is interest in a library providing what H.H. date library provides in Boost.
Absolutely. And if possible we should maybe include the timezone library and the low-level algorithms. I think all of them are really interesting.
Howard has a lot of great stuffin his site. Are chrono-io and chrono-utils part of Boost.Chrono? Boost.Chrono has two versions of chrono-io (the first one based on H.H. design and the second based on time_facet design. It provides the floor, round and ceil tools also since a long time.
My prototype of the Boost.Chrono/Date was based on an earlier version|[chrono::date] |of Howard dated from 2011-05-11. The original H.H. version had a single class date. Mine had a lot of date classes, as the new date-v2. E.g. I have ymd_date, days_date, ydoy_date, relative_date, All the merits of the date library are to Howard. My single contribution on Boost.Chrono/Date was to split the classes based on [n3344]. We worked hard to try to identify a design that could be safe and efficient at the same time. We didn't finished the work. It seems that Howard has finished it now. There were a GSOC guy that worked in splitting the algorithms from the date data types even if the project was not accepted. I like a lot the work Howard has done with his date-v2 library, it is quite close to what I did, but it is clean. In addition my library is not at the level of maturity of date-v2 library, I hope that we will find a solution with the licenses. Anyway, besides the software license issue, could people interested in do review of Howard's library. I'm sure that Howard will appreciate your comments. Best, Vicente |[chrono::date] |https://svn.boost.org/svn/boost/sandbox/chrono_date/libs/date/doc/date.html [n3344] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3344.pdf People interested in looking at my library, the test pass yet and you can generate the documentation using boost build.
On Sun, Oct 25, 2015 at 12:51 PM, Vicente J. Botet Escriba < vicente.botet@wanadoo.fr> wrote:
Hi,
maybe some of you have already see the Howard Hinnant presentation at CppCOn2015 [1] about his new data-v2 library [2]. My prototype of Boost.Chrono/Date library ([3] ] was based on the Howard original library, but when we want to reach the maximum of performances we need to use a specific date class for each usage. This is what Howard explains in his marvelous presentation ans his tiny date library
My post here wants to know if there is interest in a library providing what H.H. date library provides in Boost. Note that his data-v2 library yet doesn't provides as much as Boost.Date provides but IMHO it is much elegant and efficient. If there is enough interest, I will request you to do a first review of the H.H. Date-V2 library. Then once we have a consensus I will make my POC Chrono/Date library ready for review.
I had the pleasure of seeing Howard's presentation at CppCon, and it made a very favorable impression. Starting about 33:55 in, Howard does a comparison of several libraries, including Boost Date-Time V1, and Jeff Garland's Boost Date-Time V2. If you don't want to watch the whole presentation, at least watch the "Inter-Library Comparison" segment.
H.H. Date-V2 is under MIT license, which IIRC is compatible with the Boost license. I don't know yet if would need to add this license, as my POC [3] is already a good starting point, nevertheless, I would like to know if there could be any issues about having the source under both licenses.
We should ask Tony Sebro of the Software Freedom Conservancy. He is Boost's lawyer, and is very knowledgeable about open source licensing questions.
--Beman
Le 25/10/15 23:22, Beman Dawes a écrit :
On Sun, Oct 25, 2015 at 12:51 PM, Vicente J. Botet Escriba < vicente.botet@wanadoo.fr> wrote:
H.H. Date-V2 is under MIT license, which IIRC is compatible with the Boost license. I don't know yet if would need to add this license, as my POC [3] is already a good starting point, nevertheless, I would like to know if there could be any issues about having the source under both licenses.
We should ask Tony Sebro of the Software Freedom Conservancy. He is Boost's lawyer, and is very knowledgeable about open source licensing questions.
Beman, could you take contact wit him? Best, Vicente
Hi again, from the number of replays to this post and the number of informal review received I deduce that there is not enough interest in this library. Maybe next time will be a better :) Best, Vicente Le 25/10/15 17:51, Vicente J. Botet Escriba a écrit :
Hi,
maybe some of you have already see the Howard Hinnant presentation at CppCOn2015 [1] about his new data-v2 library [2]. My prototype of Boost.Chrono/Date library ([3] ] was based on the Howard original library, but when we want to reach the maximum of performances we need to use a specific date class for each usage. This is what Howard explains in his marvelous presentation ans his tiny date library
My post here wants to know if there is interest in a library providing what H.H. date library provides in Boost. Note that his data-v2 library yet doesn't provides as much as Boost.Date provides but IMHO it is much elegant and efficient. If there is enough interest, I will request you to do a first review of the H.H. Date-V2 library. Then once we have a consensus I will make my POC Chrono/Date library ready for review.
H.H. Date-V2 is under MIT license, which IIRC is compatible with the Boost license. I don't know yet if would need to add this license, as my POC [3] is already a good starting point, nevertheless, I would like to know if there could be any issues about having the source under both licenses.
Best, Vicente
[1] https://www.youtube.com/watch?v=tzyGjOm8AKo [2] https://github.com/HowardHinnant/date [3] https://github.com/viboes/chrono_date/commits/master First commit Nov/2011 Last-Mars2014
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
On Sunday, November 01, 2015 07:08:17 PM Vicente J. Botet Escriba wrote:
Hi again,
from the number of replays to this post and the number of informal review received I deduce that there is not enough interest in this library.
Maybe next time will be a better :)
I think the interest is there, but the licensing issue makes this particular implementation much less appealing.
On 01/11/2015 19:08, Vicente J. Botet Escriba wrote:
Hi again,
from the number of replays to this post and the number of informal review received I deduce that there is not enough interest in this library.
Maybe next time will be a better :)
I think there is interest. The license issue is the main question. Although I guess that using Howard's detailed articles we could rewrite the library with much bigger effort. Best, Ion
I did not intend for there to be a “binary clause" for this date/time library. My intent was to make this library have as small a legal footprint as possible. Here is ad-hoc "legal advice" on the subject that I did not write, but which agrees with my understanding: http://llvm.org/docs/DeveloperPolicy.html#license which contains this phrase:
In addition to the UIUC license, the runtime library components of LLVM (compiler_rt, libc++, and libclc) are also licensed under the MIT License, which does not contain the binary redistribution clause.
Also, I specifically did not choose the boost license because I did not want people to get a mistaken impression that this library was part of boost (had been peer reviewed by boost). And while I’m happy to have Vicente (or anyone else) run this library through the well-respected boost peer review process, I am not at this time agreeing to alter my version of this library with the result of that peer review. My intent is that people can take this library and do whatever they want with it, including putting it into boost and modifying it in the process. Including selling it, getting rich, and never paying me a dime. The only restrictions I’m aware of are: 1. The MIT copyright remains intact in the source. 2. You can’t sue me, at least not because of this software. Howard
On 02/11/2015 1:06, Howard Hinnant wrote:
I did not intend for there to be a “binary clause" for this date/time library. My intent was to make this library have as small a legal footprint as possible.
Thanks for the details Howard. According to http://www.boost.org/development/requirements.html#License it seems to me that MIT License should be acceptable in Boost (except maybe for the last requirement below): <quote> License requirements The preferred way to meet the license requirements is to use the Boost Software License. See license information. If for any reason you do not intend to use the Boost Software License, please discuss the issues on the Boost developers mailing list first. The license requirements: - Must be simple to read and understand. - Must grant permission without fee to copy, use and modify the software for any use (commercial and non-commercial). - Must require that the license appear on all copies of the software source code. - Must not require that the license appear with executables or other binary uses of the library. - Must not require that the source code be available for execution or other binary uses of the library. - May restrict the use of the name and description of the library to the standard version found on the Boost web site. </quote>
My intent is that people can take this library and do whatever they want with it, including putting it into boost and modifying it in the process. Including selling it, getting rich, and never paying me a dime.
Let's hope Boost can give you at least some useful feedback to improve the library ;-) Ion
On 11/2/2015 11:46 PM, Ion Gaztañaga wrote:
On 02/11/2015 1:06, Howard Hinnant wrote:
I did not intend for there to be a “binary clause" for this date/time library. My intent was to make this library have as small a legal footprint as possible.
Thanks for the details Howard. According to
http://www.boost.org/development/requirements.html#License
it seems to me that MIT License should be acceptable in Boostt... Snip
Personally, even if individual authors who place their code under the MIT license do or do not intend it to require binary attribution, I have seen plenty of MIT licensed project authors who do interpret it as requiring attribution as part of derivative works in binary form - hence the ambiguity. I come back to this section again" The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. It does not make any distinction between the software as distributed in source code form, precompiled unmodified form, a derivative work in source code form , a derivative work in object code form etc. To me it is obvious that the MIT license does require the copyright notices to appear in source code copies of the software (whether in its original form or as part of a derivative work), for the simple reason that this is the way in which the original software is distributed (at least in the case of a Boost library). This is of course what the BSL says too. But it seems to me that the case of attribution in closed source derivative works is very much a matter of opinion, depending on how you interpret the words "copies" and "substantial portions of the software". What constitutes a substantial portion? Am I still distributing "the software" if I use a library as part of a closed source derivative work? I should think so, in which case I would assume that the attribution clause does apply. But I am not sure. These are the questions which I feel the Boost license answers clearly, and which is where I think the two licenses are incompatible. Kind regards, Philip Bennefall
On Tue, Nov 3, 2015 at 1:46 AM, Ion Gaztañaga
On 02/11/2015 1:06, Howard Hinnant wrote:
I did not intend for there to be a “binary clause" for this date/time library. My intent was to make this library have as small a legal footprint as possible.
Thanks for the details Howard. According to
http://www.boost.org/development/requirements.html#License
it seems to me that MIT License should be acceptable in Boost (except maybe for the last requirement below):
<quote>
[snip]
The license requirements:
[snip]
- Must not require that the license appear with executables or other binary uses of the library.
[snip]
</quote>
I'm not a lawyer but I think that the above may be violated as MIT requires the license to be included in "all copies or substantial portions of the Software" [1], which includes binary forms, IMHO. At least, that's the part that is not clear in MIT license as opposed to BSL and Boost licensing policies. In any case, one of the advantages of Boost so far has been a relatively easy legal analysis for users as all libraries are under BSL (it's not always been the case, but I think now it is). Adding a library with a different license complicates use of Boost, especially if there appear interdependencies between the proposed Boost.Chrono.Date and other Boost libraries under BSL. [1]: https://opensource.org/licenses/MIT
participants (8)
-
Andrey Semashev
-
Beman Dawes
-
Howard Hinnant
-
Ion Gaztañaga
-
Lee Clagett
-
Peter Dimov
-
Philip Bennefall
-
Vicente J. Botet Escriba