Boost logo

Boost-Build :

From: Andrey Melnikov (melnikov_at_[hidden])
Date: 2005-10-18 13:41:31


David Abrahams wrote:
>
> I always thought that was better too, but then we constantly hear from
> new users who can't tell what the build system is doing, and who find
> these "actions" messages cryptic. For those of us who've been around
> the block a little bit longer, I think it should be possible to set up
> the output preferences differently. For some of users, it has been
> suggested, even "actions" are too much -- some would like to see
> nothing more than a "rotating bar" | / - \ | / - ...
>
> Well, this seems like sufficient resistance that I'm not going to act
> right away, but I'd like to hear more from those concerned about
> whether this is a problem.
>
I always use -d0.

In my projects, the build system configuration is changed relatively
rarely. Most of the time I make mistakes in C++ code, not in the build
system. So compiler messages are the most important for me, and I'd like
build system to display as little messages as possible.

The MSVC IDE parses the compiler messages, but the parser is still very
buggy as of 2005 June CTP. It has always been unable to parse complex
multi-line error messages and display them in Tasks/Errors panes
correctly, and I still have to look at the raw C++ compiler output in
the 21st century. So I cannot rely on the IDE hiding BB messages from me.

I don't want to see "Found X targets, updating Y targets" messages. I
want to see just "N targets failed to update" and/or "msvc.compile.c++
failed to update a.obj" message only if something wrong happens.

Just like I don't want to see stack traces inside OS or C Runtime most
of the time, I don't want to see stack traces inside boost.build itself.
Most of the time only a couple of top call stack frames are needed to
locate the problem in my code, and it takes a lot of time digging from
builtin.jam to upper levels. I don't know how this can be improved though.

For targets, I don't need to know the toolset, language and
configuration being used. I think that messages like

a.cpp : a.obj a.rsp

would illustrate enough information about the build progress for me.

MSVC compiler does something like this, it displays just the names:

a.cpp
b.cpp

and I'm pretty satisfied with the output.

The (very long) command lines are useful when you most likely have some
problems with the build configuration. E.g. when you compile a
third-party application and want it doesn't compile. In this case, it
isn't likely that the problem is inside the sources, and full command
lines are really important.

If RSP files are used, the exact command lines are very cryptic.

echo blablabla >>rsp12844
call [averylongpath]vcvars.bat
cl [10switches] @rsp1284 [10moreswitches]

stuff is hardly human-readable.

I didn't use BB in big real-life projects, but this was my first
impression about the messages it produces. The most of them are too
complex for me to understand, and just introduce more confusion.

Andrey

 


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