Tom Brinkman | 7 Feb 07:19 2007

Review Managers Needed

We need volunteer review managers for most of the libraries
in the review queue. If your interested, let us know.  
Preferably, you would have a background in the problem domain,
but no association with the library and a contributer
to the boost mailing list.  

The review schedule is available here: .  

You can read the "review manager"
requirements at the following link:

Most of the libraries are located at the Boost Sandbox Vault,
located here:

Maintainers of the Review Queue:

Ronald Garcia (garcia (at) )
Tom Brinkman (reportbase (at)

If there is any errors or ommisions in this report,
please send them to Ron or Tom.

Here is a summary of the libraries that are in the queue.

Library: Exception      
Author: Emil Dotchevski      
Review Manager: Needed
Date: Needed
The purpose of Boost Exception is to free designers of
exception classes from having to consider what data needs to
be stored in exception objects in order for the catch site to
be able to make sense of what went wrong. When Boost Exception
is used, arbitrary values can be stored in any exception. This can be
done directly in the throw-expression, or at a later time as the
exception object propagates up the call stack. The ability to add
data to any exception object after it has been thrown is important,
because often some of the information needed to handle an
exception is unavailable at the time of the throw.

Library: Bimap     
Author: Matias Capeletto     
Location: Boost Sandbox Vault     
Review Manager: Ion Gaztañaga
Date: February 15 2007- February 25, 2007
With Boost.Bimap you can create associative containers
where both types can be used as key. You can think a
`bimap<X,Y>` as a merge of a `std::map<X,Y>`
and a `std::map<Y,X>`. The learning curve of bimap is
almost zero if you know how to use standard containers.
A big effort was put in mapping the naming scheme
of the STL in Boost.Bimap. The library is designed to
match the STL common containers.

Library: Globally Unique Identifier     
Author: Andy Tompkins     
Location: Boost Sandbox Vault     
Review Manager: Needed     
Date: Needed
A guid, or globally unique identifier, is an identifier
standard used in many disciplines including computer networks,
distributed computing, and databases. They can be used to tag
objects with very short lifetimes, to reliably identify very
persistent objects across a network. An attractive feature of
guids is their relative small size, of 128-bits, compared to
alternatives. Also the creation of guids does not require
a centralized authority.

Library: Intrusive Containers     
Author: Ion Gaztañaga     
Location: Boost Sandbox Vault     
Review Manager: Joaquín Mª López Muñoz
Date: March 1, 2007 - March 10, 2007
Existing practice have shown the need for
intrusive containers. Widely used C++ libraries, such
as C++ Standard Library and Boost have long
missed such facilities so that users had to refrain
from using those due to mandatory element copying
or fall back to techniques like two phase construction to
insert logically non-copyable elements in containers
and initialize them after that or insert pointers to
dynamically allocated objects which is rather
inelegant and inefficient since containers also dynamically
allocate nodes. The most common use cases for intrusive
containers are, when one would like to store non-copyable
elements in a container when it's beneficial to
avoid needless data copy in performance critical applications.
The most prominent example of both the use cases,
although written for the most part in C rather than C++,
is Linux kernel built solely upon intrusive lists, hash
tables and trees.

Library: Scope Exit     
Author: Alexander Nasonov     
Location: Boost Sandbox Vault     
Review Manager: Needed     
Date: Needed
The scope-exit-arg-pp-seq is Boot.Preprocessor sequence
of identifiers that can be used inside scope-exit-body.
The direct-declarator is declarator-id followed by optional
argument of type boost::scope_exit_group (inside brackets or
after the equal sign). This construct executes scope-exit-body
at the close of the current scope.

Library: Finite State Machines     
Author: Andrey Semashev     
Location: Boost Sandbox Vault     
Review Manager: Needed     
Date: Needed
The Boost.FSM library is an implementation of FSM
(stands for Finite State Machine) programming concept.
There are many cases when a developer would like to distinguish the
behavior of a given object depending on some conditions or its
internal state. For example, when making software to control
an underground charging tourniquiet a programmer would like to
separate states in which the tourniquiet may persist: an idle state,
when the device awaits for another passenger that would like to
pass; a processing state, when the passenger have come
and put his ticket into the device; and the passing state,
when the tourniquiet lets the passenger pass through. In
fact, each state describes different reaction of the machine
at the same events (a passenger may only pass after paying
for ticket). Obviously, the tourniquiet have to be able to
change its internal state in order to function properly,
this is called state switching or transitions between
states (or just transitions for short).

Library: Statistical Distributions     
Author: John Maddock     
Location: Boost Sandbox Vault (math-toolkit)
Review Manager: Needed
Date: Needed
Provides many of the tools required to implement
mathematical special functions: hopefully the
presence of these will encourage other authors to
contribute more special function implementations in the future.
There are helpers for the evaluation of infinite series,
continued fractions and rational approximations.
There is a fairly comprehensive set of root finding and
function minimisation algorithms: both with and
without derivative support. A Remez algorithm
implementation allows for the locating of minimax
rational approximations. There are also (experimental)
classes for the manipulation of polynomials, for testing
a special function against tabulated test data, and
for the rapid generation of test data and/or data
for output to an external graphing application.

Library: Floating Point Utilities
Author: Johan Råde
Location: Boost Sandbox Vault
Review Manager: Needed
Date: Needed
Proposed Additions to the Boost Math Library

Functions for floating point number classification:
 fpclassify, isfinite, isinf, isnan, isnormal. Follows TR1.

Functions for floating point number sign bit access and modification:
signbit, copysign, changesign. Follows TR1.

Facets that parse and format infinity and NaN according to the C99 standard.
Used for portable handling of infinity and NaN in text streams.

Library: mcs::units
Author: Matthias Schabel
Location: Boost Sandbox Vault (units)
Review Manager: Needed
Date: Needed
mcs::units is a library providing zero-runtime overhead dimensional
analysis for unit and quantity
calculations. It provides support for
1) unit systems comprised of arbitrary sets of base units
2) arbitrary user-defined value types
3) support for heterogenous operator algebras (i.e. Z op(X,Y))
4) support for basic outputting of quantities
5) optional support for implicit unit conversions
It does not support
1) runtime units or quantities
2) input or parsing of quantities

