Boost logo

Boost :

Subject: Re: [boost] Announcement: Faber, a new build system based on bjam
From: Stefan Seefeld (stefan_at_[hidden])
Date: 2017-11-22 14:42:51


On 22.11.2017 09:33, Dominique Devienne via Boost wrote:
> On Wed, Nov 22, 2017 at 2:43 PM, Stefan Seefeld via Boost <
> boost_at_[hidden]> wrote:
>
>> On 22.11.2017 05:12, Hans Dembinski via Boost wrote:
>>> and neither does Faber, it seems. The Hello World example in the Faber
>> docs reminds me a lot of Makefiles, because of the $(<) and $(>) syntax.
>>
>> Yes, intentionally so. (Well, also because that's what bjam uses, and I
>> didn't see any reason to change that.) A scheduling tool that invokes
>> external tools to update artefacts needs some kind of DSL, and I think
>> constructs such as $(>) seem rather intuitive. The fact that `make` (as
>> the de-facto standard in UNIX land) uses the same language can only help.
>>
>>> # 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 '>>' ? :-)
But more seriously, I had hoped the discussion to be more focussed on
general design than on spelling. 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`.

Stefan

-- 
      ...ich hab' noch einen Koffer in Berlin...
    

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk