The review period for Hana has concluded. 18 reviews were submitted:
- 17 votes for acceptance. (1 of these was conditional upon Hana
wholly supporting a second C++ implementation however).
- 1 vote for rejection; for lack of compiler support.
I submit that Hana be accepted into Boost. I want to congratulate Louis:
the Boost community wants Hana to become an official Boost library.
Thank you again, Louis, for your work on Hana and for contributing it
I propose we require, prior to Hana's inclusion in a Boost release, only
1. Hana's unit tests to be integrated into Boost's regression tests. If
this requires maintaining both CMakeLists.txt and .b2 files, it is
still worth it. I am willing to assist with this effort (and the
invitation extends to anyone in the community to also contribute to
the task). For release managers, potential Hana contributors, or just
the general developer community in Boost, to see Hana's test cases in
I trust, but do not mandate before Hana is officially accepted into
1. All GitHub issues pertaining to implementation and documentation that
were opened by Louis in response to review feedback (or by others,
such as Vincente, that were approved by Louis) will be addressed
eventually (as long as they remain relevant).
I personally would ask for, but do not require for Hana's acceptance,
1. That Hana's non-reference documentation live outside of the source
code. The presentation of Hana's documentation is great; it looks
modern, is easy to browse. I am not a fan of the prose living inside
hana.hpp though (API reference documentation is the only exception).
2. Louis to investigate further the possibility of a Hana core library
if such can be achieved with zero overhead (instead of focusing that
effort onto a separate library that provides only a subset of Hana's
On the note of Hana's current support in existing C++ implementations:
- While Hana is wholly only supported by clang at present, gcc is not
far behind. Given the trend of language conformance, it is reasonable
to expect Hana will be entirely supported in a future gcc release.
- Hana targets the C++ standard (i.e. This isn't a case of targeting
any compiler-vendor specific extensions) and any highly-contentious
C++ language features within (e.g. This isn't something like a
pre-C++11 library that uses 'export' that only builds with an EDG
- The community now has expressed sufficient interest in both kinds of
libraries being part of Boost: Highly portable libraries that target
implementation-specific features, and maintain compatibility with even
legacy compilers; standard conforming, modern, libraries that are free
of the maintenance debt of ancient compiler support.
- We need more libraries taking advantage of C++14 language features to
drive vendor conformance. A standard may only be as potent as the
C++ implementations that support support it, but when one (such as
clang does) does, others will be more driven to follow suit when
real (and highly desired) projects take advantage of it.
My thanks to everyone that participated in Hana's review with a
review (Edouard, John Fletcher, John Bytheway, Niall, Krzysztof, Manuel,
Roland, Christophe, David Stone, David Sankel, Lorenzo, John, Paul,
Zach, Kohei, Charley, Vincente, Abel) as well as discussion and bug