Library: Switch
Author: Steven Watanabe
Location: Boost Sandbox Vault
Review Manager: Needed
Date: Needed
Summary: Needed

Unsubscribe & other changes:
Ion Gaztañaga | 15 Feb 08:42 2007

[bimap] Review of the Bimap library begins today Feb 15

Hello everyone,

The review of the proposed Boost Bimap library written by Matias
Capeletto starts today (February 15th, 2007) and ends after 10 days
(February 25, 2007).

Documentation for the library can be found online here:

The library can be downloaded from Boost.Vault/Containers:


 Tiny URL:

Online documentation and the documentation package can be found here:



The library has been developed by Matias Capeletto with the mentoring
of Joaquín M López Muñoz in the context of the Google SoC 2006. You
can find more information about SoC projects here:

You can read an overview of Boost participation in Google Summer of
Code 2006 written by Joaquín M López Muñoz here:


About the library:

With Boost.Bimap you can create associative containers in which both
types can be used as key. A bimap<X,Y> can be thought of as a
combination of a std::map<X,Y> and a std::map<Y,X>. The learning curve
of bimap is almost flat if you know how to use standard containers. A
great deal of effort has been put into mapping the naming scheme of
the STL in Boost.Bimap. The library is designed to match the common
STL containers.

Boost.Bimap offers also advanced features:

-> Boost.Bimap offers much more than just a one-to-one ordered unique
bidirectional map. It is possible to control the set type of each side
of the relationship that the bimap represents, giving one-to-many
containers, hashed bidirectional containers and others that may be
more suitable to the the task at hand.

-> The types of a bimap can be tagged so that each side is accessible
by something closer to the problem than left and right. This leads to
more readable, self-documenting code.

-> The extended mapping framework allows to disable a view of a bimap,
including the standard mapping containers as a particular case.

Bimap has been tested in the following platforms:

GCC 3.4/Linux
GCC 4.0/Linux, Mac
VS 7.1/Windows
VS 8.0/Windows
ICC 7.1/Windows
ICC 8.0/Windows


Please always state in your review, whether you think the library should be
accepted as a Boost library!

Additionally please consider giving feedback on the following general

- What is your evaluation of the design?
- What is your evaluation of the implementation?
- What is your evaluation of the documentation?
- What is your evaluation of the potential usefulness of the library?
- Did you try to use the library? With what compiler? Did you have any problems?
- How much effort did you put into your evaluation? A glance? A quick
reading? In-depth study?
- Are you knowledgeable about the problem domain?

Ion Gaztañaga
Review Manager
Unsubscribe & other changes:

Ion Gaztañaga | 15 Feb 09:18 2007

Re: [bimap] URL Correction: Review of the Bimap library begins today Feb 15

Hello everyone again:

I'm resending this because the first URL was not correct. The other
URLs were correct, so to sum up::

The library can be downloaded from Boost.Vault/Containers:


 Tiny URL:

Online documentation and the documentation package can be found here:

Sorry for the noise,

Unsubscribe & other changes:

David Abrahams | 19 Feb 15:36 2007

BoostCon 2007 update

