Boost logo

Boost :

Subject: [boost] Review Wizard Report for March 2011
From: Ronald Garcia (rxg_at_[hidden])
Date: 2011-03-04 15:39:44


==============================================
Review Wizard Status Report for March 2011
==============================================

News
====

1. Move Library Accepted

2. Ratio Library Accepted

3. Chrono Library Accepted

4. GIL.IO Library Accepted

5. Boost 1.46 Released
     New Libraries: Interval Containers

     Revised Libraries: Array, Asio, Bind, Concepts, Filesystem, Fusion, Graph,
     Hash, Iterator, Math, Meta State Machine, Optional, Pool, Program Options,
     Proto, Signals, Spirit, Tokenizer, Unordered, Wave
     Revised Tools: Boostbook, Inspect, Quickbook

Open Issues
===========

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

* Process - reviewed February 2011; review manager: Marshall Clow.
* Phoenix - reviewed March 2011; review manager: Hartmut Kaiser.

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

* GIL.IO - accepted January 2011; author: Christian Henning.
* Move - accepted February 2011; author: Ion Gaztanaga.

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

* Geometry Library - accepted November 2009; author: Barend Gehreis et al.
* Ratio - accepted October 2010; author: Vicente Botet.
* GIL.IO - accepted January 2011; author: Christian Henning.
* Chrono - accepted January 2011; author: Vicente Botet.

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

* Switch - accepted provisionally January 2008; author: Steven Watanabe.
* Log - accepted provisionally March 2010; author: Andrey Semashev.

General Announcements
=====================

As always, we need experienced review managers. The review schedule has
grown substantially but we have few volunteers, so manage reviews if
possible and if not please make sure to watch the review schedule and
participate. 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 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 www.boost.org. If you would
like us to make any modifications or additions to this report before
we do that, 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)
* Endian
* Conversion (M)
* Sorting (M)
* AutoBuffer (M)
* Convert
* Containers
* Type Traits Extensions
* Lockfree (M)
* Fiber (M)
* Quaternions, Vectors, Matrices (M)
* Locale
* Context
* Stopwatches
* Autoindex
* Variadic Macro Data (M)

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

--------------------

Join

----
:Author: Yigong Liu
:Review Manager: Needed
:Download: http://channel.sourceforge.net/
:Description: 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.
Pimpl
-----
:Author: Vladimir Batov
:Review Manager: Needed
:Download: | `Boost Vault <http://www.boost-consulting.com/vault/index.php?action=downloadfile&amp;filename=Pimpl.zip&amp;directory=&amp;>`__
           | http://www.ddj.com/cpp/205918714 (documentation)
:Description: 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.
Endian
------
:Author: Beman Dawes
:Review Manager: Joel Falcou
:Download: http://svn.boost.org/svn/boost/sandbox/endian/
:Description:
Conversion
----------
:Author: Vicente Botet
:Review Manager: Needed
:Download: `Boost Vault <http://www.boostpro.com/vault/index.php?action=downloadfile&amp;filename=conversion.zip&amp;directory=Utilities&amp;>`__
:Description: Generic explicit conversion between unrelated types.
 Boost.Conversion provides:
     * a generic ``convert_to`` function which can be specialized by the user to
       make explicit conversion between unrelated types.
     * a generic ``assign_to`` function which can be specialized by the user to
       make explicit assignation between unrelated types.
     * conversion between ``std::complex`` of explicitly convertible types.
     * conversion between ``std::pair`` of explicitly convertible types.
     * conversion between ``boost::optional`` of explicitly convertible types.
     * conversion between ``boost::rational`` of explicitly convertible types.
     * conversion between ``boost::interval`` of explicitly convertible types.
     * conversion between ``boost::chrono::time_point`` and ``boost::ptime``.
     * conversion between ``boost::chrono::duration`` and 
       ``boost::time_duration``.
Sorting
-------
:Author: Steven Ross
:Review Manager: Needed
:Download: `Boost Vault <http://www.boostpro.com/vault/index.php?action=downloadfile&amp;filename=algorithm_sorting.zip>`__
:Description:
 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.
