On Tuesday, 3 February 2015 at 21:04:46 UTC, H. S. Teoh wrote:

In addition to an overhaul of the core algorithm, tup also has some clever tricks, like wrapping libc of executed commands, so that all *actual* inputs to the compiler (and other build commands) are included in the dependency graph -- if the compiler reads /usr/include/stdio.h, for example, tup will know that the source file depends on stdio.h -- and this *without* needing to scan the source file manually or asking
the user to specify such tedious things.

There's more, using this trick, it also check the output of the compiler: orphans or unspecified targets are not allowed. In this way, it has the complete graph of what is generated by the build process, and, literally, there's no need for a clean, ever.

If you modify a target file, tup will warn you that it will be overwritten; if you add a build rule that will output a new file, overwriting something that already exists, it will refuse to run, and will ask you to remove the current file, and so on...

We are using it a lot, here at work, and we are really enjoying it: we've a D tool that emits tup rules, for the chronicle... ;-)
---
P

Reply via email to