Boost logo

Boost-Build :

From: David Abrahams (dave_at_[hidden])
Date: 2003-05-06 18:09:54


Aleksey Gurtovoy <agurtovoy_at_[hidden]> writes:

> David Abrahams wrote:
>> Aleksey Gurtovoy <agurtovoy_at_[hidden]> writes:
>> > I am afraid the original question is still open, though - besides
>> > fixing the issue itself, can we make sure that when something like
>> > this happens again in the future, bjam doesn't just quit the whole
>> > regression process? It's only one library that is broken, and
>> > terminating the whole thing on an error like "unknown dependent
>> > target" just doesn't seem right to me (I would understand if it
>> > crashed or something, but deliberatively quitting definitely seems
>> > wrong :).
>>
>>
>> Sure. You can grep for the error message in tools/build/*.jam and
>> replace
>>
>> EXIT
>>
>> with
>>
>> ECHO warning:
>
> Won't that break the standalone builds?

How so?

> I mean, EXIT is probably quite appropriate when you are just
> building the library itself; it's just not appropriate in the
> context of the batch regression testing.

I'm not picky; BBv1 is a dead end anyway. We're just keeping it
limping along until BBv2 gets finalized (soon).

> Also, what about a half-hundred of other EXIT's in tools/build/*.jam
> files? Some of them definitely seem to fall into the same category
> as the one we happened to bump into. We are definitely not in favor
> of the whole thing breaking again when a month later somebody checks
> in a target with an incompatible property or something like it.
>
> How about if instead of EXIT-ing or ECHO-ing we do something like
>
> report_error unknown dependent target $(main-target) ;
>
> and have 'report_error' decide whether it's appropriate to exit or not,
> depending on the context, e.g. by defining it differently for the regression
> builds?
>
> Does it make sense?

Sure, there are lots of options; if you look at BBv2 sources you'll
even see a wonderful backtrace rule. It's also possible to
selectively replace the EXIT rule with ECHO just for testing:

if --no-exit in $(ARGV)
{
IMPORT : ECHO : : EXIT ;
}

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com
 

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