AutoBuffer
----------
:Author: Thorsten Ottosen
:Review Manager: Robert Stewart
:Download: http://www.cs.aau.dk/~nesotto/boost/auto_buffer.zip
:Description:
  Boost.AutoBuffer provides a container for efficient dynamic, local buffers.
  Furthermore, the container may be used as an alternative to std::vector,
  offering greater flexibility and sometimes better performance.
Convert
--------------
:Author: Vladimir Batov
:Review Manager: Edward Diener
:Download: `Boost Vault <http://www.boostpro.com/vault/index.php?action=downloadfile&amp;filename=boost-string-convert.zip>`__
:Description:
 The Convert library takes the approach of boost::lexical_cast in the area of
 string-to-type and type-to-string conversions, builds on the past
 boost::lexical_cast experience and advances that conversion
 functionality further to additionally provide:
  * throwing and non-throwing conversion-failure behavior;
  * support for the default value to be returned when conversion fails;
  * two types of the conversion-failure check -- basic and better/safe;
  * formatting support based on the standard I/O Streams and the standard
    (or user-defined) I/O Stream-based manipulators
    (like std::hex, std::scientific, etc.);
  * locale support;
  * support for boost::range-compliant char and wchar_t-based string containers;
  * no DefaultConstructibility requirement for the Target type;
  * consistent framework to uniformly incorporate any type-to-type conversions.
 It is an essential tool with applications making extensive use of
 configuration files or having to process/prepare considerable amounts
 of data in, say, XML, etc.
Containers
----------
:Author: Ion Gaztanaga
:Review Manager: John Maddock
:Download: `Boost Vault <http://www.boostpro.com/vault/index.php?action=downloadfile&amp;filename=boost.move.container.zip&amp;directory=Containers&amp;>`__
:Documentation: `Boost Sandbox <http://svn.boost.org/svn/boost/sandbox/move/libs/container/doc/html/index.html>`__
:Description:
 Boost.Container library implements several well-known containers,
 including STL containers. The aim of the library is to offers advanced
 features not present in standard containers or to offer the latest
 standard draft features for compilers that comply with C++03.
Type Traits Extensions
--------------------------
:Author: Frederic Bron
:Review Manager: Joel Falcou
:Download: `Boost Vault <http://www.boostpro.com/vault/index.php?action=downloadfile&amp;filename=type_traits.tar.bz2&amp;directory=Extension&amp;>`__
:Description:
 The purpose of the addition is to add type traits to detect if types T and U
 are comparable in the sense of <, <=, >, >=, == or != operators, i.e. if
 t<u has a sens when t is of type T and u of type U (same for <=, >, >=, ==,
 !=).
 The following traits are added:
 is_equal_to_comparable<T,U>
 is_greater_comparable<T,U>
 is_greater_equal_comparable<T,U>
 is_less_comparable<T,U>
 is_less_equal_comparable<T,U>
 is_not_equal_to_comparable<T,U>
 The names are based on the corresponding names of the standard
 template library (<functional> header, section 20.3.3 of the
 standard).
 The code has the following properties:
 * returns true if t<u is meaningful and returns a value convertible to bool
 * returns false if t<u is meaningless.
 * fails with compile time error if t<u is meaningful and returns void
 (a possibility to avoid compile time error would be to return true
 with an operator, trick but this has little sens as returning false
 would be better)
Lockfree
------------------
:Author: Tim Blechmann
:Review Manager: Needed
:Download: `Boost Vault <http://www.boostpro.com/vault/index.php?action=downloadfile&amp;filename=boost_lockfree-241109.zip&amp;directory=Concurrent%20Programming&amp;>`__
:Documentation: http://tim.klingt.org/boost_lockfree/
:Description:
 Lockfree provides implementations of lock-free data structures.
 Lock-free data structures can be accessed by multiple threads without
 the necessity of blocking synchronization primitives such as guards.
 Lock-free data structures can be used in real-time systems, where
 blocking algorithms may lead to high worst-case execution times, to
 avoid priority inversion, or to increase the scalability for
 multi-processor machines.
 Lockfree provides:
  * boost::lockfree::fifo, a lock-free fifo queue
  * boost::lockfree::stack, a lock-free stack
