On 6/18/15 1:43 PM, Vicente J. Botet Escriba wrote:
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?
As I said below:
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.
A very minimal subset is all that I need, no more. C++14 is rich enough to do TMP easily unlike before when MPL and Fusion were invented. Perhaps you don't even need a TMP library anymore! As a matter of fact, Thomas Heller and I are working on a phoenix-lite experiment with zero TMP library dependencies (only uses std, nothing more). Compile times? Blink of an eye! Regards, -- Joel de Guzman http://www.ciere.com http://boost-spirit.com http://www.cycfi.com/