Subject: Re: [Boost-build] Early bjam abort
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2012-04-27 15:10:50
On 04/27/2012 10:58 AM, Nogradi, Chris wrote:
>> I will fix this by tomorrow at the latest.
> Based on the fix I saw in JamPlus for the similar issue, I am guessing this is going to take some time.
I have a 1 line fix that makes your test
case work, but I haven't figured out a
way to make it completely correct without
totally killing performance. I've attached
this patch here. I don't know how much
it will help for your real project.
It looks to me as though to really fix
this, all strongly connected components
of the dependency graph need to be
detected and collapsed into a single
vertex. It's pretty easy to handle this
in make0, but I haven't worked out
a good way to detect cycles when make1c
adds a vertex. All the algorithms for
strongly connected components that
I could find seem to rely on depth
first search and won't work at all
if the traversal order changes.
The original fix proposed on the jamming
mailing list would solve the problem,
but taking the transitive closure of the
dependency graph for internal nodes is
way too expensive. The fix in JamPlus
could probably be adapted for generated
headers, but I don't believe that it's
really correct to begin with.
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk