On Wednesday, 16 March 2016 at 18:36:48 UTC, Mark Isaacson wrote:
From experience, it turns out that having a restricted language to specify your builds/dependencies is a very good thing.
Yes, and it's called a DSL.
You really don't really want a turning complete language for this; it just makes it harder to reason about.
Not in my experience. Builds that are complicated enough need a proper language, and when you do, you'd better hope that whatever you're using isn't XML-based (looking at you Ant) or something like that.
I've written quite a lot of non-trivial CMake code. The whole time I felt like I was bashing my head against the wall and everything would've been easier in Python, D, Ruby, whatever.
A good build system description should be declarative as much as possible, but turing-complete when needed.
Atila
