Boost logo

Boost :

Subject: Re: [boost] [Review] Phoenix review starts today, September 21st
From: Daniel Walker (daniel.j.walker_at_[hidden])
Date: 2008-09-27 18:14:44

On Sat, Sep 27, 2008 at 7:39 AM, Joel de Guzman
<joel_at_[hidden]> wrote:
> While I understand and appreciate the comments raised thus far, I say
> that the review grossly magnifies these aspects while underrating
> the remaining 95% of the library. If you look at:,
> Values, References, Arguments, Composites, Lazy Operators, Lazy Statements
> Construct, New, Delete, Casts, Operator, Statement, Object, Scope,
> Bind will remain as-is. Only Lazy Functions and Inside Phoenix (the
> extension
> mechanism) will have some changes.
> Please, let's not throw out the baby with the bathwater.

OK, regarding babies in bathwater... :-) Again, throwing Phoenix out
of Boost is not the question. All of the existing functionality is
currently distributed with Boost.Spirit and will remain so. The issue
is where to go next.

I don't want to try to parse what's changed between Phoenix2 and
Phoenix3, but it's important to identify what's being reviewed. So,
just to get a since of the difference, I ran diff -qr on the two
versions and found that of 108 files 43 have been removed and 65
modified. To try to get a sense of the impact of the new Proto
backend, I ran grep -rle 'proto::' on Phoenix3 and found that of 66
files 27 matched, including bind.hpp.

We're not undervaluing Phoenix2; no one is tossing out babies, it will
remain in Boost.Spirit. We also shouldn't undervalue the changes that
bring us to Phoenix3. So, even though they may seem trivial if you are
familiar with the code, the changes between Phoenix2 and Phoenix3 are
at least pervasive. Reviewing Phoenix2 is not equivalent to reviewing

Daniel Walker

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