Review Wizard Status Report for March 2013
1. Boost 1.52.0 Released. No New Libraries.
2. Boost 1.53.0 Released. New Libraries: Atomic, Coroutine, Lockfree,
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
* Predef - reviewed February 2012; review manager: Joel Falcou.
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:
* Type Traits Introspection - accepted August 2011; author: Edward Diener.
* Type Erasure - accepted August 2012; author: Steven Watanabe
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.
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
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 www.boost.org. 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.
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.
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.
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
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
: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.
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
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.
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.
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
The proposed library [stl_ext_adv] offers augmented array based B+ trees
and STL containers that support the interfaces of the C++03 sequences
and associative containers. The library offers a number of extensions
and performance improvements that are not available in
C++03 and C++11 standard containers.
:Author: Francisco Jose Tapia
This library is an implementation of a binary red-black counter tree. This
tree have an additional counter in each leaf. This permit the access to the
elements by the position, like in a vector. It is a random access container
with random access iterators.
This kind of trees have an additional counter in each leaf. This
permit the access to the elements by the position, like in a
vector. It is a random access container with random access iterators.
With unordered information we have a vector with the same speed
inserting and deleting in any position (O(log N)). With ordered
information, we have the classes set, multiset, map and multimap, with
identical interface than the STL classes, with the plus of access to
the elements by position, like in a vector. The iterators are random
access , and you can subtract them.
The suballocator is a layer between the allocator and the data
structures, compatible with any allocator with the STL definition. The
suballocator replace to the allocator in the allocation of equal size
elements. It provides speed, return the unused memory and decrease the
memory used by the program and improve the cache performance due to
the data locality improvement ( 30% of improvement of speed respect
the std::allocator with GCC 4.7)
Boost.Process is a library to manage system processes. It can be used to:
* create child processes
* setup streams for child processes
* communicate with child processes through streams (synchronously or
* wait for processes to exit (synchronously or asynchronously)
* terminate processes
Libraries under development