[SciPy-Dev] Bundling Boost?

Ralf Gommers ralf.gommers at gmail.com
Sun Oct 7 15:52:54 EDT 2012


On Sun, Oct 7, 2012 at 6:21 PM, Charles R Harris
<charlesr.harris at gmail.com>wrote:

>
>
> On Sun, Oct 7, 2012 at 9:40 AM, Pauli Virtanen <pav at iki.fi> wrote:
>
>> Hi,
>>
>> I'd like to consider replacing some of the function implementations in
>> scipy.special with versions from the C++ Boost library, cf.
>>
>> http://www.boost.org/doc/libs/1_51_0/libs/math/doc/sf_and_dist/html/index.html
>>
>> The reason is that these implementations appear to be made with more
>> care than what we use currently, and behave more correctly in corner
>> cases (cf. e.g. ticket #1740).
>>
>> To minimize work, it would be useful just to use the Boost functions
>> direcly, rather than doing manual C transcriptions. The drawback here is
>> that the portion of Boost library required weights about 8 MB of source
>> code, and we would most likely like to bundle it, as it is not really a
>> standard part of many installations. This does not reflect much on the
>> compiled binary size, however.
>>
>> I'm not 100 % certain about the compiler support. Perhaps C++ is already
>> mature enough to work across the platforms we care about.
>>
>
An obvious worry is Windows. MinGW is explicitly not supported, and "may or
may not work":
http://www.boost.org/doc/libs/1_51_0/more/getting_started/windows.html


>
>> I'm not aware of many good BSD-compatible floating-point special
>> function libraries, so if you know others, or would be opposed to
>> bundling Boost, please chime up!
>>
>>
> I think using the boost library is a good idea. It is well tested and
> looks to support quad precision, something we will probably want at some
> point. It also looks to be highly templated and tightly integrated, so I
> suspect getting it properly interfaced might be non-trivial. The same holds
> for the distributions, but we have done much the same. It might be worth
> looking over the boost classes for some ideas.
>
> As to the size of the code, the current scipy/special library is ~40MB and
> I expect we can get rid of some of that.
>

It's ~11Mb for me.

We should check for LLVM compatibility to make sure Apple isn't a problem,
> but it looks like most other C++ compilers will work, Boost does try hard
> for universality.
>
> Compile times will probably increase if we keep all the templates.
>

That's a much bigger worry than how many Mb of source code it is. Does
anyone have an idea of how much compile time would increase and how much
RAM it would use?

Ralf
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scipy-dev/attachments/20121007/9962cd3a/attachment.html>


More information about the SciPy-Dev mailing list