LICENSE_1_0.txt Documentation

Official TypeScript developer resources and documentation for boostorg/LICENSE_1_0.txt. Verified technical context for AI.

0 stars TypeScript TypeScript 1 file ยท ~30,017 tokens
RAW Doc

1. Project Overview & Quickstart (boostorg/LICENSE_1_0.txt)

LICENSE_1_0.txt

Open-source repository boostorg/LICENSE_1_0.txt

Repository Details

Note: High-volume repository documentation is actively indexed and synchronized by YakaAI.

2. Official Technical Reference & Guides (boostorg/website)

File: README.md

The boost website.

This is the source code for the boost website.
It's automatically updated from the master branch.
The beta website is available for
testing and experiments, and is automatically updated from the beta branch.

If you want to edit the website, or run it locally, see the
guide to updating the website.

To add to the release notes, create a pull request for the appropriate file in
the history directory.
You can preview the release notes for upcoming releases at the
in progress release page.
This is updated once an hour.


File: LICENSE_1_0.txt

Boost Software License - Version 1.0 - August 17th, 2003

Permission is hereby granted, free of charge, to any person or organization
obtaining a copy of the software and accompanying documentation covered by
this license (the "Software") to use, reproduce, display, distribute,
execute, and transmit the Software, and to prepare derivative works of the
Software, and to permit third-parties to whom the Software is furnished to
do so, all subject to the following:

The copyright notices in the Software and this entire statement, including
the above license grant, this restriction and the following disclaimer,
must be included in all copies of the Software, in whole or in part, and
all derivative works of the Software, unless such copies or derivative
works are solely in the form of machine-executable object code generated by
a source language processor.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.


File: robots.txt

User-agent: *
Disallow: /development/ # Hide huge zip files
Disallow: /doc/libs/1_49_0_beta1/
Crawl-delay: 10
Sitemap: https://www.boost.org/sitemap.xml.php


File: .travis.yml

