Boost logo

Boost-Build :

From: Jürgen Hunold (hunold+lists.Boost_at_[hidden])
Date: 2003-02-04 10:27:40

On Monday 03 February 2003 16:29, Vladimir Prus wrote:
> Jürgen Hunold wrote:

> 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).

Please find the output attached.
bjam says it found 40000 targets and updates 4005 targets (including
dirs) when building from scratch. These are two projects sharing some
basic (qt-related) libraries, build 10 different applications. Quite a
stress test ;-) Building takes approx. 3 hours, 1 hour bjam and 2 hours
to compile and link...

> 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.

Even less on my machine (athlon 1800+ , 1GB memory)

> 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.

Yes, always wait for profiling data...

> 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.

Well, it produces the names of the two targets/dirs to build.
On top-level Jamfile I declare build-project dir1.
There I descend with build-project dir2.
And then same message again.

> 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?

yes. I've reduced all Jamfile to the minimun, I hope.



* Dipl.-Math. Jürgen Hunold ! Institut für Verkehrswesen, Eisenbahnbau
* voice: ++49 511 762-2529 ! und -betrieb, Universität Hannover  
* fax : ++49 511 762-3001 ! Appelstrasse 9a, D-30167 Hannover
* hunold_at_[hidden] !
 --------------Boundary-00=_4YISE8ZTW1OI9FXOEXN1 Content-Type: application/x-gzip;
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="bjam.out.gz"
[Attachment content not displayed.] --------------Boundary-00=_4YISE8ZTW1OI9FXOEXN1-- 

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at