The following message is a courtesy copy of an article
that has been posted to
gmane.comp.lib.boost.user,gmane.comp.lib.boost.devel,gmane.comp.lib.boost.interest as well.

A couple of quick items:

1. The conference format has changed.  For many practical reasons, the
   "two 3-day tracks with one day of overlap on Wednesday" format
   proved unworkable.  Among those:

   * Many (most) sessions don't fall neatly into the
     library-user/library-developer track distinction.  We see this as
     a good thing, as it means we have more material that's of broad

   * It made the hotel reservation pattern very difficult; we were
     afraid many people would be shut out of rooms at the conference
     hotel and also that the hotel would not be able sell the entire
     reserved room block, which could cost the (non-profit) conference
     a lot of money, as we had to agree to be liable for unsold room

   Instead, we're running two tracks concurrently all week.  We
   thought attendees should be prepared for that change.

2. We expect the new boostcon website will go live and registration
   for the conference will open in the next couple of days.  We're
   just clearing away a few final details.  In the meantime, the
   existing has the old information.

Regards, and see you at BoostCon,


Dave Abrahams
Boost Consulting
Unsubscribe & other changes:

John Phillips | 19 Feb 23:06 2007

[boost] [Review results] Accumulators accepted

    The accumulator library submitted by Eric Niebler has been accepted
into boost. Thanks, once again to all of the people who contributed to
the development of the library, to everyone who contributed to the
review, and to Eric for a fine submission.

    During the review, Eric and some of the reviewers had a useful
discussion about issues for the library, and possible improvements. A
condensed version of the outcomes from that discussion is included
below. Also, in perusing the archives for other comments about the
library, I found a couple of other issues that were discussed. I have
included them below, as well.

    In many cases, Eric acknowledged issues and committed to a fix  
the review. Those issues are included below, along with the current
state of some of the more open ended discussions to provide easy
reference for all interested parties.

    For my own organizational convenience, I have numbered the entries
below. This does not indicate relative importance.

1) Prior to the review it was asked why the function that returns a
histogram is called the density. Little was done at the time, as Eric
suggested it should be addressed during the review. As far as I can see,
it was not brought back up during the review process. This should be
examined to make sure that density is the best name for the function,
and changed if needed.

2) There are a number of variant implementations of some statistical
functions. The documentation should clearly indicate which variants
focus on quick and dirty implementations, and which provide more numeric
stability. Eric has stated that this will be addressed in the revisions
of the documentation.

3) The question was asked whether or not it is feasible to provide
outlier rejection for some or all of the accumulators. I can find no
further discussion of this question in the review, however, since this
is a very important statistical technique it would be a good feature to
investigate for future addition.

4) Michael Stevens expressed interest in a form of the variance that
accumulates the differences squared iteratively and divides the result
by n. I saw no direct response, but this is basically what the
immediate_variance does.

5) Interest was expressed in making the compensated sum the default
version of the sum. It could be supplimented by the quick and dirty
version as an alternative. However, since there are reports that many
optimizing compilers turn the compensated sum algorithm into the same
compiled code as the simple sum, tests should be done to see if there is
any real gain before the modification.

6) There are a number of broken links in the quickbook docs. This has
been acknowledged and is in line for a fix.

7) Steven Watanabe suggested changing the structure to move away from
the fusion vector dependence. After discussion it appears that fusion
cons,. may be a better choice. However there may be a use case for the
original library that precipitated the choice of fusion vector. This
should be checked, and if Steven's idea holds up under scrutiny, it
should be implemented.

8) There is a request that the user guide specifies which header each
component is in. This has been acknowledged and is in line for a fix.

9) The macro BOOST_PARAMETER_NESTED_KEYWORD has no description in the
docs. This has been acknowledged and is in line for a fix.

10) There were a number of requests for improvements to the reference
manual, ranging from wording changes to a reorganization that reflects
class structure instead of header structure. In some cases, these
improvements are direct, and they are in line for fixes. In other cases
there is currently no known way to do it with the boost tool chain.
Eric, and many of the other members of boost would greatly appreciate
anyone who has ideas and time to fix the harder problems.

11) There was a suggestion that the documentation could mention the TR1
reference_wrapper as a future solution to the accumulator_set_wrapper
issues, and the implementation could be changed once there is a boost
accepted implementation of the reference_wrapper. My impression was that
I was not the only person who didn't realize that it could solve that

12) Functions that allow a range of values to be pushed into an
accumulator set all at once should be added. This could include forms
that take begin and end iterators and forms that take a sequence. Eric
agreed that this is a good idea.

13) Paul Bristow mentioned that the kurtosis has a confusing naming
history. What the docs refer to as the kurtosis would better be called
the "kurtosis excess." His suggestion was that a name change be
considered and that the docs be modified to acknowledge the confusion
whether the name is changed or not. Eric agreed with this suggestion.

