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@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.
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...