-
Notifications
You must be signed in to change notification settings - Fork 8
extend process.sh to support patch stages #22
Conversation
the lower-case one is the right one, and the upper-case one messes with mac clients something terrible
The idea is that we want to support incremental tests where we do some base build step and then apply a series of patches. We want to track the compilation time after each of these patches separately. The model is that from one directory $DIR we will create N files, one for each patch. They will be named $DIR@$PATCH -- they are basically independent tests from the POV of the front-end. This is achieved by extending the makefile protocol mildly. There is now a new target `make patches` that emits a list of patch names. These should include the separator (e.g., `@foo`, `@bar`). If the list of patches returned is empty, the code works as before. We execute '(make all; make touch)+ make clean'. The results from 'make all' are stored in `$dir--$DATE--$i`. If the last of patches is *non-empty* (say '@A @b'), then we execute '(make all@A; make all@B; make touch)+ make clean'. The results from 'make all' are stored in `$dir@A--$DATE--$i` and `$dir@B--$DATE--$i`. The naming convention for variants is as follows: @NNN-text where NN is 000, 010, 020, 030, etc, and text is some useful description. The @ is a distinctive separator we can special-case in the front-end later.
we first build normally, then incrementally (with no saved state), and finally incrementally again (without changing anything)
cd $RUST_DIR | ||
git show HEAD -s >$TIMES_DIR/raw/$dir$PATCH--$DATE--$i.log | ||
cd $START/$dir | ||
echo "rustc: ./$dir" >>$TIMES_DIR/raw/$dir$PATCH--$DATE--$i.log |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think I need to actually to change this to rustc: ./$dir$PATH
, but that will presumably require updating process.py as well
Note: this needs rust-lang-nursery/rustc-timing-scripts#1 I think. |
Also, I added a new test ( |
Ah I remember now that in the makefile where I am touching a bunch of files, this was to workaround a mac bug where cargo will fail to rebuild even if files have changed -- because the mac "detect files that changed" facility is too slow to notice the changes. I added the calls to |
This change broke the
|
@nnethercote do you mean |
Sorry, yes, compare.py. |
The idea is that we want to support incremental tests where we do some
base build step and then apply a series of patches. We want to track the
compilation time after each of these patches separately. The model is
that from one directory
$DIR
we will create N files, one for eachpatch. They will be named
$DIR@$PATCH
-- they are basically independenttests from the POV of the front-end.
This is achieved by extending the makefile protocol mildly. There is now
a new target
make patches
that emits a list of patch names. Theseshould include the separator (e.g.,
@foo
,@bar
).If the list of patches returned is empty, the code works as before.
We execute '(make all; make touch)+ make clean'. The results from
'make all' are stored in
$dir--$DATE--$i
.If the last of patches is non-empty (say '@A @b'), then we execute
'(make all@A; make all@B; make touch)+ make clean'. The results from
'make all' are stored in
$dir@A--$DATE--$i
and$dir@B--$DATE--$i
.The naming convention for variants is as follows:
where NN is 000, 010, 020, 030, etc, and text is some useful description.
The @ is a distinctive separator we can special-case in the front-end
later.