Distributed under the Boost Software License, Version 1.0. (See accompanying

file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

dist: precise
language: php
php:
'5.3'
addons:
apt:
packages:
- php5-cgi
install:
# Install quickbook
- mkdir $HOME/bin
- wget -O $HOME/bin/quickbook https://github.com/boostorg/quickbook/releases/download/linux-binary/quickbook
- chmod a+x $HOME/bin/quickbook
- export PATH=$PATH:$HOME/bin

text
# Install php dependencies
- cd ${TRAVIS_BUILD_DIR}/common/code/test
- composer install --no-interaction --prefer-source

script:
# Run the tests
- cd ${TRAVIS_BUILD_DIR}/common/code/test
- ./vendor/bin/tester -p php tests
- ./vendor/bin/tester -p php5-cgi tests

text
# Check php files are valid php 5.3
- cd ${TRAVIS_BUILD_DIR}/
- 'find * -name "vendor" -prune -o -name "*.php" -print | xargs grep -L "CONTAINS_SYNTAX_ERROR" | xargs -n 1 php -l'

# Try running the site tools to check if the change has introduced any errors
# into their source and data files
- ./site-tools/update-doc-list.php
- ./site-tools/update-pages.php
- git status

File: common/code/test/README.txt

Most of the website is completely self-contained, but the tests use composer
to pull in some dependencies. You'll need to install composer from
https://getcomposer.org/

Then in this directory run:

text
composer install

And that should install all the dependencies into the vendor directory.

You should now be able to run individual tests directly:

text
php filters.phpt

Or run all the tests using something like:

text
./vendor/bin/tester -p php -c config/php.ini tests

Although for a full test including things like http headers, should try to use
a php-cgi executable.


File: common/code/test/composer.json

{
"name": "boost/website-tests",
"description": "Some very basic tests of the website code.",
"repositories": [
{
"type": "package",
"package": {
"name": "mustache/spec",
"version": "master",
"source": {
"url": "https://github.com/mustache/spec.git",
"type": "git",
"reference": "41d1eb385676cf6a673b8d612b6ab5cdfd5a660c"
}
}
}
],
"require": {
"nette/tester": "*",
"mustache/spec": "master"
},
"minimum-stability": "dev",
"prefer-stable": true
}


File: development/report-apr-2006.rst

============================================ Review Wizard Status Report for April 2006

News

April 1, 2006 -- The "Promotion Traits" Review Begins (Fast-Track)
Proposal to add promote, integral_promotion and
floating_point_promotion class templates to type_traits library.

April 6, 2006 -- The "Function Types" Review Begins (Fast-Track)
This library provides a metaprogramming facility
to classify, decompose and synthesize function-, function pointer-,
function reference- and member function pointer types.

March 22, 2006 -- Asio Accepted
Announcement: https://lists.boost.org/Archives/boost/2006/03/102287.php

February 17, 2006 - Shared Memory Library Accepted
Announcement: https://lists.boost.org/boost-announce/2006/02/0083.php

February 5, 2006 - Fixed String Library Rejected
Announcement: https://lists.boost.org/boost-announce/2006/02/0081.php

We need experienced review managers. Please take a look at
the list of libraries in need of managers and check out their
descriptions. If you can serve as review manager for any of
them, email Ron Garcia or Tom Brinkman "garcia at cs dot indiana dot edu"
and "reportbase at gmail dot com" respectively.

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 Tom.

If you're library author and plan on submitting a library for review
in the next 3-6 months, send Ron or Tom a
short description of your library and we'll add it to the
Libraries Under Construction below. We know that there are many
libaries that are near completion, but we have hard time keeping
track all of them. Please keep us informed about your progress.

Review Queue

  • Promotion Traits - April 1, 2006 (fast-track)
  • Function Types - April 6, 2006 (fast-track)
  • Fusion
  • Pimpl Pointer
  • Property Tree
  • Physical Quantities System
  • Intrusive Containers

Function Types (mini-re-review)

text
:Author: Tobias Schwinger
:Review Manager: Tom Brinkman

:Download:
  http://boost-sandbox.sourceforge.net/vault/

:Description:
  This library provides a metaprogramming facility to classify,
  decompose and synthesize function-, function pointer-, function
  reference- and member function pointer types. For the purpose of
  this documentation, these types are collectively referred to as
  function types (this differs from the standard definition and
  redefines the term from a programmer's perspective to refer to
  the most common types that involve functions).

  The classes introduced by this library shall conform to the
  concepts of the Boost Metaprogramming library (MPL).

  The Function Types library enables the user to:
   * test an arbitrary type for being a function type of specified kind,
   * inspect properties of function types,
   * view and modify sub types of an encapsulated function type with
 MPL Sequence operations, and
   * synthesize function types.

  This library supports variadic functions and can be configured
  to support non-default calling conventions.

Promotion Traits

text
:Author: Alexander Nasonov
:Review Manager: Tobias Schwinger

:Download:
  http://cpp-experiment.sourceforge.net/promote-20050917.tar.gz

:Description:
  Proposal to add promote, integral_promotion and
  floating_point_promotion class templates to type_traits library.

  Alexander tried it on different compilers with various success:
  GNU/Linux (gentoo-hardened): gcc 3.3 and 3.4, Intel 7, 8 and 9
  Windows: VC7 free compiler
  Sparc Solaris: Sun C++ 5.3 and 5.7

  See comments at the beginning of
  promote_enum_test.cpp for what is broken.

Intrusive Containers

:Author: Olaf Krzikalla
:Review Manager: Thorsten Ottosen

:Download:
http://people.freenet.de/turtle++/intrusive.zip

:Description:
While intrusive containers were and are widely used in C, they became
more and more forgotten in the C++-world due to the presence of the
standard containers, which don't support intrusive
techniques. Boost.Intrusive not only reintroduces this technique to
C++, but also encapsulates the implementation in STL-like
interfaces. Hence anyone familiar with standard containers can use
intrusive containers with ease.

Fusion

:Author: Joel de Guzman
:Review Manager: Ron Garcia

:Download:
http://spirit.sourceforge.net/dl_more/fusion_v2/
http://spirit.sourceforge.net/dl_more/fusion_v2.zip

:Description:
Fusion is a library of heterogenous containers and views and
algorithms. A set of heterogenous containers (vector, list, set and
map) is provided out of the box along with view classes that present
various composable views over the data. The containers and views
follow a common sequence concept with an underlying iterator concept
that binds it all together, suitably making the algorithms fully
generic over all sequence types.

text
The architecture is somewhat modeled after MPL which in turn is
 modeled after STL. It is code-named "fusion" because the library is
 the "fusion" of compile time metaprogramming with runtime programming.

Pimpl Pointer

text
:Author: Asger Mangaard
:Review Manager: Need Volunteer

:Download:
  Boost Sandbox (http://boost-consulting.com/vault/) under pimpl_ptr.

:Description:
  The pimpl idiom is widely used to reduce compile times and disable
  code coupling. It does so by moving private parts of a class from the
  .hpp file to the .cpp file.
  However, it's implementation can be tricky, and with many pitfalls
  (especially regarding memory management).
  The pimpl_ptr library is a single header file, implementing a special
  policy based smart pointer to greately ease the implementation of the
  pimpl idiom.

Property Tree

:Author: Marcin Kalicinski
:Review Manager: Need Volunteer

:Download:
Boost Sandbox Vault - property_tree_rev4.zip
http://kaalus.atspace.com/ptree

:Description:
Property tree is a data structure - a tree of (key, value)
pairs. It differs from its cousin, "usual" property map, because
it is hierarchical, not linear. Thus, it is more like a
minimalistic Document Object Model, but not bound to any
specific file format. It can store contents of XML files,
windows registry, JSON files, INI files, even command line
parameters. The library contains parsers for all these formats,
and more.

Physical Quantities System

:Author: Andy Little
:Review Manager: Need Volunteer

:Download:
http://tinyurl.com/7m5l8

:Description:
PQS (Physical Quantities System) is used for modelling
physical-quantities in C++ programs. The advantages over using
built-in types in the role include: trapping errors in
dimensional analysis, detailed semantic specifications for
reliable and repeatable conversions between units and
self-documentation of source code. PQS is based around the
principles and guidelines of the International System of Units
(SI). The library predefines a large number of quantities,
physical and maths constants using a common syntax. The library
also includes (or will soon include) classes for manipulating
quantities algebraically, for example angles (radians,
steradians, degrees,minutes,seconds) and vectors, matrices and
quaternions for more advanced modelling of physical systems.

Libraries under development

Geometry Library - Author - Andy Little (?)

C2_functions Library - Author - Marcus Mendenhall

Please let us know of any libraries you are currently
developing that you intend to submit for review.


File: development/report-apr-2008.rst

========================================== Review Wizard Status Report for April 2008

News

December 7 - Forward Library Accepted - Awaiting SVN

December 16 - Unordered Containers Library Accepted - In SVN

December 21 - Factory Library Accepted - Awaiting SVN

January 13 - Switch Library Accepted Provisionally - Awaiting submission for
mini review

January 18 - Singleton Library Rejected - Awaiting resubmission, John Torjo
has already volunteered to manage the next review

January 30 - Flyweight Library Accepted - Awaiting SVN

February 13 - Logging Library Rejected - Awaiting resubmission for new
review, John Torjo has already resubmitted and Gennadiy Rozental has again
volunteered to manage the review

February 27 - Floating Point Utilities Library Accepted - Awaiting SVN

March 14 - Proto Library Accepted - Exists as a component in xpressive, but
not yet as a separate library

April 20 - Egg review ongoing

Older Issues

The Scope Exit review report has not been submitted. John Phillips will step
in as substitute review manager and produce a report

The binary_int library, accepted in October 2005 has not yet been submitted
to SVN. The authors are strongly encouraged to contact the review wizards

The Accumulators library, accepted in February 2007 has not yet been
submitted to SVN

The Quantitative Units library, accepted in April 2007 has not yet been
submitted to SVN

The Globally Unique Identifier library, accepted provisionally in May 2007
has not yet been submitted for mini-review and full acceptance

The Time Series Library, accepted in August 2007 has not yet been submitted
to SVN

The Exception library, accepted in October 2007 is in SVN

For libraries that are still waiting to get into SVN, please get them
ready and into the repository. The developers did some great work
making the libraries, so don't miss the chance to share that work with
others. Also notice that the review process page has been updated with
a section on rights and responsibilities of library submitters.

For the Scope Exit review, we would like to publicly apologize to Alexander
Nasonov for how long this has languished without a report. The review
wizards will work to make sure this doesn't happen any more.

General Announcements

As always, we need experienced review managers. In the past few months there
have been a large number of reviews, but the flow of high quality
submissions is just as big, 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 or
library contributors. If you can serve as review manager for any of them,
email Ron Garcia or John Phillips, "garcia at cs dot indiana dot edu" and
"phillips at mps dot ohio-state dot edu" respectively.

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.

If you're a library author and plan on submitting a library for review in the
next 3-6 months, send Ron or John a short description of your library and
we'll add it to the Libraries Under Construction below. We know that there
are many libraries that are near completion, but we have hard time keeping
track all of them. Please keep us informed about your progress.

Review Queue

  • Finite State Machines
  • Property Map (fast-track)
  • Graph (fast-track)
  • Lexer
  • Thread-Safe Signals
  • Boost.Range (Update)
  • Shifted Pointer
  • DataFlow Signals
  • Logging
  • Futures

Finite State Machines

:Author: Andrey Semashev
:Review Manager: Martin Vuille
:Download: Boost Sandbox Vault <http://tinyurl.com/yjozfn>__

:Description:

The Boost.FSM library is an implementation of FSM (stands for
Finite State Machine) programming concept. The main goals of the
library are:

  • Simplicity. It should be very simple to create state machines using
    this library.
  • Performance. The state machine infrastructure should not be
    very time and memory-consuming in order to be applicable in
    more use cases.
  • Extensibility. A developer may want to add more states to an
    existing state machine. A developer should also be able to
    specify additional transitions and events for the machine with
    minimum modifications to the existing code.

Property Map (fast-track)

:Author: Andrew Sutton
:Review Manager: Jeremy Siek
:Download: http://svn.boost.org/svn/boost/sandbox/graph-v2
:Description:
A number of additions and modifications to the Property Map Library,
including:

  • A constant-valued property map, useful for naturally unweighted
    graphs.
  • A noop-writing property map, useful when you have to provide an
    argument, but just don't care about the output.
  • See
    ChangeLog <http://svn.boost.org/trac/boost/browser/sandbox/graph-v2/libs/property_map/ChangeLog>__
    for details.

Graph (fast-track)

:Author: Andrew Sutton
:Review Manager: Jeremy Siek
:Download: http://svn.boost.org/svn/boost/sandbox/graph-v2
:Description:
A number of additions and modifications to the Graph Library,
including:

  • Two new graph classes (undirected and directed) which are intended
    to make the library more approachable for new developers
  • A suite of graph measures including degree and closeness
    centrality, mean geodesic distance, eccentricity, and clustering
    coefficients.
  • An algorithm for visiting all cycles in a directed graph (Tiernan's
    from 1970ish). It works for undirected graphs too, but reports cycles
    twice (one for each direction).
  • An algorithm for visiting all the cliques a graph (Bron&Kerbosch).
    Works for both directed and undirected.
  • Derived graph measures radius and diameter (from eccentricity) and
    girth and circumference (from Tiernan), and clique number (from
    Bron&Kerbosch).
  • An exterior_property class that helps hides some of the weirdness
    with exterior properties.
  • runtime and compile-time tests for the new algorithms.
  • a substantial amount of documentation
  • Graph cores, implemented by David Gleich (@Stanford University)
  • Deterministic graph generators - capable of creating or inducing
    specific types of graphs over a vertex set (e.g., star graph, wheel
    graph, prism graph, etc). There are several other specific types that
    could be added to this, but I haven't had the time just yet.

Lexer

:Author: Ben Hanson

:Review Manager: Need Volunteer

:Download: Boost Sandbox Vault <http://boost-consulting.com/vault/index.php?action=downloadfile&filename=boost.lexer.zip&directory=Strings%20-%20Text%20Processing&>__

:Description:

A programmable lexical analyser generator inspired by 'flex'.
Like flex, it is programmed by the use of regular expressions
and outputs a state machine as a number of DFAs utilising
equivalence classes for compression.

Thread-Safe Signals

:Author: Frank Hess

:Review Manager: Need Volunteer

:Download: Boost Sandbox Vault <http://www.boost-consulting.com/vault/index.php?&direction=0&order=&directory=thread_safe_signals>__

:Description: A thread-safe implementation of Boost.Signals that
has some interface changes to accommodate thread safety, mostly with
respect to automatic connection management.

Boost.Range (Update)

:Author: Neil Groves

:Review Manager: Needed

:Download: Boost Sandbox Vault <http://www.boost-consulting.com/vault/index.php?action=downloadfile&filename=range_ex.zip&directory=>__

:Description: A significant update of the range library, including
range adapters.

Shifted Pointer

:Author: Phil Bouchard

:Review Manager: Needed

:Download: Boost Sandbox Vault <http://www.boost-consulting.com/vault/index.php?&direction=0&order=&directory=Memory>__

:Description: Smart pointers are in general optimized for a specific
resource (memory usage, CPU cycles, user friendliness, ...) depending
on what the user need to make the most of. The purpose of this smart
pointer is mainly to allocate the reference counter (or owner) and
the object itself at the same time so that dynamic memory management
is simplified thus accelerated and cheaper on the memory map.

DataFlow Signals

:Author: Stjepan Rajko

:Review Manager: Needed

:Download: http://dancinghacker.com/code/dataflow/

:Description: Dataflow is a generic library for dataflow programming.
Dataflow programs can typically be expressed as a graph in which vertices
represent components that process data, and edges represent the flow of data
between the components. As such, dataflow programs can be easily
reconfigured by changing the components and/or the connections.

Logging

:Author: John Torjo

:Review Manager: Gennadiy Rozental

:Download: http://torjo.com/log2/

:Description:
Used properly, logging is a very powerful tool. Besides aiding
debugging/testing, it can also show you how your application is
used. The Boost Logging Library allows just for that, supporting
a lot of scenarios, ranging from very simple (dumping all to one
destination), to very complex (multiple logs, some enabled/some
not, levels, etc). It features a very simple and flexible
interface, efficient filtering of messages, thread-safety,
formatters and destinations, easy manipulation of logs, finding
the best logger/filter classes based on your application's
needs, you can define your own macros and much more!

Futures

:Author: Braddock Gaskill

:Review Manager: Needed

:Download: http://braddock.com/~braddock/future/

:Description: The goal of the boost.future library is to provide a definitive
future implementation with the best features of the numerous
implementations, proposals, and academic papers floating around, in the
hopes to avoid multiple incompatible future implementations in libraries of
related concepts (coroutines, active objects, asio, etc). This library hopes
to explore the combined implementation of the best future concepts.


File: development/report-dec-2009.rst

============================================== Review Wizard Status Report for December 2009

News

Polygon Library Accepted

Boost 1.40 Released
New Libraries: None
Revised Libraries: Accumulators, Asio, Circular Buffer, Filesystem, Foreach, Function, Fusion, Hash, Interprocess, Intrusive, MPL, Program Options, Proto, Python, Serialization, Unordered, Xpressive

Geometry Library Accepted

Boost 1.41 Released
New Libraries: Property Tree
Revised Libraries: DateTime, Filesystem, Iostreams, Math, Multi-index Containers, Proto, Python, Regex, Spirit, System, Thread, Unordered, Utility, Wave, Xpressive

MSM Library Review Underway

Constrained Value Review - Review Result still Pending

Older Issues

The Time Series Library, accepted in August 2007, has not yet been
submitted to SVN.

The Floating Point Utilities Library, has not yet been submitted to
SVN. It is slated to be integrated with the Boost.Math library.

The Switch Library, accepted provisionally in January 2008,
has not yet been submitted for mini-review and full acceptance.

The Phoenix Library, accepted provisionally in September 2008,
has not yet been submitted for mini-review and full acceptance.

For libraries that are still waiting to get into SVN, please get them
ready and into the repository. The developers did some great work
making the libraries, so don't miss the chance to share that work with
others.

General Announcements

As always, we need experienced review managers. The review queue has
been growing substantially but we have had 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 or library
contributors. If you can serve as review manager for any of them,
email Ron Garcia or John Phillips, "garcia at osl dot iu 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. A recent effort is trying to secure at least five
people who promise to submit reviews as a precondition to starting
the review period. Consider volunteering for this and even taking the
time to create the review as early as possible. 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.

If you're a library author and plan on submitting a library for review
in the next 3-6 months, send Ron or John a short description of your
library and we'll add it to the Libraries Under Construction below. We
know that there are many libraries that are near completion, but we
have hard time keeping track all of them. Please keep us informed
about your progress.

The included review queue isn't a classic queue. It is more an unordered list of the libraries awaiting review. As such, any library in the queue can be reviewed once the developer is ready and a review manager works with the wizards and the developer to schedule a review. It is not FIFO.

Review Queue

  • Lexer
  • Shifted Pointer
  • Logging
  • Log
  • Join
  • Pimpl
  • Task
  • Endian
  • Conversion
  • Sorting
  • GIL.IO
  • AutoBuffer
  • String Convert
  • Move
  • Containers
  • Interval Containers
  • Type Traits Extensions
  • Interthreads
  • Bitfield
  • Lockfree

Lexer

:Author: Ben Hanson

:Review Manager: Eric Neibler

:Download: Boost Vault <http://boost-consulting.com/vault/index.php?action=downloadfile&filename=boost.lexer.zip&directory=Strings%20-%20Text%20Processing>__

:Description:
A programmable lexical analyser generator inspired by 'flex'.
Like flex, it is programmed by the use of regular expressions
and outputs a state machine as a number of DFAs utilising
equivalence classes for compression.

Shifted Pointer

:Author: Phil Bouchard

:Review Manager: Needed

:Download: Boost Vault <http://www.boost-consulting.com/vault/index.php?&direction=0&order=&directory=Memory>__

:Description:
Smart pointers are in general optimized for a specific resource
(memory usage, CPU cycles, user friendliness, ...) depending on
what the user need to make the most of. The purpose of this smart
pointer is mainly to allocate the reference counter (or owner) and
the object itself at the same time so that dynamic memory management
is simplified thus accelerated and cheaper on the memory map.

Logging

:Author: John Torjo

:Review Manager: Gennadiy Rozental

:Download: http://torjo.com/log2/

:Description: Used properly, logging is a very powerful tool. Besides aiding
debugging/testing, it can also show you how your application is
used. The Boost Logging Library allows just for that, supporting
a lot of scenarios, ranging from very simple (dumping all to one
destination), to very complex (multiple logs, some enabled/some
not, levels, etc). It features a very simple and flexible
interface, efficient filtering of messages, thread-safety,
formatters and destinations, easy manipulation of logs, finding
the best logger/filter classes based on your application's
needs, you can define your own macros and much more!

Log

:Author: Andrey Semashev

:Review Manager: Needed

:Download: Boost Vault <http://tinyurl.com/cm9lum>__

:Description: The library is aimed to help adding logging features to
applications. It provides out-of-box support for many widely used
capabilities, such as formatting and filtering based on attributes,
sending logs to a syslog server or to Windows Event Log, or simply
storing logs into files. It also provides basic support for the
library initialization from a settings file. The library can also be
used for a wider range of tasks and implement gathering and processing
statistical information or notifying user about application events.

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&filename=Pimpl.zip&directory=&>__
| 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.

Task

:Author: Oliver Kowalke

:Review Manager: Needed

:Download: Boost Vault <http://www.boostpro.com/vault/index.php?action=downloadfile&amp;filename=boost-threadpool.2.tar.gz&amp;directory=Concurrent%20Programming>__

:Description:

Formerly called Thread Pool
The library provides:

  • thread creation policies:

    • determines the management of worker threads:
    • fixed set of threads in pool
    • create workerthreads on demand (depending on context)
    • let worker threads ime out after certain idle time
  • channel policies: manages access to queued tasks:
    * bounded channel with high and low watermark for queuing tasks
    * unbounded channel with unlimited number of queued tasks
    * rendezvous syncron hand-over between producer and consumer threads

  • queueing policy: determines how tasks will be removed from channel:
    * FIFO
    * LIFO
    * priority queue (attribute assigned to task)
    * smart insertions and extractions (for instance remove oldest task with
    certain attribute by newest one)

  • tasks can be chained and lazy submit of taks is also supported (thanks to
    Braddocks future library).

  • returns a task object from the submit function. The task it self can
    be interrupted if its is cooperative (means it has some interruption points
    in its code -> this_thread::interruption_point() ).

Endian

:Author: Beman Dawes

:Review Manager: Needed

:Download: http://mysite.verizon.net/beman/endian-0.10.zip

: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 8X as fast as std::sort, depending on processor,
compiler optimizations, and data distribution. float_sort is roughly
7X as fast as std::sort on x86 processors. string_sort is roughly 2X
as fast as std::sort.

GIL.IO

:Author: Christian Henning

:Review Manager: Needed

:Download: GIL Google Code Vault <http://gil-contributions.googlecode.com/files/rc2.zip>__

:Description: I/O extension for boost::gil which allows reading and
writing of/in various image formats ( tiff, jpeg, png, etc ). This
review will also include the Toolbox extension which adds some common
functionality to gil, such as new color spaces, algorithms, etc.

AutoBuffer

:Author: Thorsten Ottosen

:Review Manager: Needed

:Download: Here <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.

String Convert

:Author: Vladimir Batov

:Review Manager: Needed

:Download: Boost Vault <http://www.boostpro.com/vault/index.php?action=downloadfile&amp;filename=boost-string-convert.zip>__

:Description:

The 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.

Move

:Author: Ion Gaztanaga

:Review Manager: Needed

:Download: http://svn.boost.org/svn/boost/sandbox/move/ and online documentation at http://svn.boost.org/svn/boost/sandbox/move/libs/move/doc/html/index.html

:Description:

In C++0x, move semantics are implemented with the introduction of
rvalue references. They allow us to implement move() without verbosity
or runtime overhead. Boost.Move is a library that offers tools to
implement those move semantics not only in compilers with rvalue
references but also in compilers conforming to C++03.

Containers

:Author: Ion Gaztanaga

:Review Manager: Needed

:Download: http://www.boostpro.com/vault/index.php?action=downloadfile&filename=boost.move.container.zip&directory=Containers&

:Documentation: 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.

Interval Containers Library

:Author: Joachim Faulhaber

:Download: http://www.boostpro.com/vault/index.php?action=downloadfile&filename=itl_3_2_0.zip&directory=Containers

:Documentation: http://herold-faulhaber.de/boost_itl/doc/libs/itl/doc/html/index.html

:Review Manager: Needed

:Description:

The Interval Template Library (Itl) provides intervals
and two kinds of interval containers: Interval_sets and
interval_maps. Interval_sets and maps can be used just
as sets or maps of elements. Yet they are much more
space and time efficient when the elements occur in
contiguous chunks: intervals. This is obviously the case
in many problem domains, particularly in fields that deal
with problems related to date and time.

Interval containers allow for intersection with interval_sets
to work with segmentation. For instance you might want
to intersect an interval container with a grid of months
and then iterate over those months.

Finally interval_maps provide aggregation on
associated values, if added intervals overlap with
intervals that are stored in the interval_map. This
feature is called aggregate on overlap. It is shown by
example:

::

text
typedef set<string> guests;
 interval_map<time, guests> party;
 guests mary; mary.insert("Mary");
 guests harry; harry.insert("Harry");
 party += make_pair(interval<time>::rightopen(20:00, 22:00),mary);
 party += make_pair(interval<time>::rightopen_(21:00, 23:00),harry);
 // party now contains
 [20:00, 21:00)->{"Mary"}
 [21:00, 22:00)->{"Harry","Mary"} //guest sets aggregated on overlap
 [22:00, 23:00)->{"Harry"}

As can be seen from the example an interval_map has both
a decompositional behavior (on the time dimension) as well as
a accumulative one (on the associated values).

Type Traits Extensions

:Author: Frederic Bron

:Review Manager: Needed

:Download: http://svn.boost.org/trac/boost/browser/sandbox/type_traits

: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, >=, ==,
!=).

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 ( header, section 20.3.3 of the
standard).

The code has the following properties:

  • returns true if t`__

:Description:

Boost.InterThreads extends Boost.Threads adding some features:
* thread decorator: thread_decorator allows to define
setup/cleanup functions which will be called only once by
thread: setup before the thread function and cleanup at thread
exit.
* thread specific shared pointer: this is an extension of the
thread_specific_ptr providing access to this thread specific
context from other threads. As it is shared the stored pointer
is a shared_ptr instead of a raw one.
* thread keep alive mechanism: this mechanism allows to detect
threads that do not prove that they are alive by calling to the
keep_alive_point regularly. When a thread is declared dead a
user provided function is called, which by default will abort
the program.
* thread tuple: defines a thread groupe where the number of
threads is know statically and the threads are created at
construction time.
* set_once: a synchonizer that allows to set a variable only once,
notifying to the variable value to whatever is waiting for that.
* thread_tuple_once: an extension of the boost::thread_tuple which
allows to join the thread finishing the first, using for that
the set_once synchronizer.
* thread_group_once: an extension of the boost::thread_group which
allows to join the thread finishing the first, using for that
the set_once synchronizer.

(thread_decorator and thread_specific_shared_ptr) are based on the
original implementation of threadalert written by Roland Schwarz.

Boost.InterThreads extends Boost.Threads adding thread setup/cleanup
decorator, thread specific shared pointer, thread keep alive
mechanism and thread tuples.

Bitfield

:Author: Vicente J. Botet Escriba

:Review Manager: Needed

:Download: http://svn.boost.org/svn/boost/sandbox/bitfield with documentation available at http://svn.boost.org/svn/boost/sandbox/bitfield/libs/integer/doc/index.html

:Description:

Portable bitfields traits. Boost.Bitfield consists of:

  • a generic bitfield traits class providing generic getter and setter methods.
  • a BOOST_BITFIELD_DCL macro making easier the definition of the bitfield traits and the bitfield getter and setter functions.

Lockfree

:Author: Tim Blechmann

:Review Manager: Needed

:Download: http://www.boostpro.com/vault/index.php?action=downloadfile&filename=boost_lockfree-241109.zip&directory=Concurrent%20Programming&

:Documentation: http://tim.klingt.org/boost_lockfree/

:Description:

boost.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.

boost.lockfree provides:

  • boost::lockfree::fifo, a lock-free fifo queue
  • boost::lockfree::stack, a lock-free stack

the code is available from from my personal git repository:

Libraries under development

Persistent

:Author: Tim Blechmann

:Description:

A library, based on Boost.Serialization, that provides access to persistent
objects with an interface as close as possible to accessing regular objects
in memory.

  • object ownership concepts equivalent to the ones used by Boost.SmartPtr:
    shared, weak, scoped (and raw)
  • ACID transactions, including recovery after a crash and "Serializable"
    isolation level
  • concurrent transactions, nested transactions, distributed transactions
  • concurrent access containers: STL containers whose nodes are implemented as
    persistent objects and can be accessed without moving the container to
    memory. Concurrent transactions modifying the container are only repeated in
    the rare cases the same container node is changed simultanisouly by 2
    threads.
  • extensible by other transactional resources, e.g. an object relational
    mapper based on the upcoming Boost.Rdb library. Multiple resources can be
    combined to one database, with distributed transactions among them.

Please let us know of any libraries you are currently
developing that you intend to submit for review.

See http://svn.boost.org/trac/boost/wiki/LibrariesUnderConstruction
for a current listing of libraries under development.


File: development/report-jan-2006.rst

============================================ Review Wizard Status Report for January 2006

News

Happy New Year! Here are some statistics regarding Boost Library
reviews in 2005:

  • 12 Libraries were reviewed
  • 8 Libraries were accepted
  • 1 Library (Function Types) was accepted pending a mini-review
  • 2 Libraries were rejected
  • 1 Library has yet to receive a final verdict (ASIO)

Policy Pointer has been removed from the review queue because the author has
stated that it is not quite ready.

We need review managers. Please take a look at the list of libraries
in need of managers and check out their descriptions. If you can
serve as review manager for any of them, send one of us an email.

Note:
If you have any suggestions about how we could improve
the Review Wizard's status report,
please email "reportbase at gmail dot com"
and "garcia at cs dot indiana dot edu".

Review Managers Needed

There are a few libraries in the review queue in need
of review managers. If you would like to volunteer to be a review
manager, please contact Ron or Tom.

The following libraries still require review managers:

  • Fusion
  • Shmem
  • Pimpl Pointer
  • Type Traits (modification)
  • Function Types

Review Queue

  • Fixed Strings - January 19 2006 - January 28 2006

  • Intrusive Containers

  • Function Types (mini-re-review)

  • Shmem

  • Fusion

  • Pimpl Pointer

  • Type Traits (modification)


Fixed Strings

:Author: Reece Dunn
:Review Manager: Harmut Kaiser

:Download:
Boost Sandbox (http://boost-sandbox.sourceforge.net/) under fixed_string

:Description:
The fixed string library provides buffer overrun protection for static
sized strings (char s[ n ]). It provides a C-style string
interface for compatibility with C code (for
example, porting a C program to C++).
There is also a std::string-style interface using a class based on
flex_string by Andre Alexandrescu with a few limitations due to the
non-resizable nature of the class.

Intrusive Containers

:Author: Olaf Krzikalla
:Review Manager: to be determined

:Download:
http://people.freenet.de/turtle++/intrusive.zip

:Description:
While intrusive containers were and are widely used in C, they became
more and more forgotten in the C++-world due to the presence of the
standard containers, which don't support intrusive
techniques. Boost.Intrusive not only reintroduces this technique to
C++, but also encapsulates the implementation in STL-like
interfaces. Hence anyone familiar with standard containers can use
intrusive containers with ease.

Function Types (mini-re-review)

text
:Author: Tobias Schwinger
:Review Manager: to be determined

:Download:
  http://boost-sandbox.sourceforge.net/vault/ 

:Description:
 This library provides a metaprogramming facility 
  to classify, decompose and synthesize function-, 
  function pointer-, function reference- and 
  member function pointer types. For the purpose 
  of this documentation, these types are 
  collectively referred to as function 
  types (this differs from the standard 
  definition and redefines the term from 
  a programmer's perspective to refer to 
  the most common types that involve functions). 

 The classes introduced by this library 
  shall conform to the concepts of the 
  Boost Metaprogramming library (MPL). 

 The Function Types library enables the user to: 
  * test an arbitrary type for 
being a function type of specified kind, 
  * inspect properties of function types, 
  * view and modify sub types of an 
encapsulated function type with 
MPL Sequence operations, and 
  * synthesize function types. 

 This library supports variadic functions and 
  can be configured to support 
  non-default calling conventions.

Shmem

:Author: Ion Gaztanaga
:Review Manager: to be determined

:Download:
Boost Sandbox Vault -> Memory (http://boost-sandbox.sourceforge.net/vault/index.php?direction=0&order=&directory=Memory)

text
http://ice.prohosting.com/newfunk/boost/libs/shmem/doc/html/index.html

:Description:
Shmem offers tools to simplify shared memory usage in
applications. These include shared memory creation/destruction and
synchronization objects. It also implements dynamic allocation of
portions of a shared memory segment and an easy way to construct C++
objects in shared memory.

text
Apart from this, Shmem implements a wide range of STL-like containers
 and allocators that can be safely placed in shared memory, helpful to
 implement complex shared memory data-bases and other efficient
 inter-process communications.

Fusion

:Author: Joel de Guzman
:Review Manager: to be determined

:Download:
http://spirit.sourceforge.net/dl_more/fusion_v2/
http://spirit.sourceforge.net/dl_more/fusion_v2.zip

:Description:
Fusion is a library of heterogenous containers and views and
algorithms. A set of heterogenous containers (vector, list, set and
map) is provided out of the box along with view classes that present
various composable views over the data. The containers and views
follow a common sequence concept with an underlying iterator concept
that binds it all together, suitably making the algorithms fully
generic over all sequence types.

text
The architecture is somewhat modeled after MPL which in turn is
 modeled after STL. It is code-named "fusion" because the library is
 the "fusion" of compile time metaprogramming with runtime programming.

Pimpl Pointer

text
:Author: Asger Mangaard
:Review Manager: to be determined

:Download:
  Boost Sandbox (http://boost-consulting.com/vault/) under pimpl_ptr.

:Description:
  The pimpl idiom is widely used to reduce compile times and disable
  code coupling. It does so by moving private parts of a class from the
  .hpp file to the .cpp file.
  However, it's implementation can be tricky, and with many pitfalls
  (especially regarding memory management).
  The pimpl_ptr library is a single header file, implementing a special
  policy based smart pointer to greately ease the implementation of the
  pimpl idiom.

Type_Traits (modification)

text
:Author: Alexander Nasonov
:Review Manager: to be determined

:Download:
  http://cpp-experiment.sourceforge.net/promote-20050917.tar.gz
  or http://cpp-experiment.sourceforge.net/promote-20050917/

:Description:
  Proposal to add promote, integral_promotion and
  floating_point_promotion class templates to type_traits library.

  Alexander tried it on different compilers with various success:
  GNU/Linux (gentoo-hardened): gcc 3.3 and 3.4, Intel 7, 8 and 9
  Windows: VC7 free compiler
  Sparc Solaris: Sun C++ 5.3 and 5.7

  See comments at the beginning of promote_enum_test.cpp for what is broken.
  http://cpp-experiment.sourceforge.net/promote-20050917/libs/type_traits/test/promote_enum_test.cpp

  Alexander requests a fast-track review.

Libraries under development

Property Tree

:Author: Marcin Kalicinski

:Download:
Boost Sandbox Vault (http://boost-consulting.com/vault/)
property_tree_rev3.zip

Please let us know of any libraries you are currently
developing that you intend to submit for review.


File: development/report-jun-2009.rst

============================================== Review Wizard Status Report for June 2009

News

Futures: Williams variant Accepted; Gaskill variant Rejected

Boost 1.38 Released
New Libraries:
Revised Libraries:

Boost.Range Extension Accepted

Polynomial Library Rejected

Boost 1.39 Released

Constrained Value Review - Review Result Pending

Library Issues

The Time Series Library, accepted in August 2007, has not yet been
submitted to SVN. Eric Niebler and John Phillips are working on
making the changes suggested during the review.

The Floating Point Utilities Library, has not yet been submitted to
SVN. It is slated to be integrated with the Boost.Math library.

The Switch Library, accepted provisionally in January 2008,
has not yet been submitted for mini-review and full acceptance.

The Phoenix Library, accepted provisionally in September 2008, has not
yet been submitted for mini-review and full acceptance. A rewrite of
Phoenix, basing it on the Proto metaprogramming library, has just
begun.

Maintenance of The Property Tree Library has been taken over by
Sebastian Redl from Marcin Kalicinski. The library has been checked
into svn trunk, but Sebastian is doing major maintenance on it in a
branch. He is aiming for a 1.41 or 1.40 release.

General Announcements

As always, we need experienced review managers. The review queue has
been growing substantially but we have had 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 or library
contributors. If you can serve as review manager for any of them,
email Ron Garcia or John Phillips, "garcia at osl dot iu 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. A recent effort is trying to secure at least five
people who promise to submit reviews as a precondition to starting
the review period. Consider volunteering for this and even taking the
time to create the review as early as possible. 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.

If you're a library author and plan on submitting a library for review
in the next 3-6 months, send Ron or John a short description of your
library and we'll add it to the Libraries Under Construction below. We
know that there are many libraries that are near completion, but we
have hard time keeping track all of them. Please keep us informed
about your progress.

Review Queue

  • Lexer
  • Shifted Pointer
  • Logging
  • Log
  • Join
  • Pimpl
  • Thread Pool
  • Endian
  • Meta State Machine
  • Conversion
  • Sorting
  • GIL.IO
  • AutoBuffer
  • String Convert

Lexer

:Author: Ben Hanson

:Review Manager: Eric Niebler

:Download: Boost Vault <http://boost-consulting.com/vault/index.php?action=downloadfile&filename=boost.lexer.zip&directory=Strings%20-%20Text%20Processing>__

:Description:
A programmable lexical analyser generator inspired by 'flex'.
Like flex, it is programmed by the use of regular expressions
and outputs a state machine as a number of DFAs utilising
equivalence classes for compression.

Shifted Pointer

:Author: Phil Bouchard

:Review Manager: Needed

:Download: Boost Vault <http://www.boost-consulting.com/vault/index.php?&direction=0&order=&directory=Memory>__

:Description:
Smart pointers are in general optimized for a specific resource
(memory usage, CPU cycles, user friendliness, ...) depending on
what the user need to make the most of. The purpose of this smart
pointer is mainly to allocate the reference counter (or owner) and
the object itself at the same time so that dynamic memory management
is simplified thus accelerated and cheaper on the memory map.

Logging

:Author: John Torjo

:Review Manager: Gennadiy Rozental

:Download: http://torjo.com/log2/

:Description: Used properly, logging is a very powerful tool. Besides aiding
debugging/testing, it can also show you how your application is
used. The Boost Logging Library allows just for that, supporting
a lot of scenarios, ranging from very simple (dumping all to one
destination), to very complex (multiple logs, some enabled/some
not, levels, etc). It features a very simple and flexible
interface, efficient filtering of messages, thread-safety,
formatters and destinations, easy manipulation of logs, finding
the best logger/filter classes based on your application's
needs, you can define your own macros and much more!

Log

:Author: Andrey Semashev

:Review Manager: Needed

:Download: Boost Vault <http://tinyurl.com/cm9lum>__

:Description: The library is aimed to help adding logging features to
applications. It provides out-of-box support for many widely used
capabilities, such as formatting and filtering based on attributes,
sending logs to a syslog server or to Windows Event Log, or simply
storing logs into files. It also provides basic support for the
library initialization from a settings file. The library can also be
used for a wider range of tasks and implement gathering and processing
statistical information or notifying user about application events.

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&filename=Pimpl.zip&directory=&>__
| 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.

Thread Pool

:Author: Oliver Kowalke

:Review Manager: Needed

:Download: Boost Vault <http://www.boostpro.com/vault/index.php?action=downloadfile&amp;filename=boost-threadpool.2.tar.gz&amp;directory=Concurrent%20Programming>__

:Description:
The library provides:
- thread creation policies: determines the management of worker threads:
- fixed set of threads in pool
- create workerthreads on demand (depending on context)
- let worker threads ime out after certain idle time
- channel policies: manages access to queued tasks:
- bounded channel with high and low watermark for queuing tasks
- unbounded channel with unlimited number of queued tasks
- rendezvous syncron hand-over between producer and consumer threads
- queueing policy: determines how tasks will be removed from channel:
- FIFO
- LIFO
- priority queue (attribute assigned to task)
- smart insertions and extractions (for instance remove oldest task with certain attribute by newst one)
- tasks can be chained and lazy submit of taks is also supported (thanks to
Braddocks future library).
- returns a task object from the submit function. The task it self can
be interrupted if its is cooperative (means it has some interruption points
in its code -> this_thread::interruption_point() ).

Endian

:Author: Beman Dawes

:Review Manager: Needed

:Download: http://mysite.verizon.net/beman/endian-0.10.zip

:Description:
Header boost/integer/endian.hpp provides integer-like byte-holder
binary types with explicit control over byte order, value type, size,
and alignment. Typedefs provide easy-to-use names for common
configurations.

These types provide portable byte-holders for integer data,
independent of particular computer architectures. Use cases almost
always involve I/O, either via files or network connections. Although
data portability is the primary motivation, these integer byte-holders
may also be used to reduce memory use, file size, or network activity
since they provide binary integer sizes not otherwise available.

Meta State Machine

:Author: Christophe Henry

:Review Manager: Needed

:Download: Boost Vault <http://www.boostpro.com/vault/index.php?direction=0&amp;order=&amp;directory=Msm>__

:Description: Msm is a framework which enables you to build a Finite State Machine
in a straightforward, descriptive and easy-to-use manner . It requires
minimal effort to generate a working program from an UML state machine
diagram. This work was inspired by the state machine described in the
book of David Abrahams and Aleksey Gurtovoy "C++ Template
Metaprogramming" and adds most of what UML Designers are expecting
from an UML State Machine framework:

  • Entry and Exit Methods
  • Guard Conditions
  • Sub state machines (also called composite states in UML)
  • History
  • Terminate Pseudo-State
  • Deferred Events
  • Orthogonal zones
  • Explicit entry into sub state machine states
  • Fork
  • Entry / Exit pseudo states
  • Conflicting transitions

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 8X as fast as std::sort, depending on processor,
compiler optimizations, and data distribution. float_sort is roughly
7X as fast as std::sort on x86 processors. string_sort is roughly 2X
as fast as std::sort.

GIL.IO

:Author: Christian Henning

:Review Manager: Needed

:Download: GIL Google Code Vault <http://gil-contributions.googlecode.com/files/rc2.zip>__

:Description: I/O extension for boost::gil which allows reading and
writing of/in various image formats ( tiff, jpeg, png, etc ). This
review will also include the Toolbox extension which adds some common
functionality to gil, such as new color spaces, algorithms, etc.

AutoBuffer

:Author: Thorsten Ottosen

:Review Manager: Robert Stewart

:Download: Here <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.

String Convert

:Author: Vladimir Batov

:Review Manager: Needed

:Download: Boost Vault <http://www.boostpro.com/vault/index.php?action=downloadfile&amp;filename=boost-string-convert.zip>__

:Description:
The 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.

Libraries under development

Please let us know of any libraries you are currently
developing that you intend to submit for review.

Mirror

:Author: Matus Chochlik

:Download: | http://svn.boost.org/svn/boost/sandbox/mirror/doc/index.html
| Boost Vault <http://www.boostpro.com/vault/index.php?action=downloadfile&amp;filename=mirror.zip>__

:Description:

The aim of the Mirror library is to provide useful meta-data at both
compile-time and run-time about common C++ constructs like namespaces,
types, typedef-ined types, classes and their base classes and member
attributes, instances, etc. and to provide generic interfaces for
their introspection.

Mirror is designed with the principle of stratification in mind and
tries to be as less intrusive as possible. New or existing classes do
not need to be designed to directly support Mirror and no Mirror
related code is necessary in the class' definition, as far as some
general guidelines are followed

Most important features of the Mirror library that are currently
implemented include:

text
* Namespace-name inspection.

* Inspection of the whole scope in which a namespace is defined

* Type-name querying, with the support for typedef-ined typenames
  and typenames of derived types like pointers, references,
  cv-qualified types, arrays, functions and template names. Names
  with or without nested-name-specifiers can be queried.

* Inspection of the scope in which a type has been defined

* Uniform and generic inspection of class' base classes.  One can
  inspect traits of the base classes for example their types,
  whether they are inherited virtually or not and the access
  specifier (private, protected, public).

* Uniform and generic inspection of class' member attributes. At
  compile-time the count of class' attributes and their types,
  storage class specifiers (static, mutable) and some other traits
  can be queried. At run-time one can uniformly query the names
  and/or values (when given an instance of the reflected class) of
  the member attributes and sequentially execute a custom functor
  on every attribute of a class.

* Traversals of a class' (or generally type's) structure with user
  defined visitors, which are optionally working on an provided
  instance of the type or just on it's structure without any
  run-time data. These visitors are guided by Mirror through the
  structure of the class and optionally provided with contextual
  information about the current position in the traversal.

I'm hoping to have it review ready in the next few months.

Interval Template Library

:Author: Joachim Faulhaber

:Description:

The Interval Template Library (Itl) provides intervals
and two kinds of interval containers: Interval_sets and
interval_maps. Interval_sets and maps can be used just
as sets or maps of elements. Yet they are much more
space and time efficient when the elements occur in
contiguous chunks: intervals. This is obviously the case
in many problem domains, particularly in fields that deal
with problems related to date and time.

Interval containers allow for intersection with interval_sets
to work with segmentation. For instance you might want
to intersect an interval container with a grid of months
and then iterate over those months.

Finally interval_maps provide aggregation on
associated values, if added intervals overlap with
intervals that are stored in the interval_map. This
feature is called aggregate on overlap. It is shown by
example:

::

typedef set guests;
interval_map<time, guests> party;
guests mary; mary.insert("Mary");
guests harry; harry.insert("Harry");
party += make_pair(interval

As can be seen from the example an interval_map has both
a decompositional behavior (on the time dimension) as well as
a accumulative one (on the associated values).

StlConstantTimeSize

:Author: Vicente J. Botet Escriba

:Download: Boost Vault <http://www.boostpro.com/vault/index.php?action=downloadfile&filename=constant_time_size.zip&amp;directory=Containers&amp;>__

:Description:

Boost.StlConstantTimeSize Defines a wrapper to the stl container list
giving the user the chioice for the complexity of the size function:
linear time, constant time or quasi-constant. In future versions the
library could include a similar wrapper to slist.

InterThreads

:Author: Vicente J. Botet Escriba

:Download: Boost Vault <http://www.boostpro.com/vault/index.php?action=downloadfile&amp;filename=interthreads.zip&amp;directory=Concurrent%20Programming&amp;>__

:Description:

Boost.InterThreads extends Boost.Threads adding some features:

text
* thread decorator: thread_decorator allows to define
  setup/cleanup functions which will be called only once by
  thread: setup before the thread function and cleanup at thread
  exit.
* thread specific shared pointer: this is an extension of the
  thread_specific_ptr providing access to this thread specific
  context from other threads. As it is shared the stored pointer
  is a shared_ptr instead of a raw one.
* thread keep alive mechanism: this mechanism allows to detect
  threads that do not prove that they are alive by calling to the
  keep_alive_point regularly. When a thread is declared dead a
  user provided function is called, which by default will abort
  the program.
* thread tuple: defines a thread groupe where the number of
  threads is know statically and the threads are created at
  construction time.
* set_once: a synchonizer that allows to set a variable only once,
  notifying to the variable value to whatever is waiting for that.
* thread_tuple_once: an extension of the boost::thread_tuple which
  allows to join the thread finishing the first, using for that
  the set_once synchronizer.
* thread_group_once: an extension of the boost::thread_group which
  allows to join the thread finishing the first, using for that
  the set_once synchronizer.

(thread_decorator and thread_specific_shared_ptr) are based on the
original implementation of threadalert written by Roland Schwarz.

Boost.InterThreads extends Boost.Threads adding thread setup/cleanup
decorator, thread specific shared pointer, thread keep alive
mechanism and thread tuples.

Channel

:Author: Yigong Liu

:Download: http://channel.sourceforge.net

:Description:
Channel is a C++ template library to provide name spaces for distributed
message passing and event dispatching. Message senders and receivers bind to
names in name space; binding and matching rules decide which senders will
bind to which receivers (the binding-set); then message passing could happen
among bound senders and receivers.

The type of name space is a template parameter of Channel. Various name
spaces (linear/hierarchical/associative) can be used for different
applications. For example, integer ids can be used to send messages in
linear name space, string path name ids (such as "/sports/basketball") can
be used to send messages in hierarchical name space and regex patterns or
Linda tuple-space style tuples can be used to send messages in associative
name space.

Dispatcher is another configurable template parameter of Channel; which
dispatch messages/events from senders to bounded receivers. The design of
dispatchers can vary in several dimensions:
how msgs move: push or pull;
how callbacks executed: synchronous or asynchronous.
Sample dispatchers includes : synchronous broadcast dispatcher, asynchronous
dispatchers with choice_arbiter and join_arbiters.

Name space and dispatchers are orthogonal; they can mix and match together
freely. Name spaces and name-binding create binding-sets for sender and
receiver, and dispatchers are algorithms defined over the binding-set.

Distributed channels can be connected to allow transparent distributed
message passing. Filters and translators are used to control name space
changes.

Bitfield

:Authot: Vicente Botet

:Download:

:Description:

I have adapted the Bitfield library from Emile Cormier with its
permision and I would like you add it to the libraries under
developement list. The library is quite stable but I want to add some
test with Boost.Endian before adding it to the formal review schedule
list.

Boost.Bitfield consists of:

  • a generic bitfield traits class providing generic getter and setter methods.

  • a BOOST_BITFIELD_DCL macro making easier the definition of the
    bitfield traits and the bitfield getter and setter functions::

    struct X {
    typedef boost::ubig_32 storage_type;
    storage_type d0;
    typedef unsigned int value_type;
    BOOST_BITFIELD_DCL(storage_type, d0, unsigned int, d00, 0, 10);
    BOOST_BITFIELD_DCL(storage_type, d0, unsigned int, d01, 11, 31);

    };

Synchro

:Author: Vicente Botet

:Download: Boost Vault: <http://www.boostpro.com/vault/index.php?action=downloadfile&filename=synchro.zip&directory=Concurrent%20Programming&>__
Boost Sandbox: <https://svn.boost.org/svn/boost/sandbox/synchro>__
Html doc included only on the Vault

:Description: Synchro provides:

  • A uniform usage of Boost.Thread and Boost.Interprocess
    synchronization mechanisms based on lockables(mutexes) concepts and
    locker(guards) concepts.

    • lockables traits and lock generators,
    • generic free functions on lockables as: lock, try_lock, ...
    • locker adapters of the Boost.Thread and Boost.Interprocess lockers models,
    • complete them with the corresponding models for single-threaded
      programms: null_mutex and null_condition classes,
    • locking families,
    • semaphore and binary_semaphore,
    • condition_lockable lock which put toghether a lock and its
      associated conditions.
  • A coherent exception based timed lock approach for functions and constructors,

  • A rich palete of lockers as

    • strict_locker, nested_strict_locker,
    • condition_locker,
    • reverse_locker, nested_reverse_locker,
    • locking_ptr, on_derreference_locking_ptr,
    • externally_locked,
  • array_unique_locker on multiple lockables.

  • Generic free functions on multiple lockables lock, try_lock,
    lock_until, lock_for, try_lock_until, try_lock_for, unlock

  • lock adapters of the Boost.Thread and Boost.Interprocess lockable models,

  • lock_until, lock_for, try_lock_until, try_lock_for

  • A polymorphic lockable hierarchy.

  • High-level abstractions for handling more complicated
    synchronization problems, including

    • monitor for guaranteeing exclusive access to an object.
  • A rendezvous mechanism for handling direct communication between
    objects concurrent_components via ports using an
    accept-synchronize protocol based on the design of the concurrency
    library in the Beta language.

  • Language-like Synchronized Block Macros


File: development/report-may-2008.rst

========================================== Review Wizard Status Report for May 2008

News

December 7, 2007 - Forward Library Accepted - Awaiting SVN

December 16 - Unordered Containers Library Accepted - In SVN

December 21 - Factory Library Accepted - Awaiting SVN

January 13, 2008 - Switch Library Accepted Provisionally - Awaiting submission for
mini review

January 18 - Singleton Library Rejected - Awaiting resubmission, John Torjo
has already volunteered to manage the next review

January 30 - Flyweight Library Accepted - Awaiting SVN

February 13 - Logging Library Rejected - Awaiting resubmission for new
review, John Torjo has already resubmitted and Gennadiy Rozental has again
volunteered to manage the review

February 27 - Floating Point Utilities Library Accepted - Awaiting SVN

March 14 - Proto Library Accepted - Exists as a component in Xpressive, but
not yet as a separate library

April 20 - Egg review completed - Results pending

May 7 - Scope Exit Library Accepted - Awaiting SVN

Older Issues

The binary_int library, accepted in October 2005 has not yet been submitted
to SVN. The authors are strongly encouraged to contact the review wizards

The Quantitative Units library, accepted in April 2007 has not yet been
submitted to SVN

The Globally Unique Identifier library, accepted provisionally in May 2007
has not yet been submitted for mini-review and full acceptance

The Time Series Library, accepted in August 2007 has not yet been submitted
to SVN

The Accumulators library, accepted in February 2007 is in SVN

The Exception library, accepted in October 2007 is in SVN

The Scope Exit review report had not been submitted by the review
manager. John Phillips stepped in as substitute review manager and
produced a report

For libraries that are still waiting to get into SVN, please get them
ready and into the repository. The developers did some great work
making the libraries, so don't miss the chance to share that work with
others. Also notice that the review process page has been updated with
a section on rights and responsibilities of library submitters.

For the Scope Exit review, we would like to publicly apologize to Alexander
Nasonov for how long this has languished without a report. The review
wizards will work to make sure this doesn't happen any more.

General Announcements

As always, we need experienced review managers. In the past few months there
have been a large number of reviews, but the flow of high quality
submissions is just as big, 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 or
library contributors. If you can serve as review manager for any of them,
email Ron Garcia or John Phillips, "garcia at cs dot indiana dot edu" and
"phillips at mps dot ohio-state dot edu" respectively.

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.

If you're a library author and plan on submitting a library for review in the
next 3-6 months, send Ron or John a short description of your library and
we'll add it to the Libraries Under Construction below. We know that there
are many libraries that are near completion, but we have hard time keeping
track all of them. Please keep us informed about your progress.

Review Queue

  • Finite State Machines
  • Property Map (fast-track)
  • Graph (fast-track)
  • Lexer
  • Thread-Safe Signals
  • Boost.Range (Update)
  • Shifted Pointer
  • DataFlow Signals
  • Logging
  • Futures (Braddock Gaskill)
  • Futures (Anthony Williams)
  • Join (Yigong Liu)
  • Pimpl (Vladimir Batov)

Finite State Machines

:Author: Andrey Semashev
:Review Manager: Martin Vuille
:Download: Boost Sandbox Vault <http://tinyurl.com/yjozfn>__

:Description:

The Boost.FSM library is an implementation of FSM (stands for
Finite State Machine) programming concept. The main goals of the
library are:

  • Simplicity. It should be very simple to create state machines using
    this library.
  • Performance. The state machine infrastructure should not be
    very time and memory-consuming in order to be applicable in
    more use cases.
  • Extensibility. A developer may want to add more states to an
    existing state machine. A developer should also be able to
    specify additional transitions and events for the machine with
    minimum modifications to the existing code.

Property Map (fast-track)

:Author: Andrew Sutton
:Review Manager: Jeremy Siek
:Download: http://svn.boost.org/svn/boost/sandbox/graph-v2
:Description:
A number of additions and modifications to the Property Map Library,
including:

  • A constant-valued property map, useful for naturally unweighted
    graphs.
  • A noop-writing property map, useful when you have to provide an
    argument, but just don't care about the output.
  • See
    ChangeLog <http://svn.boost.org/trac/boost/browser/sandbox/graph-v2/libs/property_map/ChangeLog>__
    for details.

Graph (fast-track)

:Author: Andrew Sutton
:Review Manager: Jeremy Siek
:Download: http://svn.boost.org/svn/boost/sandbox/graph-v2
:Description:
A number of additions and modifications to the Graph Library,
including:

  • Two new graph classes (undirected and directed) which are intended
    to make the library more approachable for new developers
  • A suite of graph measures including degree and closeness
    centrality, mean geodesic distance, eccentricity, and clustering
    coefficients.
  • An algorithm for visiting all cycles in a directed graph (Tiernan's
    from 1970ish). It works for undirected graphs too, but reports cycles
    twice (one for each direction).
  • An algorithm for visiting all the cliques a graph (Bron&Kerbosch).
    Works for both directed and undirected.
  • Derived graph measures radius and diameter (from eccentricity) and
    girth and circumference (from Tiernan), and clique number (from
    Bron&Kerbosch).
  • An exterior_property class that helps hides some of the weirdness
    with exterior properties.
  • run-time and compile-time tests for the new algorithms.
  • a substantial amount of documentation
  • Graph cores, implemented by David Gleich (@Stanford University)
  • Deterministic graph generators - capable of creating or inducing
    specific types of graphs over a vertex set (e.g., star graph, wheel
    graph, prism graph, etc). There are several other specific types that
    could be added to this, but I haven't had the time just yet.

Lexer

:Author: Ben Hanson

:Review Manager: Eric Neibler

:Download: Boost Sandbox Vault <http://boost-consulting.com/vault/index.php?action=downloadfile&filename=boost.lexer.zip&directory=Strings%20-%20Text%20Processing&>__

:Description:

A programmable lexical analyser generator inspired by 'flex'.
Like flex, it is programmed by the use of regular expressions
and outputs a state machine as a number of DFAs utilising
equivalence classes for compression.

Thread-Safe Signals

:Author: Frank Hess

:Review Manager: Need Volunteer

:Download: Boost Sandbox Vault <http://www.boost-consulting.com/vault/index.php?&direction=0&order=&directory=thread_safe_signals>__

:Description: A thread-safe implementation of Boost.Signals that
has some interface changes to accommodate thread safety, mostly with
respect to automatic connection management.

Boost.Range (Update)

:Author: Neil Groves

:Review Manager: Needed

:Download: Boost Sandbox Vault <http://www.boost-consulting.com/vault/index.php?action=downloadfile&filename=range_ex.zip&directory=>__

:Description: A significant update of the range library, including
range adapters.

Shifted Pointer

:Author: Phil Bouchard

:Review Manager: Needed

:Download: Boost Sandbox Vault <http://www.boost-consulting.com/vault/index.php?&direction=0&order=&directory=Memory>__

:Description: Smart pointers are in general optimized for a specific
resource (memory usage, CPU cycles, user friendliness, ...) depending
on what the user need to make the most of. The purpose of this smart
pointer is mainly to allocate the reference counter (or owner) and
the object itself at the same time so that dynamic memory management
is simplified thus accelerated and cheaper on the memory map.

DataFlow Signals

:Author: Stjepan Rajko

:Review Manager: Needed

:Download: http://dancinghacker.com/code/dataflow/

:Description: Dataflow is a generic library for dataflow programming.
Dataflow programs can typically be expressed as a graph in which vertices
represent components that process data, and edges represent the flow of data
between the components. As such, dataflow programs can be easily
reconfigured by changing the components and/or the connections.

Logging

:Author: John Torjo

:Review Manager: Gennadiy Rozental

:Download: http://torjo.com/log2/

:Description:
Used properly, logging is a very powerful tool. Besides aiding
debugging/testing, it can also show you how your application is
used. The Boost Logging Library allows just for that, supporting
a lot of scenarios, ranging from very simple (dumping all to one
destination), to very complex (multiple logs, some enabled/some
not, levels, etc). It features a very simple and flexible
interface, efficient filtering of messages, thread-safety,
formatters and destinations, easy manipulation of logs, finding
the best logger/filter classes based on your application's
needs, you can define your own macros and much more!

Futures

:Author: Braddock Gaskill

:Review Manager: Needed

:Download: http://braddock.com/~braddock/future/

:Description: The goal of the boost.future library is to provide a definitive
future implementation with the best features of the numerous
implementations, proposals, and academic papers floating around, in the
hopes to avoid multiple incompatible future implementations in libraries of
related concepts (coroutines, active objects, asio, etc). This library hopes
to explore the combined implementation of the best future concepts.

Futures

:Author: Anthony Williams

:Review Manager: Needed

:Download: http://www.justsoftwaresolutions.co.uk/files/n2561_future.hpp (code)
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2561.html (description)

:Description:

This paper proposes a kind of return buffer that takes a
value (or an exception) in one (sub-)thread and provides the value in
another (controlling) thread. This buffer provides essentially two
interfaces:

  • an interface to assign a value as class promise and

  • an interface to wait for, query and retrieve the value (or exception)
    from the buffer as classes unique_future and shared_future. While a
    unique_future provides move semantics where the value (or exception)
    can be retrieved only once, the shared_future provides copy semantics
    where the value can be retrieved arbitrarily often.

A typical procedure for working with promises and futures looks like:

  • control thread creates a promise,
  • control thread gets associated future from promise,
  • control thread starts sub-thread,
  • sub-thread calls actual function and assigns the return value to the promise,
  • control thread waits for future to become ready,
  • control thread retrieves value from future.

Also proposed is a packaged_task that wraps one callable object and
provides another one that can be started in its own thread and assigns
the return value (or exception) to a return buffer that can be
accessed through one of the future classes.

With a packaged_task a typical procedure looks like:

  • control thread creates a packaged_task with a callable object,
  • control thread gets associated future from packaged_task,
  • control thread starts sub-thread, which invokes the packaged_task,
  • packaged_task calls the callable function and assigns the return value,
  • control thread waits for future to become ready,
  • control thread retrieves value from future.

Notice that we are in the unusual position of having two very
different libraries with the same goal in the queue at the same
time. The Review Wizards would appreciate a discussion of the best way
to hold these two reviews to produce the best possible addition to
Boost.

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 Sandbox Vault <http://www.boost-consulting.com/vault/index.php?action=downloadfile&filename=Pimpl.zip&directory=&>__
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.

Libraries under development

Please let us know of any libraries you are currently
developing that you intend to submit for review.


File: development/report-nov-2007.rst

Error reading file with 'utf-8': 'utf-8' codec can't decode byte 0xe5 in position 2383: invalid continuation byte


File: development/report-nov-2008.rst

============================================== Review Wizard Status Report for November 2008

News

May 7 - Scope Exit Library Accepted - Awaiting SVN

May 17 - Egg Library Rejected

August 14 - Boost 1.36 Released
New Libraries: Accumulators, Exception, Units, Unordered Containers

August 27 - Finite State Machines Rejected

September 10 - Data Flow Signals Rejected

September 30 - Phoenix Accepted Conditionally

November 3 - Boost 1.37 Released
New Library: Proto

November 10 - Thread-Safe Signals Accepted - Awaiting SVN

November 25 - Globally Unique Identifier Library mini-Review in progress

Older Issues

The Quantitative Units library, accepted in April 2007 is in SVN
(listed as units).

The Time Series Library, accepted in August 2007, has not yet been
submitted
to SVN.

The Switch Library, accepted provisionally in January 2008,
has not yet been submitted for mini-review and full acceptance.

Property Map (Fast-Track) and Graph (Fast-Track) have been removed
from the review queue. The author (Andrew Sutton) intends to submit a
new version of this work at a later time.

A few libraries have been reviewed and accepted into boost, but have
not yet appeared in SVN as far as I can tell. Could some light be
shed on the status of the following libraries? Apologies if I have
simply overlooked any of them:

  • Flyweight (Joaquin Ma Lopez Munoz)
  • Floating Point Utilities (Johan Rade)
  • Factory (Tobias Schwinger)
  • Forward (Tobias Schwinger)
  • Scope Exit (Alexander Nasonov)
  • Time Series (Eric Niebler)
  • Property Tree (Marcin Kalicinski) -- No documentation in SVN

Any information on the whereabouts of these libraries would be greatly
appreciated.

For libraries that are still waiting to get into SVN, please get them
ready and into the repository. The developers did some great work
making the libraries, so don't miss the chance to share that work with
others. Also notice that the review process page has been updated with
a section on rights and responsibilities of library submitters.

General Announcements

As always, we need experienced review managers. The review queue has
been growing substantially but we have had 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 or library
contributors. If you can serve as review manager for any of them,
email Ron Garcia or John Phillips, "garcia at osl dot iu 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. A recent effort is trying to secure at least five
people who promise to submit reviews as a precondition to starting
the review period. Consider volunteering for this and even taking the
time to create the review as early as possible. 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.

If you're a library author and plan on submitting a library for review
in the next 3-6 months, send Ron or John a short description of your
library and we'll add it to the Libraries Under Construction below. We
know that there are many libraries that are near completion, but we
have hard time keeping track all of them. Please keep us informed
about your progress.

Review Queue

  • Lexer
  • Boost.Range (Update)
  • Shifted Pointer
  • Logging
  • Futures - Williams
  • Futures - Gaskill
  • Join
  • Pimpl
  • Constrained Value
  • Thread Pool
  • Polynomial

Lexer

:Author: Ben Hanson

:Review Manager: Eric Neibler

:Download: Boost Sandbox Vault <http://boost-consulting.com/vault/index.php?action=downloadfile&filename=boost.lexer.zip&directory=Strings%20-%20Text%20Processing>__

:Description:
A programmable lexical analyser generator inspired by 'flex'.
Like flex, it is programmed by the use of regular expressions
and outputs a state machine as a number of DFAs utilising
equivalence classes for compression.

Boost.Range (Update)

:Author: Neil Groves

:Review Manager: Needed

:Download: Boost Sandbox Vault <http://www.boost-consulting.com/vault/index.php?action=downloadfile&filename=range_ex.zip>__

:Description: A significant update of the range library, including
range adapters.

Shifted Pointer

:Author: Phil Bouchard

:Review Manager: Needed

:Download: Boost Sandbox Vault <http://www.boost-consulting.com/vault/index.php?&direction=0&order=&directory=Memory>__

:Description:
Smart pointers are in general optimized for a specific resource
(memory usage, CPU cycles, user friendliness, ...) depending on
what the user need to make the most of. The purpose of this smart
pointer is mainly to allocate the reference counter (or owner) and
the object itself at the same time so that dynamic memory management
is simplified thus accelerated and cheaper on the memory map.

Logging

:Author: John Torjo

:Review Manager: Gennadiy Rozental

:Download: http://torjo.com/log2/

:Description: Used properly, logging is a very powerful tool. Besides aiding
debugging/testing, it can also show you how your application is
used. The Boost Logging Library allows just for that, supporting
a lot of scenarios, ranging from very simple (dumping all to one
destination), to very complex (multiple logs, some enabled/some
not, levels, etc). It features a very simple and flexible
interface, efficient filtering of messages, thread-safety,
formatters and destinations, easy manipulation of logs, finding
the best logger/filter classes based on your application's
needs, you can define your own macros and much more!

Futures

:Author: Braddock Gaskill

:Review Manager: Tom Brinkman

:Download: http://braddock.com/~braddock/future/

:Description: The goal of this library is to provide a definitive
future implementation with the best features of the numerous
implementations, proposals, and academic papers floating around, in
the hopes to avoid multiple incompatible future implementations in
libraries of related concepts (coroutines, active objects, asio,
etc). This library hopes to explore the combined implementation of
the best future concepts.

Futures

:Author: Anthony Williams

:Review Manager: Tom Brinkman

:Download: | http://www.justsoftwaresolutions.co.uk/files/n2561_future.hpp
(code)
| http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2561.html
(description)

:Description: This library proposes a kind of return buffer that takes
a value (or an exception) in one (sub-)thread and provides the value
in another (controlling) thread. This buffer provides essentially
two interfaces:

  • an interface to assign a value as class promise and
  • an interface to wait for, query and retrieve the value (or exception)
    from the buffer as classes unique_future and shared_future. While a
    unique_future provides move semantics where the value (or exception)
    can be retrieved only once, the shared_future provides copy semantics
    where the value can be retrieved arbitrarily often.

A typical procedure for working with promises and futures looks like:

  • control thread creates a promise,
  • control thread gets associated future from promise,
  • control thread starts sub-thread,
  • sub-thread calls actual function and assigns the return value to
    the promise,
  • control thread waits for future to become ready,
  • control thread retrieves value from future.

Also proposed is a packaged_task that wraps one callable object and
provides another one that can be started in its own thread and assigns
the return value (or exception) to a return buffer that can be
accessed through one of the future classes.

With a packaged_task a typical procedure looks like:

  • control thread creates a packaged_task with a callable object,
  • control thread gets associated future from packaged_task,
  • control thread starts sub-thread, which invokes the packaged_task,
  • packaged_task calls the callable function and assigns the return value,
  • control thread waits for future to become ready,
  • control thread retrieves value from future.

Notice that we are in the unusual position of having two very
different libraries with the same goal in the queue at the same
time. The Review Wizards would appreciate a discussion of the best way
to hold these two reviews to produce the best possible addition to
Boost.

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 Sandbox Vault <http://www.boost-consulting.com/vault/index.php?action=downloadfile&filename=Pimpl.zip&directory=&>__
| 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.

Constrained Value

:Author: Robert Kawulak

:Review Manager: Jeff Garland

:Download: http://rk.go.pl/f/constrained_value.zip

:Description:

The Boost Constrained Value library contains class templates useful
for creating constrained objects. A simple example is an object
representing an hour of a day, for which only integers from the range
[0, 23] are valid values:

::

text
bounded_int::type hour;
  hour = 20; // OK
  hour = 26; // exception!

Behavior in case of assignment of an invalid value can be customized. For
instance, instead of throwing an exception as in the example above, the value
may be adjusted to meet the constraint:

::

text
wrapping_int::type buffer_index;
  buffer_index = 257; // OK: wraps the value to fit in the range
  assert( buffer_index == 1 );

The library doesn't focus only on bounded objects as in the examples above --
virtually any constraint can be imposed by using a predicate:

::

text
// constraint (a predicate)
  struct is_odd {
 bool operator () (int i) const
 { return (i % 2) != 0; }
  };

::

text
// and the usage is as simple as:
  constrained odd_int = 1;
  odd_int += 2; // OK
  ++odd_int; // exception!

The library has a policy-based design to allow for flexibility in defining
constraints and behavior in case of assignment of invalid values. Policies may
be configured at compile-time for maximum efficiency or may be changeable at
runtime if such dynamic functionality is needed.

Thread Pool

:Author: Oliver Kowalke

:Review Manager: Needed

:Download: Boost Sandbox Vault <http://www.boostpro.com/vault/index.php?action=downloadfile&amp;filename=boost-threadpool.2.tar.gz&amp;directory=Concurrent%20Programming>__

:Description:
The library provides:

  • thread creation policies: determines the management of worker threads

    • fixed set of threads in pool
    • create workerthreads on demand (depending on context)
    • let worker threads ime out after certain idle time
  • channel policies: manages access to queued tasks

    • bounded channel with high and low watermark for queuing tasks
    • unbounded channel with unlimited number of queued tasks
    • rendezvous syncron hand-over between producer and consumer threads
  • queueing policy: determines how tasks will be removed from channel

    • FIFO
    • LIFO
    • priority queue (attribute assigned to task)
    • smart insertions and extractions (for instance remove oldest task with
      certain attribute by newst one)
  • tasks can be chained and lazy submit of taks is also supported (thanks to
    Braddocks future library).

  • returns a task object from the submit function. The task it self can
    be interrupted if its is cooperative (means it has some interruption points
    in its code -> this_thread::interruption_point() ).

Polynomial

:Author: Pawel Kieliszczyk

:Review Manager: Needed

:Download: Boost Sandbox Vault <http://www.boostpro.com/vault/index.php?action=downloadfile&amp;filename=polynomial.zip>__

:Description:
The library was written to enable fast and faithful polynomial manipulation.
It provides:

  • main arithmetic operators (+, -, * using FFT, /, %),
  • gcd,
  • different methods of evaluation (Horner Scheme, Compensated Horner
    Algorithm, by preconditioning),
  • derivatives and integrals,
  • interpolation,
  • conversions between various polynomial forms (special functions for
    creating Chebyshev, Hermite, Laguerre and Legendre form).

Libraries under development

Please let us know of any libraries you are currently
developing that you intend to submit for review.

Logging

:Author: Andrey Semashev

:Download: http://boost-log.sourceforge.net

:Description:
I am working on a logging library, online docs available here:
The functionality is quite ready, the docs are at about 70% ready. There
are a few examples, but no tests yet (I'm using the examples for
testing). I hope to submit it for a review at early 2009.

Mirror

:Author: Matus Chochlik

:Download: | http://svn.boost.org/svn/boost/sandbox/mirror/doc/index.html
| Boost Sandbox Vault <http://www.boostpro.com/vault/index.php?action=downloadfile&filename=mirror.zip>__

:Description:

The aim of the Mirror library is to provide useful meta-data at both
compile-time and run-time about common C++ constructs like namespaces,
types, typedef-ined types, classes and their base classes and member
attributes, instances, etc. and to provide generic interfaces for
their introspection.

Mirror is designed with the principle of stratification in mind and
tries to be as less intrusive as possible. New or existing classes do
not need to be designed to directly support Mirror and no Mirror
related code is necessary in the class' definition, as far as some
general guidelines are followed

Most important features of the Mirror library that are currently
implemented include:

text
* Namespace-name inspection.

* Inspection of the whole scope in which a namespace is defined

* Type-name querying, with the support for typedef-ined typenames
  and typenames of derived types like pointers, references,
  cv-qualified types, arrays, functions and template names. Names
  with or without nested-name-specifiers can be queried.

* Inspection of the scope in which a type has been defined

* Uniform and generic inspection of class' base classes.  One can
  inspect traits of the base classes for example their types,
  whether they are inherited virtually or not and the access
  specifier (private, protected, public).

* Uniform and generic inspection of class' member attributes. At
  compile-time the count of class' attributes and their types,
  storage class specifiers (static, mutable) and some other traits
  can be queried. At run-time one can uniformly query the names
  and/or values (when given an instance of the reflected class) of
  the member attributes and sequentially execute a custom functor
  on every attribute of a class.

* Traversals of a class' (or generally type's) structure with user
  defined visitors, which are optionally working on an provided
  instance of the type or just on it's structure without any
  run-time data. These visitors are guided by Mirror through the
  structure of the class and optionally provided with contextual
  information about the current position in the traversal.

I'm hoping to have it review ready in the next few months.

Interval Template Library

:Author: Joachim Faulhaber

:Description:

The Interval Template Library (Itl) provides intervals
and two kinds of interval containers: Interval_sets and
interval_maps. Interval_sets and maps can be used just
as sets or maps of elements. Yet they are much more
space and time efficient when the elements occur in
contiguous chunks: intervals. This is obviously the case
in many problem domains, particularly in fields that deal
with problems related to date and time.

Interval containers allow for intersection with interval_sets
to work with segmentation. For instance you might want
to intersect an interval container with a grid of months
and then iterate over those months.

Finally interval_maps provide aggregation on
associated values, if added intervals overlap with
intervals that are stored in the interval_map. This
feature is called aggregate on overlap. It is shown by
example:

::

typedef set guests;
interval_map<time, guests> party;
guests mary; mary.insert("Mary");
guests harry; harry.insert("Harry");
party += make_pair(interval

As can be seen from the example an interval_map has both
a decompositional behavior (on the time dimension) as well as
a accumulative one (on the associated values).

StlConstantTimeSize

:Author: Vicente J. Botet Escriba

:Download: Boost Sandbox Vault <http://www.boostpro.com/vault/index.php?action=downloadfile&filename=constant_time_size.zip&directory=Containers&>__

:Description:

Boost.StlConstantTimeSize Defines a wrapper to the stl container list
giving the user the chioice for the complexity of the size function:
linear time, constant time or quasi-constant. In future versions the
library could include a similar wrapper to slist.

InterThreads

:Author: Vicente J. Botet Escriba

:Download: | Boost Sandbox Vault <http://www.boostpro.com/vault/index.php?action=downloadfile&filename=interthreads.zip&directory=Concurrent%20Programming&>__
| Boost Sandbox <https://svn.boost.org/svn/boost/sandbox/interthreads>__
| Html doc included only on the Vault

:Description:

Boost.InterThreads extends Boost.Threads adding some features:

text
* thread decorator: thread_decorator allows to define
  setup/cleanup functions which will be called only once by
  thread: setup before the thread function and cleanup at thread
  exit.
* thread specific shared pointer: this is an extension of the
  thread_specific_ptr providing access to this thread specific
  context from other threads. As it is shared the stored pointer
  is a shared_ptr instead of a raw one.
* thread keep alive mechanism: this mechanism allows to detect
  threads that do not prove that they are alive by calling to the
  keep_alive_point regularly. When a thread is declared dead a
  user provided function is called, which by default will abort
  the program.
* thread tuple: defines a thread groupe where the number of
  threads is know statically and the threads are created at
  construction time.
* set_once: a synchonizer that allows to set a variable only once,
  notifying to the variable value to whatever is waiting for that.
* thread_tuple_once: an extension of the boost::thread_tuple which
  allows to join the thread finishing the first, using for that
  the set_once synchronizer.
* thread_group_once: an extension of the boost::thread_group which
  allows to join the thread finishing the first, using for that
  the set_once synchronizer.

(thread_decorator and thread_specific_shared_ptr) are based on the
original implementation of threadalert written by Roland Schwarz.

Boost.InterThreads extends Boost.Threads adding thread setup/cleanup
decorator, thread specific shared pointer, thread keep alive
mechanism and thread tuples.


File: development/report-sep-2007.rst

Error reading file with 'utf-8': 'utf-8' codec can't decode byte 0xe5 in position 3377: invalid continuation byte


File: generated/current_version.txt

1.89.0


File: generated/state/version.txt

6


File: site-tools/README.txt

Boost website site tools

This directory contains several scripts for maintaining the Boost website.
Some scripts with '--help' for more info.

Updating the website

update-pages.php:

text
Update the html pages and rss feeds for new or updated quickbook files.

refresh-pages.php:

text
Reconvert all the quickbook files and regenerate the html pages. Does not
update the rss feeds or add new pages. Useful for when quickbook, the
scripts or the templates have been updated.

update-doc-list.php:

text
Updates the documentation list from `doc/libraries.xml`, or from a boost
release/repo. Run from a cron job for the git development branches, but
will need to be run manually for an actual release.

Maintaining a release

After running these scripts, will need to run update-pages.php.

scan-documentation.php:

text
After adding documentation to the server, run this script which
should detect it and add the documentation to release data.

load-release-data.php:

text
After uploading a release to sourceforge, add it to the release
data using this script.

set-release-status.php:

text
Use this script to mark a version as released (including beta versions).

Misc

update-repo.php:

text
Updates the boost super project from the metadata stored for the
website. Almost always run from a cron job.

new-libraries.php:

text
New library text for the release notes.

File: site-tools/releases/boost_1_63_0.txt

https://sourceforge.net/projects/boost/files/boost/1.63.0/

25db3956a8d58187ac7a0702cc917e9bab47ff90baafc35e4e789dca1ce5f423 boost_1_63_0.7z
beae2529f759f6b3bf3f4969a19c2e9d6f0c503edcb2de4a61d1428519fcb3b0 boost_1_63_0.tar.bz2
fe34a4e119798e10b8cc9e565b3b0284e9fd3977ec8a1b19586ad1dec397088b boost_1_63_0.tar.gz
97ce6635df1f44653a597343cd5757bb8b6b992beb3720f5fc761e3644bcbe7b boost_1_63_0.zip


File: site-tools/releases/boost_1_63_0_b1.txt

https://sourceforge.net/projects/boost/files/boost/1.63.0.beta.1/

3dbc1bca10941710755c13a00b1ae56d2d37fe90bbadcf9746203194f9d33e3a boost_1_63_0_b1.7z
c8b986fd57e436fd88dbc70e51d3e21efa2be3bdf835fa499b2cf6c0a8cc2985 boost_1_63_0_b1.tar.bz2
745d99e4be9c0f324ec7ba15b7d228fd780067f2e8aeae2f16660a4cf6e6a051 boost_1_63_0_b1.tar.gz
e66bd6e2f637148c314398b92bc1f3cbdc777ee282f9de7885697afad3d9c202 boost_1_63_0_b1.zip


File: site-tools/releases/boost_1_63_0_rc1.txt

https://sourceforge.net/projects/boost/files/boost/1.63.0/

010699561c6011e6d97dc453d55bc5e54cdc192622434eff7b8ac559efac846c boost_1_63_0_rc1.7z
d8ebf8d90b2f823f04119445ac339d704395d655907333ec0fab863040119d24 boost_1_63_0_rc1.tar.bz2
dabe29b8a60369ae7c15c20681a32717f3c37d97e5dc6d39c5b2fd0494b8e995 boost_1_63_0_rc1.tar.gz
1683942022fd63c205c48fb2155af6094c67ef67aa13ffb3e1db78fecf817efe boost_1_63_0_rc1.zip


File: site-tools/releases/boost_1_63_0_rc2.txt

https://sourceforge.net/projects/boost/files/boost/1.63.0/

25db3956a8d58187ac7a0702cc917e9bab47ff90baafc35e4e789dca1ce5f423 boost_1_63_0_rc2.7z
beae2529f759f6b3bf3f4969a19c2e9d6f0c503edcb2de4a61d1428519fcb3b0 boost_1_63_0_rc2.tar.bz2
fe34a4e119798e10b8cc9e565b3b0284e9fd3977ec8a1b19586ad1dec397088b boost_1_63_0_rc2.tar.gz
97ce6635df1f44653a597343cd5757bb8b6b992beb3720f5fc761e3644bcbe7b boost_1_63_0_rc2.zip


File: site-tools/releases/boost_1_64_0.txt

https://dl.bintray.com/boostorg/release/1.64.0/source/

49c6abfeb5b480f6a86119c0d57235966b4690ee6ff9e6401ee868244808d155 boost_1_64_0.7z
7bcc5caace97baa948931d712ea5f37038dbb1c5d89b43ad4def4ed7cb683332 boost_1_64_0.tar.bz2
0445c22a5ef3bd69f5dfb48354978421a85ab395254a26b1ffb0aa1bfd63a108 boost_1_64_0.tar.gz
b99973c805f38b549dbeaf88701c0abeff8b0e8eaa4066df47cac10a32097523 boost_1_64_0.zip


File: site-tools/releases/boost_1_64_0_b1.txt

https://dl.bintray.com/boostorg/beta/1.64.0.beta.1/source/

8f0ba6b73fad15115049f9b3e7e27eae43be10a94b51a57142f3a27e55ef4beb boost_1_64_0_b1.7z
b5c5abf127a3f723dafcc7cf55876c1bda9f014fb1b117f6a7f769e3cc407c4f boost_1_64_0_b1.tar.bz2
a7fe98a9a9f615f6fa68d8ea09ce725d19e3a4fe4719c21c9db29dff88b3b6e3 boost_1_64_0_b1.tar.gz
593005661af8dfe132b2b16bc2cd41339e6acd58456913f353d765090d7868f7 boost_1_64_0_b1.zip


File: site-tools/releases/boost_1_64_0_b2.txt

https://dl.bintray.com/boostorg/beta/1.64.0.beta.2/source/

49c9339b9d8e7b2610ef84c80cd10b2252c119ebcc3222450beb0e94c1da1522 boost_1_64_0_b2.7z
92ec7cbf1e77c5979e381dd8104f9e96c0471c276e566272751a981d806db94b boost_1_64_0_b2.tar.bz2
da5670892b7b572808491b13a7b9421c3c18e6f395d6a5ec822466db466eda01 boost_1_64_0_b2.tar.gz
61d6e29e8a1d7503fe13a9d916842f0ec2e625f733b98b29ce563f8cbdb482bf boost_1_64_0_b2.zip