Boost logo

Boost :

Subject: Re: [boost] [Hana] Formal review
From: Joel de Guzman (djowel_at_[hidden])
Date: 2015-06-18 02:57:56


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/

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