Complicate the test build a bit to show unnecessary dependency re-checking.

'./redo -d test' reveals that we check and re-check things like CC and LD
even when they're children of objects that don't need to be rebuilt, and who
we've already checked earlier in the build cycle.  We need to be a little
smarter about pruning if we want dependency checking to be fast.
This commit is contained in:
Avery Pennarun 2010-11-12 22:15:34 -08:00
commit 3c2fc49c63
6 changed files with 15 additions and 4 deletions

8
TODO
View file

@ -3,7 +3,11 @@
jwack jobserver jwack jobserver
make compatibility make compatibility
sockety interface sockety interface
sqlite .redo database sqlite .redo database?
rename --ifchange/--ifcreate to separate programs rename --ifchange/--ifcreate to separate programs
rewrite ifchange/ifcreate in C rewrite ifchange/ifcreate in C
always update database atomically?
find the right .repo dir automatically
cd into subdir automatically
'redo clean' should work
aggressively mark stuff as done in the .redo database

View file

@ -1 +1 @@
rm -f t/hello t/*.o *~ .*~ t/*~ t/.*~ *.pyc t/CC t/LD rm -f t/hello t/[by]ellow t/*.o *~ .*~ t/*~ t/.*~ *.pyc t/CC t/LD

2
t/bellow.do Normal file
View file

@ -0,0 +1,2 @@
redo --ifchange LD yellow.o
./LD bellow yellow.o

View file

@ -1 +1,2 @@
redo --ifchange hello redo --ifchange hello yellow bellow

2
t/yellow.do Normal file
View file

@ -0,0 +1,2 @@
redo --ifchange LD yellow.o
./LD yellow yellow.o

2
t/yellow.o.do Normal file
View file

@ -0,0 +1,2 @@
redo --ifchange CC hello.c
gcc -o $3 -c hello.c