Boost logo

Boost :

Subject: [boost] Review Wizard Status Report for September 2012
From: Ronald Garcia (rxg_at_[hidden])
Date: 2012-09-27 17:06:39

Review Wizard Status Report for September 2012


1. Boost 1.51.0 Released. New Libraries:
    1) Context

2. Multiprecision Accepted

3. Type Erasure Accepted

4. Contract Reviewed

5. Coroutine Reviewed

6. ODEInt Reviewed

7. Contract Accepted

8. Polygon Extensions integrated into Polygon

Open Issues

The following libraries have review managers, but have not yet been
scheduled for review:

* Range Extensions - added May 2012; review manager: Neil Groves.

The following libraries have been reviewed and await reports from their
review managers:

* Predef - reviewed February 2012; review manager: Joel Falcou.
* Coroutine - reviewed September 2012; review manager: Hartmut Kaiser.

The following libraries have been accepted to Boost, but have not yet
been submitted to SVN:

* Constrained Value - accepted September 2010; author: Robert Kawulak.
* GIL.IO - accepted January 2011; author: Christian Henning.
* Contract - accepted September 2012; author: Lorenzo Caminiti.

The following libraries have been accepted and submitted to SVN, but
have not yet appeared in a release:

* Atomic - accepted July 2011; author Helge Bahmann.
* Type Traits Introspection - accepted August 2011; author: Edward Diener.
* Lockfree - accepted August 2011; author: Tim Blechmann.

The following libraries have been accepted provisionally to Boost, but
have not been submitted for mini-review and full acceptance:

* Endian - accepted provisionally November 2011; author: Beman Dawes.
* Log - accepted provisionally March 2010; author: Andrey Semashev.

General Announcements

As always, we need experienced review managers. Please take a look at
the list of libraries in need of managers and check out their
descriptions. In general review managers are active boost
participants, including library contributors, infrastructure
contributors, and other mailing list participants with a substantial
track record of constructive participation. If you can serve as review
manager for any of them, email Ron Garcia or John Phillips, "rxg at cs
dot cmu dot edu" and "phillips at pacific dot mps dot ohio-state dot
edu" respectively.

We are also suffering from a lack of reviewers. While we all
understand time pressures and the need to complete paying work, the
strength of Boost is based on the detailed and informed reviews
submitted by you. If you are interested in reviewing a library but
won't have time during the review period, you can always prepare your
review ahead of time. No rule says you can only work on a review
during the review period.

A link to this report will be posted to If you would
like us to make any modifications or additions to this report, please
email Ron or John.

The review schedule is an unordered list of the libraries awaiting
review. As such, any library on the schedule can be reviewed once the
developer is ready, a review manager has been secured, and
the manager, developer, and wizards agree on a date
to schedule the review.

Review Schedule

* Join (M)
* Pimpl (M)
* Sorting (M)
* Quaternions, Vectors, Matrices (M)
* Variadic Macro Data (M)
* Block Pointer (M)
* Singularity (M)
* Extended Complex Numbers (M)
* Metaparse (M)
* Polygon: Voronoi Extensions
* Coroutine
* Range Extensions
* Nowide (M)
* Array (M)
* TypeIndex (M)

``(M)`` marks libraries that need review managers.



:Author: Yigong Liu
:Review Manager: Needed
 Join is an asynchronous, message based C++ concurrency
 library based on join calculus. It is applicable both to
 multi-threaded applications and to the orchestration of asynchronous,
 event-based applications. It follows Comega's design and
 implementation and builds with Boost facilities. It provides a high
 level concurrency API with asynchronous methods, synchronous methods,
 and chords which are "join-patterns" defining the synchronization,
 asynchrony, and concurrency.
:Author: Vladimir Batov
:Review Manager: Needed
 The Pimpl idiom is a simple yet robust technique to minimize
 coupling via the separation of interface and implementation and then
 implementation hiding.  This library provides a convenient yet
 flexible and generic deployment technique for the Pimpl idiom.  It's
 seemingly complete and broadly applicable, yet minimal, simple and
 pleasant to use.
:Author: Steven Ross
:Review Manager: Needed
 A grouping of 3 templated hybrid radix/comparison-based sorting
 algorithms that provide superior worst-case and average-case
 performance to std::sort: integer_sort, which sorts fixed-size data
 types that support a rightshift (default of >>) and a comparison
 (default of <) operator.   float_sort, which sorts standard
 floating-point numbers by safely casting them to integers.
 string_sort, which sorts variable-length data types, and is optimized
 for 8-bit character strings.
 All 3 algorithms have O(n(k/s + s)) runtime where k is the number of
 bits in the data type and s is a constant, and limited memory overhead
 (in the kB for realistic inputs).   In testing, integer_sort varies
 from 35% faster to 2X as fast as std::sort, depending on processor,
 compiler optimizations, and data distribution.   float_sort is roughly
 70% faster than std::sort.   string_sort is roughly 2X
 as fast as std::sort.
