Boost logo

Boost-Build :

From: David Abrahams (dave_at_[hidden])
Date: 2007-11-01 20:00:38

on Thu Nov 01 2007, "Robert Ramey" <> wrote:

> "David Abrahams" <dave_at_[hidden]> wrote in message
> news:87wst1pxnj.fsf_at_grogan.peloton...
> Let me try to be a little more constructive.
> I got to our local barbeque place once in a while where they sell sodas.
> Its a really cool simple system.
> a) I pay for my soda at the cashier.
> b) she gives me a cup depending on the size I need.
> c) I amble over to soda machine to fill up while someone
> is preparing my order (This is a parallell build system).
> d) The soda machine has a bunch of dispensors for
> ice, different sodas, lemonade, ice tea.
> e) So I put in a little ice, then some coke (the real thing).
> and then some lemonade. I don't quite fill it to the top
> as I taste it when its about an inch short. Then I add
> coke and/or lemonade untill the top. Now I have
> exactly what I want.
> In other places the fill my order over the counter.
> For lots of people this is just fine.
> This means that I can't override it by putting in
> lemonade. Of course, to someone such as myself
> this is unsatisfactory.
> If I wanted to automate this process, I would
> need a butler who would watch me do it and
> remember the next time so when I walked
> upto the soda machine, the butler would
> remember me and say - ah mister ramey,
> your usual?

For the most part, your user-config.jam serves the purpose of
remembering "your usual."

> and I would say yes, unless I want
> to override with "Not today james, lets push
> the envelope. Try iced tea instead of coke."
> So I have pritives, coke, ice, lemonade,
> I have comonly preferred composition (recipes)
> (standard coke and ice).
> on which I can base new composition
> which can be easily understood and easily overriden.
> (put in some lemonade)
> and saved as a macro ( the butler)

The idea is to make the usual thing simple and unusual things
possible. This is not a new idea. Boost.Build tries (sometimes
unsuccessfully, IMO) to do the same thing.

> So i don't think that its a question of bjam syntax being too opaque
> (though it is),

Oh, I didn't say the syntax is too opaque. I said the semantics are
not straightforward and sometimes unknowable. It's a subtle but
important difference. In this case, the syntax is clear as day, but
you ran into very surprising semantics.

> its that whole concept and goal is misguided

what concept? what goal?

> and I would hope that more effort is not invested without rethinking
> it at a more fundamental level.

Again, very un-constructive. What kind of rethinking is needed?

Just imagine someone had said "the whole concept and goal of
Boost.Serialization is misguided; it needs to be re-thought at a
fundamental level. The whole idea of a library that tries to figure
out what the user should want to do makes no sense." How would you
use that feedback to change anything?

Suppose we re-think Boost.Build at a fundamental level. How do we
even know the fundamentals we're examining have anything to do with
your problems? You've given us absolutely nothing to go on.

Dave Abrahams
Boost Consulting

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at