Boost logo

Boost Announcement :

Subject: [Boost-announce] [Review] Phoenix review starts today, September 21st
From: Hartmut Kaiser (hartmut.kaiser_at_[hidden])
Date: 2008-09-21 19:58:13

Hi all,

The review of Joel de Guzmans and Dan Marsdens Phoenix V2 library starts
today, September 21st 2008, and will end on September 30th.
I really hope to see your vote and your participation in the discussions on
the Boost mailing lists!


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.

History: Phoenix is a mature library from years of use as a sub-project
under Spirit where it serves its purpose for semantic action handling.
Phoenix predates Lambda's acceptance into Boost, but not Lambda itself. When
Lambda was reviewed, it was concluded that both libraries were to be merged,
and work on it began, culminating in Phoenix V2, what you are seeing now (an
interesting offshoot of this effort is Boost.Fusion. We needed a powerful
tuple facility with algorithms to get the design right). Recently, Eric
Niebler did a (fully compatible) port to proto making use of boost.typeof
for result type deduction. Eric's port, while significant, will not be the
subject of the review, but can be regarded as the future of Phoenix (Phoenix

Phoenix V2 is currently a utility library included with Spirit V2 and
therefore is already available from the latest Boost distributions (headers:
$BOOST_ROOT/boost/spirit/home/phoenix, docs:
$BOOST_ROOT/libs/spirit/phoenix, or

Phoenix V2 is a very important infrastructure library, IHMO. It has been
used for several other library writing efforts already, most notably, Spirit


Please always state in your review, whether you think the library should be
accepted as a Boost library!

Additionally please consider giving feedback on the following general

- What is your evaluation of the design?
- What is your evaluation of the implementation?
- What is your evaluation of the documentation?
- What is your evaluation of the potential usefulness of the library?
- Did you try to use the library? With what compiler? Did you have any
- How much effort did you put into your evaluation? A glance? A quick
reading? In-depth study?
- Are you knowledgeable about the problem domain?

Regards Hartmut
Review Manager

Boost-announce list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at