Boost logo

Boost :

Subject: Re: [boost] [Modularization] A new approach to header modularization
From: Vladimir Prus (vladimir_at_[hidden])
Date: 2009-05-29 03:51:10

Christopher Jefferson wrote:

> On 29 May 2009, at 07:49, Vladimir Prus wrote:
>> joaquin_at_[hidden] wrote:
>>> Emil Dotchevski escribió:
>>>> On Thu, May 28, 2009 at 11:15 PM, Joaquin M Lopez Munoz <joaquin_at_[hidden]
>>>> > wrote:
>>>>> Emil Dotchevski <emildotchevski <at>> writes:
>>>>>> On Thu, May 28, 2009 at 10:50 PM, <joaquin <at>> wrote:
>>>>>>> Why there's pressure from users to keep Boost libs header-only?
>>>>>>> Boost is
>>>>>>> for the users, so their reasons should be given proper weight.
>>>>>> One can not create good design (in general, not just in
>>>>>> software) by
>>>>>> asking the users what would they like.
>>>>> I'd rather not go into discussing such far-reaching issues
>>>>> as design theory, but you haven't asked my question:
>>>>> What are the particular reasons why users demand header-only
>>>>> libraries?
>>>> Probably different users have different reasons. One reason might be
>>>> that it makes Boost easier to install initially. What's your point?
>>> My point is that if there's pressure from users to have header-only
>>> libs (as
>>> you and also I recognize) I think the least we can do is try to
>>> understand and
>>> analyze these reasons to see their merit. If pressure were the other
>>> way around (i.e. users demanding that code be moved out of .hpps as
>>> much as possible) we wouldn't be having this sort of discussions.
>> It it my understanding (based on actually supporting users on IRC and
>> mailing lists for years), that the users who are mostly concerned
>> about
>> linking are either:
>> 1. Users who just crossed the chasm between the two popular platforms,
>> in either direction.
>> 2. Users who don't understand the difference between headers and
>> libraries
>> in general, and don't know how to use their IDE.
>> 3. Users who don't know C++.
>> Users in (1) group will adapt quickly. Users in groups (2) and (3)
>> probably won't be able to use Boost effectively until they do some
>> other learning.
> I have consistently found that boost seems to cause more problems for
> developers than all the other libraries I use put together, in terms
> of building and linking.
> I work with a large number of developers on users on many different
> OSes and processors, so we distribute as source. Some users use
> packaged copies of boost distributed with their system, other compile
> from source.

And, what exact problems are you having, and do those problems happen
with 1.39 and have you reported them?

>>> As a user, I can describe *my* reasons to favor header-only libs:
>>> 1. The whole bjam-driven building process is nontrivial and time and
>>> space consuming.
>> In 1.39, it is two commands in 1.39, on popular platforms. And
>> processors
>> are fast these days.
> Is if ./configure && make?

No, it's "./" and "bjam".

>>> 3. Bulding libs selectively is not as easy as it might seem, due to
>>> the
>>> fact that interlib dependencies might force you to build libB when
>>> using
>>> libA, and you don't know in advance.
>> And you should not care. If you add --with-filesystem, then the system
>> library will be built automatically.
> Most users aren't going to go around looking for options, they will
> assume the default ones do the right thing.

The defaults indeed do the right thing. I was replying to a statement as if
user *explicitly wants* to build specific subset of libraries, it has to
do something non-trivial. If you don't want to do anyting nontrivial, all
you need is:


Exactly that, without any arguments whatsoever.

- Volodya

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