On Wed, Nov 22, 2017 at 2:43 PM, Stefan Seefeld via Boost < boost@lists.boost.org> 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.
I did have a look at the doc when you announced it, and was quickly turned of by the syntax, to be honest. My $0.02. --DD