Boost logo

Boost-Build :

From: David Abrahams (dave_at_[hidden])
Date: 2003-12-02 09:59:24


Vladimir Prus <ghost_at_[hidden]> writes:

> I'm trying to make the final optimization pass on generated headers. As you
> know, when constructing "exe", V2 adds implicit -I paths to all target paths,
> so that #includes of generated headers work.
>
> This was optimized recently, but still, those extra includes cause performance
> problems. For example, for Boost regression tests, I bet that <boost/
> config.hpp> is scanned once for *each tested library*, since when each
> library is compiled it has additional -I option, which is different for each
> library. So, scanner has no choice but to rescan header several times with
> those different extra include paths.
>
> I think I know a good solution. Now, the action class which compiles cpp files
> just adds <include> properties for targets in the same main target. Why don't
> we find only targets which type is derived from "H", and add paths of those
> targets?
>
> So, if no headers are generated, you get no extra include paths, and there's
> no penalty to pay.
>
> I even implemented this solution. All tests pass and for regression tests I
> get 2x speedup over current code (and besides, over v1, too).
>
> Anybody sees any serious problems with the above?

No, and I am really excited about the 2x speedup! Great work!

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