Re: [boost] [ANN] Phoenix-2 prerelease

Joel de Guzman <joel@boost-consulting.com> writes:
Comments, feedback very welcome!
Organization
Care and attention to detail was given, painstakingly, to the design and implementation of Phoenix. The overall design of the library is well structured and clean.
Remarks like the last one usually cause me to be more suspicious of, than confident in, a library design. I suggest you strike it.
The library is organized in four layers:
The modules are completely orthogonal.
I'm not sure what that means. If you're going to say it, you should explain it.
The relationship between the layers is totally acyclic.
"The modules are orthogonal, with no cyclic dependencies" http://www.asne.org/index.cfm?ID=4364
Lower layers do not depend nor know the existence of higher layers.
"Lower layers do not depend on higher layers." http://www.asne.org/index.cfm?ID=4364
Modules in a layer do not depend on other modules in the same layer.
Wonderful!
This means for example that the client can completely discard Bind if she does not need it; or ^ that should be a comma
perhaps take out Operator and Statement and just use Function, which ^^^^^^^^^^^^ "she can leave"
is desireable in a pure FP application. ^^ "would be"
The library has grown from the original Phoenix but still comprises of only header files. There are no object files to link against. ^^ strike
Core
The lowest two layers comprise the core.
The Actor is the main concept behind the library. Lazy functions are abstracted as actors which are actually polymorphic functors.
That is one scary sentence. Can you simplify it? What are you really trying to say?
There are only 2 kinds of actors:
1. Primitives 2. Composites
Composites are composed of zero or more actors. Each actor in a composite can again be another composite. Primitives are atomic units and are not decomposable.
Again, what does "decomposable" mean?
Modules
Module Description
Function Lazy functions support (e.g. add)
Operator Lazy operators support (e.g. +)
Statement Lazy statments (e.g. if_, while_)
Object Lazy casts (e.g. static_cast_), object creation destruction (e.g. new_, delete_)
Scope Support for scopes, local variables and lambda-lambda
"lambda-lambda?"
Bind Lazy functions from simple monomorphic, plain functions, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Can't you say this with 1 or 2 words instead of 4?
member functions or member variables for deferred evaluation.
^^^^^^^^^^^^^^^^ "data members" What does "for deferred evaluation" add here?
Intrinsic Set of predefined "lazy" functions that work on STL ^^^^^^ strike containers and sequences (e.g. push_back).
I would call that module "container." It isn't the intrinsics of the phoenix library, but of the STL container library.
Algorithm Set of predefined "lazy" versions of the STL ^^^^^^ strike. algorithms (e.g. find_if).
Includes Module File Core #include <boost/spirit/phoenix/core.hpp> Function #include <boost/spirit/phoenix/function.hpp> Operator #include <boost/spirit/phoenix/operator.hpp> Statement #include <boost/spirit/phoenix/statement.hpp> Object #include <boost/spirit/phoenix/object.hpp> Scope #include <boost/spirit/phoenix/scope.hpp> Bind #include <boost/spirit/phoenix/bind.hpp> Intrinsic #include <boost/spirit/phoenix/intrinsic.hpp> Algorithm #include <boost/spirit/phoenix/algorithm.hpp>
At this point in the docs you'd do better to write it in English: Each module is defined in a header with the same base name. So for example, the core module is in <boost/spirit/phoenix/core>.
Finer grained include files are available per feature. See the ^ a semicolon would be good here succeeding sections.
-- Dave Abrahams Boost Consulting www.boost-consulting.com

David Abrahams wrote:
Joel de Guzman <joel@boost-consulting.com> writes:
Comments, feedback very welcome!
Wow. A flurry of editorial comments by no less than David! I'm very very pleased. I just came back from a short vacation. I'll study your comments as soon as I can. Thank you, thank you very much!
Oh what a coincidence! Just prior to my vacation, I picked up this book ("The Elements of Style" by E.B. White and William Strunk Jr.,). I acknowledge your comment sometime ago that I tend to be too "chatty". I'm studying english more. This book to me seemed like Scott Meyer's Effective C++ series, for english. Cool! Thanks! -- Joel de Guzman http://www.boost-consulting.com http://spirit.sf.net

Joel de Guzman wrote:
David Abrahams wrote:
Oh what a coincidence! Just prior to my vacation, I picked up this book ("The Elements of Style" by E.B. White and William Strunk Jr.,). I acknowledge your comment sometime ago that I tend to be too "chatty". I'm studying english more. This book to me seemed like Scott Meyer's Effective C++ series, for english. Cool!
That book has been the leading authority for fundamentally good expository writing in English for almost 50 years now. I remember using and studying it in high school. It is a very good guide. I am glad you have found it. However, like Scott Meyer's book, one eventually learns when to depart from the good advice given there. But getting the good advice given there first is invaluable.
participants (3)
-
David Abrahams
-
Edward Diener
-
Joel de Guzman