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 `python.run`.

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 acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk