Le 18/06/15 02:38, Joel de Guzman a écrit :
On 6/18/15 3:55 AM, David Sankel wrote:
You are strongly encouraged to also provide additional information:
- What is your evaluation of the library's: * Design
The core technique of combining value and type expressions is solid and makes metaprogramming easier and, as a bonus, improves compilation speeds.
My one question, as I read though the implementation, is "can the core benefits of this library be achived with a simpler 'light' version of this implementation?". While I appreciate the attempt to encode a Haskell-style typeclass hierarchy, I feel like that is not the core competency of hana and should be a separate library and discussion. As it is, this is a 32k header mega library. I'd prefer several small, highly-targeted, highly-composable libraries.
I still need to find time to make a formal review, but allow me to concur with this sentiment. Hana is a nice library, well implemented and executed. I'd vote yes for its acceptance into boost. But will I use it? That's a negative. Why? the interface? the compile-time performances? is it because Hana is too generic? I share the same opinion as Peter Dimov, and Eric Niebler that C++11 makes it very (extremely!) easy to do TMP. I'd prefer to use a very small TMP library like Peter's or Eric's with a very small (close to zero) conceptual overhead, or none at all. My current inclination is to use Eric's Tiny Metaprogramming Library. In my opinion, less is more in modern post c++11 TMP.
I like Eric's and Peter's meta-propamming approaches. They are close to what we have been done on meta-programming since years, and the use of C++11 (C++14) makes them shorter and more elegant. As I already said in other threads (GSoC) I want a C++11 meta-programming library like Meta in Boost. I would be also interested in having a comparaison of the compile times performances of Meta and Hana. Vicente