|
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