|
Boost-Build : |
From: Robert Ramey (ramey_at_[hidden])
Date: 2007-11-01 18:33:06
"David Abrahams" <dave_at_[hidden]> wrote in message
news:87wst1pxnj.fsf_at_grogan.peloton...
>
> on Thu Nov 01 2007, "Robert Ramey" <ramey-AT-rrsd.com> wrote:
>
>>>> This is really confusing and annoying behavior.
>>>
>>> This is by-design,
>>
>> I'm aware of that. In fact, that is the substance of my complaint.
>> Its not that bjam is not a huge accomplishment in a technical
>> sense or that its this or that bug or whatever. My view
>> is the whole goal of a "smart program which figures out
>> what the user really should want" is a bad idea.
>
> That isn't a goal of Boost.Build.
>
> It does "try to figure out what the user wants" the same way that your
> C++ compiler does or any other moderately interesting program.
>
> I think you're pointing to a real problem, though I think your
> characterization of the problem is fairly useless to anyone who wants
> to improve things.
> I would restate it like this: the language that
> one uses to express what one wants the system to do has semantics that
> are not straightforward, and are sometimes counterintuitive and
> undocumented.
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? 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)
So i don't think that its a question of bjam syntax
being too opaque (though it is), its that whole
concept and goal is misguided and I would hope
that more effort is not invested without rethinking
it at a more fundamental level.
Robert Ramey
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk