Subject: Re: [boost] [netlib] Update: 0.9 will not be header-only
From: Eric Niebler (eric_at_[hidden])
Date: 2010-12-04 01:29:58
On 12/3/2010 7:58 PM, Joel de Guzman wrote:
> On 12/4/2010 12:45 AM, Dean Michael Berris wrote:
>> The biggest culprit at the moment has been the implementation of the
>> URI parser that uses Boost.Spirit Qi and>10 rules in the URI parsing
>> grammar. The URI implementation is really declarative and nicely
>> written (thanks go out to Jeroen Habraken for making that happen). The
>> down-side of this has been the compile times: building the simple HTTP
>> client takes close to one minute on the machine I'm using -- and by
>> moving it to an externally-linked static lib, the compile of the same
>> HTTP client is cut down to 10 seconds. Before you ask if I'm using
>> GCC, the answer is no, I'm using Clang when developing so that I get
>> as much speed as I can when doing the edit-rebuild-test cycle.
> Ouch! :P What the compiler giveth, Spirit taketh. It's time we do something
> about it.
It would probably pay to start by running Steven's template profiler on
Dean's URI parser. Let's see who's instantiating all those templates.
I think much can be done in both Proto and Fusion to speed things up. In
particular, I'd like Proto to do what MPL does with the preprocessed
headers. Fusion could probably do the same. Who wants to help? :-)
In the mean time, I HIGHLY recommend precompiled headers for bringing
down compile times for TMP-heavy libraries like Spirit and xpressive.
-- Eric Niebler BoostPro Computing http://www.boostpro.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk