Boost logo

Boost :

Subject: Re: [boost] [Hana] Informal review request
From: Edward Diener (eldiener_at_[hidden])
Date: 2015-03-05 19:22:40


On 3/5/2015 9:41 AM, Louis Dionne wrote:
> Dear Boost,
>
> As some may be aware of, I am currently working on a metaprogramming library
> called Hana, with the intention of proposing it for inclusion in Boost. The
> purpose of that library is to act as a toolbox for expressing computations
> on both types (like the MPL) and heterogeneous values (like Fusion). The
> library is built around C++14 idioms and implementation techniques to
> maximize expressiveness and performance.
>
> I am now requesting feedback from the community, with the intention of asking
> for a formal review in the next months. A similar review was asked for in last
> August. The library has undergone several modifications since then, both to
> address issues raised during the review and for general improvement. Here are
> some issues that were raised during the review and addressed:
>
> - Usage of names and terms unknown to C++ programmers: Efforts were made to
> make this better, and several functions were renamed (`fmap` is now
> `transform`). When possible, the documentation also uses terms more
> familiar to C++ programmers, like concept instead of "type class".
>
> - The order of the arguments to some algorithms was unfortunate for C++. It
> was consistent with Haskell, but it turned out to be cumbersome in C++.
> This is changed in most places.
>
> - Inability to easily implement individual algorithms: This is fixed, and
> algorithms are now standalone structures using tag-dispatching, almost
> exactly as in Fusion.
>
> - Lack of a good introductory tutorial: A lot of work has gone into improving
> both the tutorial and the reference documentation.
>
> - Lack of support for mainstream compilers: The library is now almost fully
> functional with Clang 3.5. A GCC 4.9 port with reduced functionality is
> also underway on the `redux` branch.
>
> The library is available at [1] and the documentation at [2]. Comments should
> be directed to this mailing list, while bugs and other similar problems should
> be directed to the GitHub issue tracker. Please participate, especially if
> you have interest and/or experience in metaprogramming; after all, you
> represent the target audience for Hana.
>
>
> Thank you,
> Louis Dionne
>
> [1]: https://github.com/ldionne/hana
> [2]: http://ldionne.github.io/hana/

In the Quick Start:

> auto stuff = make_tuple(Person{"Louis"}, Car{"Toyota"}, City{"Quebec"});
> Notice how the auto keyword is used when defining xs;...

It should be:

> Notice how the auto keyword is used when defining 'stuff';...


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