Git, the D package manager

Paolo Invernizzi via Digitalmars-d digitalmars-d at puremagic.com
Wed Feb 4 04:23:21 PST 2015


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


More information about the Digitalmars-d mailing list