Boost logo

Boost Announcement :

Subject: [Boost-announce] Review Wizard Status Report for January 2015
From: Ron Garcia (rxg_at_[hidden])
Date: 2015-01-22 22:29:58

Review Wizard Status Report for January 2015


1. Boost 1.56 Released November 2014. New Libraries: none
2. Sort Accepted. November 2014.
3. Compute Accepted. December 2014.

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 accepted to Boost, but have not yet
been integrated into Boost Git:

* Contract - accepted September 2012; author: Lorenzo Caminiti.
* Sort - accepted November 2014: author: .
* Compute - accepted December 2014: author: .

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

* Convert - accepted June 2014; author: Vladimir Batov.

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

* Endian - accepted provisionally September 2011; author Beman Dawes.
* Fiber - accepted provisionally January 2014; author Oliver Kowalke.

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 ubc dot ca" and "johnphillipsithica at gmail dot com" 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)
* Sorting (M)
* Quaternions, Vectors, Matrices (M)
* Block Pointer (M)
* Singularity (M)
* Extended Complex Numbers (M)
* Metaparse (M)
* Boost.Range Extensions
* Nowide (M)
* Array (M)
* STL Extensions (M)
* Countertree (M)
* Process (M)
* Asynchronous File I/O (M)
* Application (M)
* Edit Distance (M)
* Mixin (M)
* Dependency Injection (M)
* DLL (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: 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.
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).
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.
STL Extensions
:Author: Vadim Stadnik
:Review Manager: Needed
 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
:Review Manager: Needed
 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)
:Author: Boris Schaeling
:Review Manager: Needed
 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
Asynchronous File I/O
:Author: Niall Douglas and Paul Kirth
:Review Manager: Needed
  Boost.AFIO is a linear scalable, batch, chainable,
  asynchronous closure execution engine with an almost wait free
  implementation extending Boost.ASIO and Boost.Thread specialised as a
  portable asynchronous file i/o implementation library. Implementation
  of this first version has been kept as simple as possible (~ 1000
  active LOC) at the cost of some performance, though with a good
  compiler you can expect 25-50% of the performance of using raw
:Author: Renato Tegon Forti
:Review Manager: Needed
 Application provides an application environment, or start point
 to any people that want a basic infrastructure to build an system
 application on Windows or Unix Variants (e.g. Linux, MacOS).
 Application uses behaviours modeled using 'aspects' concept
 proposed by 'Vicente J. Botet Escriba', that allow easy extension and
 customization of library components. The application modes uses these
 components internally to achieve the user desirable behaviours.
 Application provide many useful ready-to-use features, e.g:
 * Run application as Windows Service;
 * Run application as UNIX/POSIX Daemon;
 * Plugin extension system;
 * Process(executable) Single instance Instantiation support;
 * Application SIGNAL/Callbacks customization;
 * Windows Service Setup feature;
 * And many others.
Edit Distance
:Author: Erik Erlandson
:Review Manager: Needed
  The edit distance is the length of the shortest (or least-cost) edit
  script from one sequence to another, where an edit script is defined
  as a sequence of insertion, deletion and (optionally) substitution
  operations.  The function implementing the edit distance is named
  edit_distance. This function will return the edit distance between two
  sequences, where sequences may be any valid range object supporting
  forward iteration.  The edit_distance function will also, if
  requested, return the edit script.
:Author: Borislav Stanimirov
:Review Manager: Needed
  Boost.Mixin is a library that allows the composition and
  modifications of polymorphic types at run time. Types and objects
  are constructed out of building blocks called mixins.
  The library uses the type boost::mixin::object as a placeholder,
  whose instances can be extended with existing classes (mixins), thus
  providing a particular instance with the functionality of all those
  types. Accessing the newly formed type's interface is made through
  messages:  stand-alone functions generated by the library, which can
  be thought of as methods.
  This is given while also having full abstraction between the
  interface and the definition of types.
  An existing feature in another language similar to Boost.Mixin and
  also an inspiration for the library are the mixins in Ruby. The
  library also has similarities with the pattern
Dependency Injection
:Review Manager: Needed
  Boost.DI is a dependency injection library improving manual
  dependency injection by simplifying object instantiation with
  automatic dependencies injection. Using Boost.DI has many advantages
  over manual dependency injection.
  * Reduce boilerplate code (No factories, no objects creation in specific
  * Reduce cost of maintenance effort (Constructor signature change won't
    affect di configuration)
  * Reduce testing effort
  * Give better control of what and how is created (Policies, Providers)
  * Give better understanding about objects hierarchy (UML Dumper)
:Author: Antony Polukhin
:Review Manager: Needed
  This library was designed to simplify plugin development using C++
  in a portable cross-platform manner.
  Library provides a portable across platforms way to:
  * load libraries
  * import any native functions and variables
  * make alias names for C++ mangled functions and symbols
  * query libraries for sections and exported symbols
  * self loading and self querying
  * getting program and module location by exported symbol
Libraries under development
See The Boost Library Incubator Project at 
for discussion of libraries currently under development.

Boost-announce list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at