Boost logo

Boost :

Subject: Re: [boost] [Hana] Formal review for Hana
From: charleyb123 . (charleyb123_at_[hidden])
Date: 2015-06-16 14:37:20


>
> The formal review of Louis Dionne's Hana library begins today,10th June
> and ends on 24th June.
>
> Hana is a header-only library for C++ metaprogramming that provides
> facilities for computations on both types and values. It provides a
> superset of the functionality provided by Boost.MPL and Boost.Fusion
> but with more expressiveness, faster compilation times, and faster (or
> equal) run times.
>
<snip>,

> - Whether you believe the library should be accepted into Boost
> * Conditions for acceptance
>

Yes, I vote accept.

No conditions, although Hana's demand for latest C++14 features likely
imply need for timely documentation updates as compilers improve.

> - Your name
>

Charley Bay

> - Your knowledge of the problem domain.
>

Very familiar with template metaprogramming, including active
development/support of large production code bases using templates and
metaprogramming language features.

- What is your evaluation of the library's:
> * Design
>

Clean design, with high-value "wrappers/syntactic-sugar".

> * Implementation
>

Very elegant implementation, including novel template implementation
approaches.

> * Documentation
>

Very good, although volatile because:

(1) High demand on latest C++ language features (compiler support is
evolving)

(2) New usage patterns are likely to evolve (due to the nature of what the
library provides)

  * Tests
>

Header-only library, and compile-time tests are great. More are always
good. Perhaps excessively expensive compiler-time tests could be
added-or-removed with an #ifdef...#endif.

> * Usefulness
>

Very useful, as a unifying library solving problems previously addressed
through multiple libraries and similar-but-not-the-same APIs and usage
patterns.

Unifying metaprogramming for both types and values is quite novel, and will
likely lead to new use patterns not-yet appreciated. IMHO, this is likely
the most important reason for addition to Boost. The second reason would
be its elegance in using new C++14 patterns and conventions (as TMP has
evolved).

> - Did you attempt to use the library? If so:
> * Which compiler(s)
> * What was the experience? Any problems?
> - How much effort did you put into your evaluation of the review?
>

Extensive study of the documentation, and attended or watched all talks on
this library over the past couple years. Some light application-use of the
library (specific to the examples in the documentation).

I am planning to experiment with specific library use cases, but am
hampered by spotty compiler support for C++14 language features.

--charley


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