Boost logo

Boost :

From: Ion Gaztañaga (igaztanaga_at_[hidden])
Date: 2007-12-21 17:11:23


Hi to all,

  This post tries to summarize the review of the new Boost.Unordered
library. In general, there were no serious implementation change
requests and most reviewers had only documentation issues. Here we go:

* * * begin of summary * * *

Thosten Ottosen's review:
----------------------
(http://lists.boost.org/Archives/boost/2007/12/131372.php)

Thorsten questioned about the convenience of supporting throwing hash or
predicates. This started a thread about the exception safety guarantees
of STL containers and Daniel explained the thread-safety guarantees of
Unordered. Basically, Daniel's implementation uses an smart
double-buffering technique to obtain strong safety guarantees (stricter
than the requirements of the standard) in some operations. There's an
slight size overhead (the container must allocate space for two equality
functors and hashers) but according to Daniel, speed should not suffer.

Chung Ping Wang's review:
----------------------
(http://lists.boost.org/Archives/boost/2007/12/131372.php)

The only complain was the packaging of the library (there was an
"unordered" directory at the top). Since the library has been accepted
it will be packaged as the rest of Boost libraries so the problem
disappears.

Mathias Gaunard's comment:
----------------------
(http://lists.boost.org/Archives/boost/2007/12/131426.php)

Mathias suggested adding move semantics and in-place construction.
Daniel said that these features were likely to be added in the future.
He pointed that we have no standard move emulation library in Boost so
we'll need to push that first. Regarding in-place construction, there is
a problem with allocators, since containers are now required to call
allocator::construct() to construct values.

Hervé Brönnimann's review:
----------------------
(http://lists.boost.org/Archives/boost/2007/12/131435.php)

Hervé praised the library and suggested adding operator==(). Daniel
replied that he was trying to limit himself to obvious design decisions
for extensions so he didn't want to go into this area. He also cited
some problems with non-unique key unordered containers.

Hervé suggested extending the prime number list and Daniel agreed.
Daniel also agreed to correct some documentation issues.

"Swap" semantics wrt allocators was also discussed. "Swap" and its
effect on containers is an active issue in the committee, so Daniel is
free to implement what he thinks best until we have a firm resolution.

John Torjo's review:
----------------------
(http://lists.boost.org/Archives/boost/2007/12/131557.php)

A concise and positive review with no comments.

Jamie Allsop's review:
----------------------
(http://lists.boost.org/Archives/boost/2007/12/131762.php)

Documentation suggestions that Daniel found interesting and a request to
include a comparison with other implementations.

Steven Watanabe's comments
----------------------
(http://lists.boost.org/Archives/boost/2007/12/131817.php)

Several implementation comments regarding (ADL, BOOST_DEDUCED_TYPENAME,
warnings...). See the post for details.

Cromwell Enage's review
----------------------
(http://lists.boost.org/boost-users/2007/12/32706.php)

Suggested the addition of local_cbegin() and similar, and some
documentation suggestions Daniel agreed to solve.

Paul A Bristow's review
----------------------
(http://lists.boost.org/Archives/boost/2007/12/131545.php)

A brief and positive review with no comments.

* * * end of summary * * *

Regards,

Ion


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