Fiber
-----
:Author: Oliver Kowalke
:Review Manager: Needed
:Download: `Boost Vault <http://www.boostpro.com/vault/index.php?action=downloadfile&amp;filename=boost.fiber-0.3.7.zip&amp;directory=Concurrent%20Programming&amp;>`__
:Description: C++ Library for launching fibers (micro-threads) and
 synchronizing data between the fibers.
Quaternions, Vectors, Matrices
------------------------------
:Author: Emil Dotchevski
:Review Manager: Needed
:Download: http://www.revergestudios.com/boost-qvm/
:Description: 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.
Locale
------
:Author: Artyom Beilis
:Review Manager: Chad Nelson
:Download: https://sourceforge.net/projects/cppcms/files/boost_locale/boost_locale_for_review.zip/download
:Description: The Locale library provides powerful tools that extend
    existing built-in C++ localization facilities in a Unicode-aware way.
Context
-------
:Author: Oliver Kowalke
:Review Manager: Vicente Botet
:Download: `Boost Vault <http://www.boostpro.com/vault/index.php?action=downloadfile&amp;filename=boost.context-0.1.0.zip&amp;directory=Concurrent%20Programming&amp;>`__
:Description: Context provides the ability to switch between
    different user-level context and is intended to be the basis for a
    higher abstraction like coroutine and fiber.
    A user-level context represents the current execution state, including
    all registers and CPU flags, the instruction pointer, the stack
    pointer. boost::context encapsulates such a user-level context and is
    able to store/restore its associated user-level context. This allows
    multiple execution paths running on a single thread using a sort of
    cooperative scheduling (in contrast a thread is preemptively
    scheduled) - the running boost::context decides explicitly when its
    yields to allow another boost::context to run (user-level context
    switching). A context can only run on a single thread at any point in
    time but may be migrated between thread.
Stopwatches
-----------
:Author: Vicente Botet
:Review Manager: Anthony Williams
:Download: `Boost Vault <http://www.boostpro.com/vault/index.php?action=downloadfile&amp;filename=stopwatches.zip&amp;directory=System>`__
:Description:
   On top of the standard facilities of Boost.Chrono, Stopwatches provides:
   * Stopwatches: A facility to measure elapsed time with the ability to
     start, stop, suspend, or resume measurement.
     * Stopwatch concept
     * Scoped helper classes allowing to pairwise start/stop operations,
       suspend/resume and resume/suspend a Stopwatch.
     * stopwatch, model of Stopwatch capturing elapsed Clock times.
     * stopwatch_accumulator, model of Stopwatch capturing accumulated
       elapsed Clock times.
   * Stopclocks: a complete time reporting package that can be invoked in
     a single line of code.
     * stopwatch_reporter, convenient reporting to an output stream
       (including wide char streams) of the elapsed time of models of
       Stopwatch results.
     * stopclock<Clock> shortcut of stopwatch_reporter<stopwatch<Clock>>
AutoIndex (Tool)
----------------
:Author: John Maddock
:Review Manager: Daniel James
:Download: `Boost Vault <http://www.boostpro.com/vault/index.php?action=downloadfile&amp;filename=auto_index-0.9.zip>`__
:Documentation: `Boost Sandbox <http://svn.boost.org/svn/boost/sandbox/tools/auto_index/doc/html/index.html>`__
:Description:
    AutoIndex is a tool for taking the grunt work out of indexing a
    Boostbook/Docbook document (perhaps generated by your Quickbook file
    mylibrary.qbk, and perhaps using also Doxygen autodoc) that describes
    C/C++ code.
    Traditionally, in order to index a Docbook document you would have to
    manually add a large amount of <indexterm> markup: in fact one
    <indexterm> for each occurrence of each term to be indexed.
    Instead AutoIndex will automatically scan one or more C/C++ header
    files and extract all the function, class, macro and typedef names
    that are defined by those headers, and then insert the <indexterm>s
    into the Docbook XML document for you.
Variadic Macro Data
-------------------
:Author: Edward Diener
:Review Manager: Needed
:Download: `Boost Sandbox <http://svn.boost.org/svn/boost/sandbox/variadic_macro_data/>`__
:Description:
  The variadic_macro_data 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.
Libraries under development
===========================
See http://svn.boost.org/trac/boost/wiki/LibrariesUnderConstruction
for a current listing of libraries under development.

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