Boost logo

Boost :

Subject: Re: [boost] Announcement: Faber, a new build system based on bjam
From: Hans Dembinski (hans.dembinski_at_[hidden])
Date: 2017-11-29 10:46:16

> On 22. Nov 2017, at 15:42, Stefan Seefeld via Boost <boost_at_[hidden]> wrote:
>>>> # define some actions
>>>> compile = action('c++.compile', 'c++ -c -o $(<) $(>)')
>> Like Hans, I've also never been fond of $(<) or $(>).
>> You invoke Make heritage here for the terseness,
>> while previously you justified Boost.Build rewrite into Faber on clarity
>> grounds.
>> You can't have it both ways Stefan ;)
>> From a Shell perspective, $(<) evokes input to me, and $(>) output, the
>> reverse
>> of what they likely mean above, given the -o. Playing devil's advocate I
>> guess.
> From the C++ community I had expected a different reaction. Or perhaps
> the above should be spelled '<<' and '>>' ? :-)

You could maybe use $(in) and $(out). There is no ambiguity then and there are not many more characters to type either.

> But more seriously, I had hoped the discussion to be more focussed on
> general design than on spelling.

I value code readability (which includes avoiding ambiguity) a lot, as you can see in the other thread concerning the histogram library. It is not just bike-shedding, if there is an alternative that is less ambiguous/easier to read.

> I expect the majority of users will
> never see (nor care about) how actions are defined, as they will merely
> use pre-defined built-tin actions such as `c++.compile`,
> `fileutils.copy`, or ``.

I don't know about that. And also, why not make life more pleasant for the power user as well, who needs custom actions? Ideally, a software is appealing to both the casual and the power user.

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