14) Accessors for the standard deviation, the unbiased variance and the
unbiased (N-1) standard deviation were requested. The fact that John
Maddock fell into the trap of miscalculating the standard deviation
shows that even experts can make mistakes when converting from the
variance. Thus, it is a good idea for inclusion. Eric said he is
interested, and he would also welcome submissions that provide these

15) The docs mention "Even the extractors can accept named parameters.
In a bit, we'll see a situation where that is useful," but there is no
later mention. Eric has an example he intended that to refer to, but
forgot to include it in the last edition of the docs. He intends to fix

16) The ability to "reset" and accumulator was requested. Eric pointed
out that it is quite possible to make accumulators with reset methods.
He also pointed out that it might be desirable to reset
accumulator_sets, but this could also pose a problem. It is not clear
what should happen if one of the accumulators used by an accumulator set
does not have a reset method. Further thought should be given to this
for possible inclusion in a later revision.

17) Autocorrelation for accumulator_sets should be explored. Matthias
already plans to do this in the coming year for possible inclusion in a
later revision.

18) The documentation on what to expect when one accumulator is dropped
while a second accumulator that depends on the first is not dropped
should be clarified. Careful thought on this may lead to a change in
current behavior.

19) There is a request that the docs state more clearly what happens
when more than one accumulator maps to the same feature. Eric plans to
include this in documentation revisions.

20) It is not currently possible to combine accumulators. In some very
common use cases, this would be an important feature. However, not all
accumulators can be combined in any sensible way. A solution to this
will require some study and design work, but it is a valuable addition
for a future revision. One possible solution is to have a compile time
check to see if the accumulators are combinable.

21) While finding newer/faster/more robust algorithms is not a bad
thing, the focus of this review has been the interfaces. If the
interfaces are good, improved algorithms can be worked in later. There
is some minimum standard for performance, but it is not the focal point
or the submission.

22) Javier and Hans submitted lists of documentation corrections that
Eric acknowledged and plans to fix.

23) It is agreed that there is a need for a more gentle and thorough
getting started document. This should include some compelling examples
that show why this is a good design decision.

24) More of the formulas should be available in the documentation. Eric
requested volunteers to make some formulas into LaTeX, and I have
already contacted him to do so.

25) The docs for how to incorporate new features should be improved.
This can be helped tremendously if the people who had problems doing
this would send Eric descriptions of where they had problems with the
docs and the process.

    Thanks again to everyone for your time and work. Any problems or
misrepresentations in the above list are purely my fault, and I
apologize for them.


Unsubscribe & other changes: 
Unsubscribe & other changes:

Ion Gaztañaga | 22 Feb 21:45 2007

[Review][Bimap] Bimap review extended until March 2nd

Hi to all,

Bimap review has been extended until March 2nd. I encourage all boosters 
to give a try to this great library. The links are:

Start reading the documentation here:

And download the library here:


Unsubscribe & other changes:

John Maddock | 2 Mar 14:50 2007

[Ann] Boost and Google Summer of Code 2007

Dear Boosters,

It is a pleasure to announce that Boost will be applying as a mentoring 
organization for the upcoming Google Summer of Code 2007. There is a lot of 
preparation work to be done and little time to do it.

A page has been set up at the Boost Wiki:

which will hold a list of preliminary ideas for students to take up and use 
in their own applications to GSoC07.

Please feel free to contribute by directly editing the Wiki page.

Any questions, requests for feedback etc. can be conducted through the Boost 

Remember that this initiative, as Boost itself, is the result of many 
individuals' contribution and ideas, which means we are looking forward to 
*your* feedback.


John Maddock 

Unsubscribe & other changes:

Ion Gaztañaga | 3 Mar 19:28 2007

[review][bimap] Bimap accepted

Hi to all,

The Bimap library submitted by Matias Capeletto has been accepted
into Boost. Thanks to all reviewers and all who contributed to the 
library in the informal review. Thanks also to Matias for his submission 
and Joaquin for his mentoring effort on this Google SoC project.

We've received 6 reviews (Alisdair, Fernando, Jeff, John, Thorsten and 
Tony), all of which were positive. If I weren't the review manager, I 
would also make a positive review of this library, so I'm pretty happy 
with the results.

Now I have a bit of work reviewing all the comments, suggestions and 
Matias' replies to write an small summary of requested changes and 
conclusions. The "relation" view, and some basic names ("first"/"second" 
vs. "left"/"right") were the most active topics. But everyone has 
considered Bimap useful, well-written, and well documented. I'll post 
the summary following week.


Unsubscribe & other changes: