Re: [boost] [review][mp11] Reminder of ongoing formal review
Hello, my name is Jason Rice, and this is my first Boost review so please take that into consideration. I'm also new to this mailing list thing so let me know if I did something wrong here. Please consider the following review for the proposed Boost.Mp11 library: 1. Should Mp11 be accepted into Boost? Please state all conditions for acceptance explicity. ACCEPT. No conditions 2. What is your evaluation of the design? The interface is very straight forward. It is mostly templates but the user is not burdened with accessing a nested "type" with every metafunction. The list algorithms are flexible in that they take any kind of list which is very handy. I did notice that the user is burdened with ensuring that a list is not const or they will just get a "implicit instantiation of undefined template" error which doesn't really point to the problem. (e.g. when using mp_append with many lists) The `mp_` prefix is welcome if this is destined for the `std` namespace. The `tuple_apply` could probably just be called `apply` since appears to be a shim of `std::apply`. The interface of map functions accepting any list of list is very nice. 3. What is your evaluation of the implementation? The implementation is very clean. I looked at `mp_map_find_impl` and it is very concise and easy to understand. I did find it annoying though that some of the public facing functions are defined inside detail files which makes the source code a little more difficult to traverse. I'd like to see mp_product perform on par with the other libs on metaben.ch 4. What is your evaluation of the documentation? For the interface, it gets the job done. The table of contents has some text wrapping that could be fixed. There is no instructions for installation that I could find anywhere. It fails to mention that Boost.Config is a dependency. (AFAICT) 5. What is your evaluation of the potential usefulness of the library? I use Boost.Hana quite a bit. I'm currently using a library like this to help where optimization for compile-time performance is needed so it is definitely useful. 6. Did you try to use the library? With what compiler? Did you have any problems? I used it in my library Nbdl to augment my use of Boost.Hana in a couple of places. The compiler is a recent pull of the Emscripten fork of clang targeting X86. I did get stuck for a while on a weird error I mentioned before because a used a const list. I didn't like having to also install Boost.Config. (I'm not using the Boost monolith build) 7. How much effort did you put into your evaluation? A glance? A quick reading? In-depth study? I spent a few hours on it. I used mp_append and mp_with_index in my lib with great results. I just looked at the implementation of mp_map_find. I scoured the documentation looking for stuff and seeing what else was available. 8. Are you knowledgeable about the problem domain? Yes, I have done TMP and I am also a contributor to Boost.Hana. Jason Rice
participants (2)
-
Jason Rice
-
Peter Dimov