Boost logo

Boost :

Subject: Re: [boost] [phoenix] compile-time performance
From: Eric Niebler (eric_at_[hidden])
Date: 2011-09-12 23:38:44

On 9/12/2011 4:45 PM, Thomas Heller wrote:
> On Mon, Sep 12, 2011 at 8:54 PM, Eric Niebler <eric_at_[hidden]> wrote:
>> On 9/12/2011 4:06 AM, Thomas Heller wrote:
>>> FWIW, there are some unit tests that outperform the compile times of
>>> Phoenix2 (with gcc), the current bad hit on compile times seem to
>>> only occur with let, lambda and switch/case expressions.
>> This /suggests/ to me that the core of Phx3 is sound, but that the
>> implementation of let, lambda, and switch are heavy. But I'm not blaming
>> Thomas. I'm just suggesting a logical place to begin an
>> investigation.
> FWIW, i experimented with different implementations, I even almost
> identically (as far as i could) copied the phx2 implementation.
> For the implementation right now I have several suspects. First of
> all, i think the code of the mentioned parts is very ugly (both of V2
> and V3). Second of all, there some pretty severe type transformations
> going on, repeated calls to fusion::make_map etc. I am absolutely sure
> that there is quite some space for improvement.

<looks on trunk>

fusion::make_map doesn't appear in the phoenix code anywhere. I see
fusion::map appears in scope/detail/make_locals.hpp, but that header
doesn't seem to get included from anywhere except itself, AFAICT. So,
uh, what's up with that?

Eric Niebler
BoostPro Computing

Boost list run by bdawes at, gregod at, cpdaniel at, john at