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:
<https://github.com/sabel83/metaparse>

I used the documentation link that was originally posted.

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

>
> And a very complete tutorial:
>
> http://abel.web.elte.hu/mpllibs/metaparse/getting_started.html
>
> The tutorial also offers the nice feature of a link to metashell for
> quick-starting trying out the library:
>
> http://abel.web.elte.hu/shell/metashell.html

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:
>
> https://htmlpreview.github.io/?https://raw.githubusercontent.com/boostorg/msm/msm3/doc/HTML/ch03s05.html
>
>

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
BOOST. There are several (all?) (MPLLIBS_STRING, MPLLIBS_DEFINE_ERROR,
...) 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
written.

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?

No.

I believe metaparse should be accepted as a Boost library!

Best regards -
Michael

-- 
Michael Caisse
ciere consulting
ciere.com

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