[libstdc++ PATH] tr1::bind support

Douglas Gregor doug.gregor@gmail.com
Tue Mar 22 06:13:00 GMT 2005


On Mar 21, 2005, at 6:55 PM, Chris Jefferson wrote:

> Can I just query how long other people are finding programs take to 
> compile with tr1::bind?

Longer than I'd hoped :(

> I might have applied the patch incorrectly, as I have a different 
> version of <tuple> locally, but I'm finding simple files from the 
> testsuite (such as tr1/6_containers/tuple/tuple_size.cc), and in fact 
> anything that contains either <functional> or <tuple> is taking over 
> 30 seconds to compile! (1.4Ghz machine, 512MB ram).

I'm getting about 20 seconds per compile, on a slightly faster machine, 
but still an issue. I believe that the problem might actually be in 
preprocessing, because, e.g. bind_iterate.h gets included about 400 
times :) It's possible that we'll want to preprocess the sources (say, 
at configure time) to see if that helps.

> Apologises if is a false alarm and I've just broken my local copy, but 
> if this is in fact the case, would it be possible at least to seperate 
> out those parts of functional which tuple requires and put them into a 
> common file, rather than pulling all of functional into tuple?

Unfortunately, that's a bit harder than it sounds. At least, it brings 
in a lot more code than one would expect. reference_wrapper needs 
result_of, mem_fn, and some of the other core bits in <functional> We 
could factor those out into a common header and have tr1::bind and 
tr1::function (the major compile-time culprits, I'd guess) only in 
<functional>.

	Doug



More information about the Gcc-patches mailing list