Boost logo

Boost :

Subject: Re: [boost] [Review] Phoenix review starts today, September 21st
From: Joel de Guzman (joel_at_[hidden])
Date: 2008-09-29 20:35:33


Daniel Walker wrote:
> On Mon, Sep 29, 2008 at 12:06 PM, Eric Niebler
> <eric_at_[hidden]> wrote:
>> Daniel Walker wrote:
>>> As I understand Joel's proposal he intends to never release V2 as a
>>> top-level library but instead release V3 as an upgrade to
>>> Boost.Lambda. That's certainly a good way to go, and I support it. But
>>> if that's the case, let's review V3 when it's ready for review rather
>>> than giving our stamp of approval to V2. Again, there are several
>>> reasons V2 should remain in Boost.Spirit and not become a top-level
>>> library: yet another incompatible bind, yet more incompatible
>>> placeholders, etc. But there is every reason that V3 should eventually
>>> become the top-level replacement of Boost.Lambda: extendability via
>>> Proto, compatibility (at last) between lambda, bind,
>>> std::placeholders, etc. So though I vote no on accepting V2 as a
>>> top-level library, I support the plan and look forward to the actual
>>> final product.
>> I think your points are valid. IMO, a full (re-)review of v3 would largely
>> cover the same ground as the current v2 review. Perhaps as a compromise, we
>> could wind up the v2 review with a basic yea or nea. If we agree we want
>> phoenix, we can put phoenix v3 up for a mini-review before it is merged to
>> trunk. The review would focus on:
>>
>> - Whether the feedback from the v2 review was accommodated
>> - The new extensibility mechanism
>> - The breaking interface changes from v2
>> - The migration path from lambda to phoenix
>> - Interoperability with boost::bind and std::bind
>> - Interoperability with other Proto-based DSELs
>> - Compile times
>>
>> I see phoenix v3 as a hugely important step toward Boost's DSEL unification,
>> so I'm generally in favor of getting more eyes on it before it's shipped.
>
> This sounds reasonable to me. Could I vote for acceptance on the
> condition of passage of a final code review prior to release? In other
> words, release of the final V3 would be subject to a formal review and
> a consensus vote that everything is good to go. Replacing Boost.Lambda
> is a big enough deal to merit two reviews, actually.

I'm in favor of a second review. I think that's a reasonable solution.
I slept after reading Giovanni's post, which I though was the hardest
to answer:

Giovanni Piero Deretta wrote:
> So, assuming that phoenix will be accepted, on what will be based as
> the first official phoenix release in boost? On the current
> implementation (with minor improvements like result_of compatiblity)
> or on a proto-based variant (like phoenix v3).
>
> In the first case it means that when-if a proto based is available, it
> might break compatibility with any eventual user extensions.
>
> In the second case it is a bit tricky for a reviewer point of view,
> because part of the library under review (notably the extension hooks)
> is not what will end up in boost.
>
> Even if the second point were the adopted solution, I would still vote
> in favor of Phoenix because, seeing the precedents, I would trust Joel
> to come up with a good implementation, but I think it would be a bit
> against the spirit of a boost review.
>
> Note that I think that the extension interface (and its documentation)
> is the most important part of Phoenix because, IMHO, it is where the
> "added value" with respect to boost.lambda lies.
>
> The best solution would be that the implementation that goes into
> boost will be based on proto *and* will retain more or less the same
> extension interface.

I didn't have an answer and to be honest, he's right! I couldn't
answer this one because I do not have a detailed road-map as to
how the extension mechanism would be supported in the post V2
world: the proto rendition. While the interface remains mostly
stable, the extension interface is the part that gets the biggest
hit from the proto port. The current proto version of the extension
is admitedly not good enough. And I do agree with Giovanni that
it is, at least, one of the most important parts of Phoenix.

Eric's proposal solves this dilemma. I'm all for a second review.
The review has proven to be sooo productive. I'm very pleased
with the amount of feedback that it has generated. I enjoy
reading each post and comment from such highly intelligent
people and I want to have more of it, just to make sure that
we are on the right track.

Regards,

-- 
Joel de Guzman
http://www.boostpro.com
http://spirit.sf.net

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk