Boost logo

Boost :

From: Austin Bingham (abingham_at_[hidden])
Date: 2007-09-25 10:30:17


On 2007-09-19, David Abrahams <dave_at_[hidden]> wrote:
> Given an explicit representation of library dependencies we can, based
> on the directories containing changed files, quickly compute all the
> libraries whose tests need to be run and avoid evaluating the Jamfiles
> of other libraries.

Could we possibly use some dependency scanner, e.g. like in scons, that
dynamically finds dependencies rather than requiring that they be explicit?
If I understand, the explicit dependency statements you're talking about
are really already expressed in the header-inclusion tree. Since the tests
also (I assume) include the headers of the things they test, determining
which tests to run after you make some changes is really just a question
of including the tests themselves in the dependency calculations. That is,
make the running of the tests contingent upon their needing to be
rebuilt (due to either dependency changes or actual test changes).

The main benefit of this approach, of course, is that the decision to run
a test is fully automated and (assuming the scanner is correct) thorough.
There is no risk that the explicit dependency statements are over- or
under-specified.

The downsides are that the scanning may take time (though not much, in
my experience) and that you have to write a (potentially quite) complex
scanner. It would also, of course, complicate the build system to some
degree.

--
Austin Bingham

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk