Boost logo

Boost :

Subject: [boost] [Review] Phoenix V3: Mini-review starts February 20th
From: Hartmut Kaiser (hartmut.kaiser_at_[hidden])
Date: 2011-02-21 07:32:27


Hi all,

Thomas Heller worked hard to address the outstanding issues of the original
Phoenix review. He ported Phoenix to Boost.Proto. As mandated by the
original Boost review, we will conduct a mini-review of his Phoenix V3
library.

This mini-review starts today, February 20th, 2011 and ends on March 2nd,
2011.

------------------

About the library:

The Phoenix library enables FP techniques such as higher order functions,
lambda (unnamed functions), currying (partial function application) and lazy
evaluation in C++. The focus is more on usefulness and practicality than
purity, elegance and strict adherence to FP principles.

Phoenix is a very important infrastructure library. It is currently a
utility library included with Spirit V2 and therefore is already available
for years from the latest Boost distributions (headers:
$BOOST_ROOT/boost/spirit/home/phoenix, docs:
$BOOST_ROOT/libs/spirit/phoenix, or
http://www.boost.org/doc/libs/1_45_0/libs/spirit/phoenix/index.html)

------------------

The code of new Phoenix V3 (that's what we mini-review) can be found at:

    https://svn.boost.org/svn/boost/sandbox/SOC/2010/phoenix3/

the documentation is at:

 
http://svn.boost.org/svn/boost/sandbox/SOC/2010/phoenix3/libs/phoenix/doc/ht
ml/index.html

------------------

Here are the questions raised during the initial review of Phoenix in
September 2008 (see here:
http://thread.gmane.org/gmane.comp.lib.boost.devel/180753):

<quote>
We will have a mini review before Phoenix gets merged to SVN to make sure
whether the feedback from the v2 review was accommodated. Additionally this
review will have to discuss:

- the breaking interface changes from v2
- the migration path from boost::bind and lambda to Phoenix
- how the interoperability with std::bind is solved (result_of semantics)
- C++0x features such as rvalue references and variadic templates
- the new extensibility mechanism
- unified placeholders and interoperability issues with other Proto-based
  DSELs (such as Spirit.Qi, Spirit.Karma, and Xpressive)
- compile times
</quote>

Please note that Phoenix already has been accepted as a Boost library. We
don't vote about that anymore. The purpose of this mini-review is to discuss
if the newly rewritten Phoenix V3 addresses the outstanding issues from the
main review. In the end I will have to make the decision whether to include
the new library into SVN trunk.

I really hope to see your participation in the discussions on the Boost
mailing lists!

Regards Hartmut
Review Manager

---------------
http://boost-spirit.com


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