The Library ~~~~~~~~ Function Types library by Tobias Schwinger Available from the sandbox at: http://boost-sandbox.sourceforge.net/vault/ or the zip file is: http://boost-sandbox.sourceforge.net/vault/index.php?action=downloadfile&filename=function_types.zip&directory=& This library provides a metaprogramming facility to classify, decompose and synthesize function-, function pointer-, function reference- and member function pointer types. For the purpose of this documentation, these types are collectively referred to as function types (this differs from the standard definition and redefines the term from a programmer's perspective to refer to the most common types that involve functions). The classes introduced by this library shall conform to the concepts of the Boost Metaprogramming library (MPL). The Function Types library enables the user to: * test an arbitrary type for being a function type of specified kind, * inspect properties of function types, * view and modify sub types of an encapsulated function type with MPL Sequence operations, and * synthesize function types. This library supports variadic functions and can be configured to support non-default calling conventions. Review Summary ~~~~~~~~~~~~ The function types review took place between the 6th and the 20th June 2005. There were 4 reviews, three reviewers made tentative "yes" votes. The review manager abstained. The reviewers took the view that the library was useful, but had issues with: * The naming and organisation of some components (particularly the tag types). * The scope of the test cases. * The documentation: in particular many reviewers had difficulty understanding the motivation behind the library, and felt that the documentation would put off many potential new users. Tobias and the reviewers alike have tried hard to correct this, but it's apparent that writing really clear documentation for this library is actually quite a difficult task (basically we've all been struggling to come up with really easy to understand terminology that can be applied here, what the library does isn't that hard to understand once you have "got it", but there is a lack of accepted terminology for what the library does which makes it hard to write documentation that will allow a newbe to "get it" in the first place). Proposed Changes ~~~~~~~~~~~~~ Tobias has been very proactive in dealing with the issues that have come up during the review period, and has already published a list of proposed changes to address the reviewers concerns: http://lists.boost.org/boost/2005/06/29005.php http://lists.boost.org/boost/2005/06/29006.php http://lists.boost.org/boost/2005/06/29007.php Review Result ~~~~~~~~~~ There was some concern on the part of the review manager that not many reviews were submitted for this library. We don't have a hard and fast rule on how many positive reviews are enough to justify inclusion of a library, but there does seem to have been a decline in the number of reviews received for libraries recently. Partly this may be down to the fact that we have a release going on as well at present, also this library is probably mainly of interested to other library authors (who are busy with the release!). It's also possible that the problems some reviewers had in grasping all the concepts behind the library put some people off from contributing (this issue will be addressed by Tobias' proposed documentation changes however). So..... after some consultation with the other moderators (on how many reviews constitute "enough").... the result: the function types library is accepted into Boost, subject to a further mini-review to be conducted at a later time convenient to Tobias. The "mini review" will be conducted independently to the full review process; it's purpose will not be to reopen issues already addressed at this review, but to give reviewers a chance to: * Check the reorganised/renamed classes: there are enough changes here to make the library look-and-feel different even if the changes are actually largely cosmetic. It's important that we get this right, as meta-function naming can have a large (albeit subjective) impact on usability. * Check the revised documentation. As noted above, several people have had an attempt at revising this, and it's surprisingly hard to get right. There are enough changes coming here to make the new docs substantially different from those that the reviewers looked at. Regards, John Maddock [function types review manager]
participants (1)
-
John Maddock