Boost logo

Boost :

Subject: Re: [boost] GSOC BigInt Licensing Issues
From: Stewart, Robert (Robert.Stewart_at_[hidden])
Date: 2010-03-29 11:50:00

swagat konchada wrote:
> I had a look upon the BigInt code from the sandbox. It's
> entirely wrapped around GMP(linked to gmblib).
> That is uncompatible with the Boost license, which hinders
> the distribution
> of a Boost_bigInt library which wholly is a wrapper around GMP.
> Keeping in view the above issues what should be our priority?
> Improving the
> wrapping around GMP for time being or Starting Boost's own version of
> BigInt. I see mixed reactions on this subject. My personal
> opinion is that
> suggested by Paul A. Bristow, i.e, of a Boost's own BigInt,
> which I think is in line with Boost's long term aspirations.

The issue, as you note, is that Boost.BigInt cannot be tightly coupled to GMP because it triggers a licensing problem for Boost. Instead, GMP should be one among multiple back ends supported by Boost.BigInt unless BigInt aims to reimplement what GMP and its ilk have already provided. (That brings rise to comments regarding popularity and vendor attention to such libraries. BigInt could become sufficiently popular to gain the necessary attention to become as efficient as GMP, but that will be a long and uphill climb. OTOH, if BigInt becomes a standard library, then it will be up to vendors to optimize it, so Boost.BigInt only has to be "good enough," in terms of performance, to reach that status.)

The usual idea is that BigInt would provide expression templates and other optimizations to avoid calling the back end engine inefficiently. That may require an adapter layer between the user-visible BigInt API and the computation engine, like GMP, at the back end, to insulate the API from differences in the back end engines. (Then again, there may be nothing left to a layer above the adapter layer; I'm not saying there must be three layers.)

If GMP is an optional back end supported by BigInt, along with other back ends, controlled by conditional compilation, then a BigInt user can choose to use GMP if they like, but the licensing issue will be theirs and not Boost's.


Rob Stewart robert.stewart_at_[hidden]
Software Engineer, Core Software using std::disclaimer;
Susquehanna International Group, LLP

IMPORTANT: The information contained in this email and/or its attachments is confidential. If you are not the intended recipient, please notify the sender immediately by reply and immediately delete this message and all its attachments. Any review, use, reproduction, disclosure or dissemination of this message or any attachment by an unintended recipient is strictly prohibited. Neither this message nor any attachment is intended as or should be construed as an offer, solicitation or recommendation to buy or sell any security or other financial instrument. Neither the sender, his or her employer nor any of their respective affiliates makes any warranties as to the completeness or accuracy of any of the information contained herein or that this message or any of its attachments is free of viruses.

Boost list run by bdawes at, gregod at, cpdaniel at, john at