Boost logo

Boost :

From: René Ferdinand Rivera Morell (grafikrobot_at_[hidden])
Date: 2022-12-23 14:57:02


On Fri, Dec 23, 2022 at 5:14 AM Hans Dembinski via Boost
<boost_at_[hidden]> wrote:
>
> Hi all,
>
> since there were concerns that the email list is so quiet, here is some noise.

Since, I guess, we are looking to fluff up this list. I guess I can
add semi-coherent words ;-)

> Is someone willing to explain to me why we have Predef and Config?

There are probably a couple of people who can explain. I might even be
one of them. And this would be easier to explain if the Config
documentation was better. Specifically in the area of stating its
goal, what it's meant to do, its domain of operation, its reason for
existence. Perhaps we are supposed to know everything just from its
name? Do we dare ask for someone to volunteer such information be
communicated in the documentation? Or do we all just know? So let me
look at Predef, it says:

==
This library defines a set of compiler, architecture, operating
system, library, and other version numbers from the information it can
gather of C, C++, Objective C, and Objective C++ predefined macros or
those defined in generally available headers.
==

Look at that. Seems clear to me what Predef does. I know I'm biased.
Since I wrote that sentence. Should one write something else to make
it clearer? What is missing from the description and documentation of
Predef? Let's check.. reading the following sentence.

==
The idea for this library grew out of a proposal to extend the Boost
Config library to provide more, and consistent, information than the
feature definitions it supports.
==

> It looks like these two libraries have a strong overlap in scope.

Hm, interesting. It does appear there is some overlap. It says so
right there as "extend the Boost Config library". But can't really say
for sure as the scope of Config is technically undefined. I clearly
had some idea of what the scope of Config was at the time I wrote the
above. There is one clear aspect though: Predef provides "more, and
consistent, information". Yet, there is one clue to follow. That
sentence says "feature definitions it [Config] supports". Clearly, at
minimum, Config provides "feature definitions". Since Boost is "Boost
C++ Libraries", we can only assume it's C++ features it's referring
to. And if we check the first sentence, i.e. the goal of Predef, it
doesn't mention C++ features. Hence, there appears to be a clear
dividing line in what Predef covers.

But let me ask you.. What do you think is the overlap? What do you
think makes it strong?

> Shouldn’t they be merged?

What an interesting question. It brings up some other questions to
mind. So let me rephrase your question(s).. Why should they be merged?
What is gained by merging? What is lost by merging? Are there
alternatives to merging them?

HTH

-- 
-- René Ferdinand Rivera Morell
-- Don't Assume Anything  -- No Supone Nada
-- Robot Dreams - http://robot-dreams.net

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk