Boost logo

Boost-Build :

From: David Abrahams (dave_at_[hidden])
Date: 2002-10-17 08:45:19


Beman Dawes <bdawes_at_[hidden]> writes:

> One of the things that makes Boost.Build hard to use is that error
> messages aren't very helpful, or are even downright misleading.
> (I'm guessing that this is a problem inherited from jam, rather than
> anything the Boost.Build team has done.)

No, neither. It's something the Boost.Build team _hasn't_ done. This
is what happens if you don't check your inputs carefully and early,
but instead plough ahead assuming that they're valid.

> I'm also guessing that most of the trouble is caused by a very few
> messages, so it might not be all that hard to fix. Thus this posting.
>
> Trying to run the Win32 regression tests on the main trunk for the first
> time since the 1.29.0 release produced a couple of examples (probably
> because developers forgot to update status/Jamfile):
>
> "don't know how to make
> <status>libs/function/test\deprecated_syntax_test.cpp"
>
> If the message for this one was "file not found" with the actual absolute
> file path, it would be easier to interpret.

Hum. I don't think this one is so bad. In any case, this one is in
fact coming from Jam's backend, and I'm not sure how easy it is to
make it better. Source targets that Jam looks for get searched in a
sequence of directories known as SEARCH. You can't specify an actual
absolute file path because there isn't one. The file wasn't found in
some sequence of possible directories. Well, I guess we could GLOB for
user-specified source in the front-end proccessing. That might slow
things down a little.

All in all, I recognize this particular problem but consider it to be
low-priority.

> "don't know how to make <borland><*><cxxflags>-w-8026 -w-8027 -w-8057
> -w-8084 -w-8092"
>
> That one is so obscure to me as a non-expert user that I have no idea what
> is wrong, so can't suggest better wording. The same attempt to suppress
> borland warnings appears a number of times in the Jamfile, why one is
> somehow deficient is a mystery.

I think when you were copying from this, you overlooked a colon:

: [ run libs/utility/counting_iterator_test.cpp : # args
here----------------------------------------------------^^^^^^^^
: # input files
: # requirements

# borland warns incorrectly in this case, so often that
# successful compilation is prevented.
<borland><*><cxxflags>"-w-8091 -w-8092"

> I'd really be surprised if better diagnostic messages didn't reduce support
> requests and reduce user frustration.

I agree. V2 has much more-rigorous input checking. However, for this
particular problem I don't think there's any way we could do much
better than:

Input file "<borland><*><cxxflags>-w-8091 -w-8092" not found

Do you think that would be much better than what you're seeing?

-- 
David Abrahams
dave_at_[hidden] * http://www.boost-consulting.com
Building C/C++ Extensions for Python: Dec 9-11, Austin, TX
http://www.enthought.com/training/building_extensions.html
 

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