|
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