Quaternions, Vectors, Matrices
:Author: Emil Dotchevski
:Review Manager: Needed
 QVM defines a set of generic functions and operator overloads for
 working with quaternions, vectors and matrices of static size. The
 library also defines vector and matrix data types, however it allows
 users to introduce their own types by specializing the q_traits,
 v_traits and m_traits templates.
Variadic Macro Data
:Author: Edward Diener
:Review Manager: Needed
:Download: `Boost Sandbox <>`__
 This library adds support and functionality for variadic macros to
 Boost as well as integrating variadic macros with the Boost PP
 library without changing the latter library in any way.
Block Pointer
:Author: Phil Bouchard
:Review Manager: Needed
 Deterministic memory manager of constant complexity capable of
 handling cyclic collections.
:Author: Ben Robinson
:Review Manager: Needed
:Description: The Singularity Design Pattern allows you to restrict
  any class to a single instance. Unlike the infamous Singleton,
  Singularity gives you direct control over the lifetime of the object,
  does not require you to grant global access to the object, nor does it
  limit you to the default constructor for that object.
Extended Complex Numbers
:Author: Matthieu Schaller
:Review Manager: Needed
 The library is an extension of the std::complex class addressing two issues:
 1.  The standard does not guaranty the behaviour of the complex class if 
     instantiated with types other than float/double/long double.
 2.  Some calculation where pure imaginary numbers (i.e. multiples of
     sqrt(-1)) appear are unnecessarily slowed down due to the lack of
     support for these numbers.  The code I submit contains two
     interleaved classes boost::complex and boost::imaginary which can
     be instantiated with any type T provided T overloads the usual
     arithmetic operators and some basic (real) mathematical functions
     depending on which complex function will be used.  It is thus an
     extended version of Thorsten Ottosen's n1869 proposal
:Author: Abel Sinkovics
:Review Manager: Needed
 Metaparse is a library for constructing parsers parsing at
 compile-time based on template metaprogramming. The parsers built with
 the library take boost::mpl::strings as input and can produce
 - types
 - objects (types with public static members)
 - callable C++ functions (types with public static method)
 - template metafunction classes
 as output (based on the input being parsed).
 On compilers supporting constexpr the library provides the following
 syntactic sugar for writing the input of the parsers:
 BOOST_STRING("this is a string")
 The library can be used for implementing DSLs in C++, including DSLs
 making C++ template metaprogramming easier (see examples).
Polygon: Voronoi Extensions
:Author: Andril Sydorchuk
:Review Manager: Lucanus Simonson
 This library extends Boost.Polygon with the following features:
 - Robust and efficient implementation of the sweepline algorithm that
 allows to construct Voronoi diagram, Delaunay triangulation and medial axis
 of a set of points and line segments.
 - Coordinates of the output geometries are computed within the 64 machine
 epsilon relative error (6 mantissa bits).
 - Voronoi diagram data structure that allows efficient traversal and data
 association with the output Voronoi graph.
 - No 3rd party dependencies (e.g. GMP, MPFR), all the required multiple
 precision types are implemented as part of the library.
 - The input and output coordinate type domains are configurable via
 coordinate type traits, thus allowing to compute coordinates of the Voronoi
 vertices within any required precision.
 - The full construction of the Voronoi diagram of 100 000 points takes only
 0.27 seconds (see benchmarks).
:Author: Oliver Kowalke
:Review Manager: Hartmut Kaiser
 This library is an implementation of coroutines and generators using
Range Extensions
:Author: Akira Takahashi
:Review Manager: Neil Groves
 This project adds some features of the Oven Range Library to Boost.Range.
 - Additional Range Adaptors (taken, taken_while, dropped,
 dropped_while, elements, elements_key, memoized, outdirected)
 - Extensions for using Lambda (regular function, regular operator)
 - Infinite Range (iteration function)
 - and additional range utilities.
:Author: Artyom Beilis
:Review Manager: Needed
 This library makes cross platform Unicode aware programming easier.
 It provides an implementation of standard C and C++ library functions,
 such that their inputs are UTF-8 aware on Windows without requiring to
 use Wide API.
:Author: Brian Smith
:Review Manager: Needed
 The array class is a C++11 compatible implementation of static
 multidimensional arrays.
:Author: Antony Polukhin
:Review Manager: Needed
 TypeIndex is an extended C++11 type_index library, that 
 * works with disabled RTTI 
 * can store const-volatile-reference info about types (if user requested it) 
 * has all the functionality of std::type_index 
 * has portable across compilers and platforms functionality for 
   getting demangled type names 
 * works across modules/shared libraries 
 * does not require C++11 to work 
Libraries under development
for a current listing of libraries under development.

Boost list run by bdawes at, gregod at, cpdaniel at, john at