I think these examples support my position, they do not refute it.
If you have to write plugins to describe the rules that walk the edges of the DAG, then you haven't captured the essence of Make. It isn't just the DAG, its also the ability to walk graph edges with a generic shell alone. Here's some examples of things that we're using it for:
- Compile C, C++, and FORTAN on a common DAG for 5 unique ABIs.
- Parallelizing and sequencing atmospheric analysis with orbital mechanics programs.
- Post-processing our regression test suite.
- Executing and verifying SystemVerilog tests.
- Generating documentation with Doxygen and LaTeX.
- Generating linear flash images and a compressed initial filesystem.
- Transforming said initial filesystem into a linkable object.
Make does all of things without any prior knowledge of any of them, because it just uses the shell to express how the edges are walked. In some cases, we build the program that traverses an edge and express that as just another dependency in the chain.
If you have to write and compile plugins into build2 to do things like that, then you haven't re-implemented Make. You've just created another purpose-dedicated build tool. That's fine if its what you set out to do. But that also means statements like "We believe, paraphrasing a famous quote, that those who do not understand make are condemned to reinvent it, poorly." do not belong in your documentation. Because I don't think you understand Make.