Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2003-02-03 10:29:28


Jürgen Hunold wrote:
> Hi !
>
> I've managed to build my applications using V2.
> All programs build by bjam V2 work.
> Great work !
>
> But I've encountered some problems.
> First, speed. bjam needs 60 minutes (yes, sixty) to produce the first
> "..patience" line. Is there a possibility to enable .jamdeps support
> for V2 ?

Oh... that's not nice. How many targets are there in your project?
Secondly, could you run bjam with "-d+10" switch, redirect the output
to file and send that file? (Just to make sure: "-d+10" should be the
first thing on Jam's command line).

V2 is quite slow at the moment, and I've noticed that too. However, it
takes about 10 secs on Boost tree on my machine.

I believe it's slow not because of scanning, but because of some
problems with the code. My profiling indicates, that for one case it runs
for 6.8 seconds, of which 6.2 are spend converting targets from internal
form to real Jam targets and half of that time we're computing the paths
for targets! Further, about 1 secs we're checking if features are valid
and 3 seconds are wasted asking for attributes of features.

That's bad, but it's also interesting because it's not the place where
I'd expect performance problems. Looks like we're just using low-level
structures (list of string), which cannot be optimized. I have a plan
of improving that, but before starting, I'd like to look at your profiling
data.

> Second, I've configured bjam to "default-build release" in
> toplevel-Jamfile.
> When I invoke bjam --v2 debug in this directory, it tells me:
>
> hunold_at_lin17 ~/src $ bjam debug --v2
> /ive/hunold/packages/boost/tools/build/new/project.jam:504: in
> project.attribute
> warning: rulename $($(project).attributes).get expands to empty string
> /ive/hunold/packages/boost/tools/build/new/targets.jam:150: in
> object(project-target)@14.direct-build-request
> /ive/hunold/packages/boost/tools/build/new/targets.jam:151: in
> object(project-target)@1.direct-build-request

It looks like top-level project says "build-project" on some other project,
and that some other projects says "build-project" on another one, and that
bombs. This looks pretty strange. Can you:

1. Send the Jamfiles to me, or
2. Add "ECHO $(pn) ; " right before line 149 of targets.jam and tell what it
produces before crashing.

> and when invoked in subdir Q2d
> hunold_at_lin17 ~/src/Q2d $ bjam debug --v2
> warning: skipping build of project /Q2d at .

This basically means that requirement for the project are link-incompatible
with the build request. Are you sure there's no "<variant>debug" in project's
requirements?

- Volodya

 


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