Boost logo

Boost :

Subject: Re: [boost] [Boost-announce] [metaparse] Review period starts May 25th and ends June 7th
From: Michael Caisse (mcaisse-lists_at_[hidden])
Date: 2015-06-08 03:37:51

Hello Abel and Christophe -

First off, thank you Abel for submitting such an amazing library. The
quality of the documentation and code is wonderful and it has been a
pleasure to review Metaparse.

Thank you Christophe for taking time to act as a review manager.

I reviewed Abel's updated version that follows the newer modular layout:

I used the documentation link that was originally posted.

On 05/19/2015 02:39 PM, Christophe Henry wrote:

> And a very complete tutorial:
> The tutorial also offers the nice feature of a link to metashell for
> quick-starting trying out the library:

I had some trouble using the on-line version of metashell. It kept
timing out. I downloaded a recent version and struggled with the setup
for a bit trying to get the include paths correct. Metashell is a very
neat utility; however, you might want to add a quick start appendix for
using Metashell (local version) with Metaparse considering the examples
are illustrated using the tool.

> Boost.Msm v3 also implements a new compile-time strings based front-end
> called eUML2 to demonstrate the power of the library and the conciseness
> and expressiveness it allows.
> Please have a look at the documentation:

Christophe, this is wonderful work and a great example of the usefulness
of Metaparse. Can you comment on the compile time compared to eUML?

I perused the implementation of eUML2 as an example of using Metaparse
in a "real" program. The code is very readable. Kudos!

> - What is your evaluation of the design?

- Looks clean and what one might expect for a TMP library needing to
support C++-98 compilers.

> - What is your evaluation of the implementation?

- When renaming macros, please don't just change/replace MPLLIBS to
...) where this isn't going to work. Perhaps BOOST_MPARSE_ would be a
good replacement. I'm not opposed to BOOST_METAPARSE_.

- Helper include files are nice. metaparse/all.hpp or something like
that. I find when I an first working out a solution that having
everything included allows me to just concentrate on the grammar
details. The calculator_with_parens_and_unary_ops example has 16
individual metaparse includes!

> - What is your evaluation of the documentation?

Excellent Getting Started!

I believe others have also mentioned the "...>" prompt in the metashell
examples results in some initial confusion.

I found the User Manual and the Library reference approachable and well

I only briefly looked through the Tutorial.

Nice job on the documentation. Refreshing!

> - What is your evaluation of the potential usefulness of the library?

I believe that this library could be very useful in making cleaner
interfaces for other libraries. I see it as a tool in creating libraries
like MPL or Fusion -- a tool that can be employed to create a more
natural interface. I'm looking forward to trying it out.

> - Did you try to use the library?

Just the examples and modified versions of those.

> - With what compiler?

gcc 5.1

> - Did you have any problems?

Jamfiles had to be modified to force c++11 mode and a larger template depth.

> - How much effort did you put into your evaluation? A glance? A quick
> reading? In-depth study?

~ 8-hours

> - Are you knowledgeable about the problem domain?


I believe metaparse should be accepted as a Boost library!

Best regards -

Michael Caisse
ciere consulting

Boost list run by bdawes at, gregod at, cpdaniel at, john at