Subject: Re: [boost] [modularization] How to remove the Math -> multuplecission dependency?
From: John Maddock (boost.regex_at_[hidden])
Date: 2014-06-06 11:29:57
>>> I would argue it's a "false positive": the header generate.hpp is a
>>> maintenance header used for generating new numeric constants, and the
>>> dependency to multiprecision is optional (inside #ifdef's). It is
>>> however documented, so I'm loathed to just move it. There are quite a
>>> few of Math's dependencies that are introduced via similar headers
>>> that exist for maintenance/testing/optional use, and are not included
>>> by any of the "include everything" entry point headers.
>> Yes, Math has headers such as <boost/math/tools/test.hpp> and
>> <boost/math/tools/test_data.hpp> that are probably only needed by its
>> tests, and could have been in the test/ directory instead of include/.
>> <boost/math/tools/remez.hpp> could have been in libs/math/minimax, and
>> so on.
> Despite possible maintenance complications Boost might want to explore
> the idea of separate git submodules for a library's implementation
> code/documentation and a library's tests. That way an end-user's
> dependencies on a given library would be reduced if use of that library
> does not include test dependencies.
Indeed, but libraries may still have optional headers, and/or "bridging"
headers that glue two libraries together. All the headers we're talking
about are documented (at least to some degree), and are intended for end
users to at least experiment with. They're just not core to Boost.Math,
more like "fringe" if you prefer.