Boost logo

Boost :

Subject: [boost] [phoenix 3] Review
From: Michael Caisse (boost_at_[hidden])
Date: 2011-03-03 04:49:13


I have been anticipating this mini-review since the Phoenix V2 review
results were first announced. I am a heavy user of Phoenix and am
excited to see it take it's place as a first class citizen. Thomas has
done an excellent job at surpassing the requirements for the review and
making Phoenix an extensible FP tool.

Executive Summary: Phoenix 3 has meet the requirements and should be
moved to the trunk for integration.

-----

The initial review concluded with the following main points needing to
be addressed in the mini-review.

- 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

Thomas has addressed all of the above points; however, I would like to
see two of them "documented" differently.

   o The Phoenix documentation should have a "What's New" section
      such as Spirit does. It can tersely represent the improvements,
      changes and most of all breaking-changes.

   o Compile time is often a concern with libraries that make
      heavy use of expression templates. While I personal don't
      care much about the subject, I also don't see an objective
      way to determine if it is better or worse with subsequent
      releases. Adding a compile time test would be ideal. This
      should be easily invoked and results from various compilers
      reported within the documentation.

-----

Not on the list of items to review:

   o At some point there should be a runtime benchmark added.
   o Minor doc diffs attached
   o function.qbk : factorial.cpp is missing
   o BOOST_PHOENIX_DEFINE_EXPRESSION_EXT_VARARG bottom of page
      has TBD for the Example

Thank you Thomas and the Phoenix team for such a wonderful library!
michael

-- 
Michael Caisse
Object Modeling Designs
www.objectmodelingdesigns.com



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