mirror of
https://github.com/boostorg/website.git
synced 2026-01-19 04:42:17 +00:00
895 lines
37 KiB
HTML
895 lines
37 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
|
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
|
<head>
|
|
<title>Review Wizard Status Report for May 2008</title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<link rel="icon" href="/favicon.ico" type="image/ico" />
|
|
<link rel="stylesheet" type="text/css" href=
|
|
"../style-v2/section-development.css" />
|
|
<!--[if IE]> <style type="text/css"> body { behavior: url(../style-v2/csshover.htc); } </style> <![endif]-->
|
|
<script defer data-domain="original.boost.org" src="https://plausible.io/js/script.js"></script></head><!--
|
|
Note: Editing website content is documented at:
|
|
https://www.boost.org/development/website_updating.html
|
|
-->
|
|
|
|
<body>
|
|
<div id="heading">
|
|
<!--#include virtual="/common/heading.html" -->
|
|
</div>
|
|
|
|
<div id="body">
|
|
<div id="body-inner">
|
|
<div id="content">
|
|
<div class="section" id="intro">
|
|
<div class="section-0">
|
|
<div class="section-title">
|
|
<h1>Review Wizard Status Report for May 2008</h1>
|
|
</div>
|
|
|
|
<div class="section-body">
|
|
<h2><a name="news" id="news"></a>News</h2>
|
|
|
|
<p>December 7, 2007 - Forward Library Accepted - Awaiting
|
|
SVN</p>
|
|
|
|
<p>December 16 - Unordered Containers Library Accepted - In
|
|
SVN</p>
|
|
|
|
<p>December 21 - Factory Library Accepted - Awaiting SVN</p>
|
|
|
|
<p>January 13, 2008 - Switch Library Accepted Provisionally -
|
|
Awaiting submission for mini review</p>
|
|
|
|
<p>January 18 - Singleton Library Rejected - Awaiting
|
|
resubmission, John Torjo has already volunteered to manage the
|
|
next review</p>
|
|
|
|
<p>January 30 - Flyweight Library Accepted - Awaiting SVN</p>
|
|
|
|
<p>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</p>
|
|
|
|
<p>February 27 - Floating Point Utilities Library Accepted -
|
|
Awaiting SVN</p>
|
|
|
|
<p>March 14 - Proto Library Accepted - Exists as a component in
|
|
Xpressive, but not yet as a separate library</p>
|
|
|
|
<p>April 20 - Egg review completed - Results pending</p>
|
|
|
|
<p>May 7 - Scope Exit Library Accepted - Awaiting SVN</p>
|
|
</div>
|
|
|
|
<div class="section" id="older-issues">
|
|
<h1><a name="older-issues" id="older-issues">Older
|
|
Issues</a></h1>
|
|
|
|
<p>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</p>
|
|
|
|
<p>The Quantitative Units library, accepted in April 2007 has
|
|
not yet been submitted to SVN</p>
|
|
|
|
<p>The Globally Unique Identifier library, accepted
|
|
provisionally in May 2007 has not yet been submitted for
|
|
mini-review and full acceptance</p>
|
|
|
|
<p>The Time Series Library, accepted in August 2007 has not yet
|
|
been submitted to SVN</p>
|
|
|
|
<p>The Accumulators library, accepted in February 2007 is in
|
|
SVN</p>
|
|
|
|
<p>The Exception library, accepted in October 2007 is in
|
|
SVN</p>
|
|
|
|
<p>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</p>
|
|
|
|
<p>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.</p>
|
|
|
|
<p>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.</p>
|
|
</div>
|
|
|
|
<div class="section" id="general-announcements">
|
|
<h1><a name="general-announcements" id=
|
|
"general-announcements">General Announcements</a></h1>
|
|
|
|
<p>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.</p>
|
|
|
|
<p>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.</p>
|
|
|
|
<p>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.</p>
|
|
</div>
|
|
|
|
<div class="section" id="review-queue">
|
|
<h1><a name="review-queue" id="review-queue">Review
|
|
Queue</a></h1>
|
|
|
|
<ul class="simple">
|
|
<li>Finite State Machines</li>
|
|
|
|
<li>Property Map (fast-track)</li>
|
|
|
|
<li>Graph (fast-track)</li>
|
|
|
|
<li>Lexer</li>
|
|
|
|
<li>Thread-Safe Signals</li>
|
|
|
|
<li>Boost.Range (Update)</li>
|
|
|
|
<li>Shifted Pointer</li>
|
|
|
|
<li>DataFlow Signals</li>
|
|
|
|
<li>Logging</li>
|
|
|
|
<li>Futures (Braddock Gaskill)</li>
|
|
|
|
<li>Futures (Anthony Williams)</li>
|
|
|
|
<li>Join (Yigong Liu)</li>
|
|
|
|
<li>Pimpl (Vladimir Batov)</li>
|
|
</ul>
|
|
<hr class="docutils" />
|
|
|
|
<div class="section" id="finite-state-machines">
|
|
<h2><a name="finite-state-machines" id=
|
|
"finite-state-machines">Finite State Machines</a></h2>
|
|
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
|
|
<tbody valign="top">
|
|
<tr class="field">
|
|
<th class="field-name">Author:</th>
|
|
|
|
<td class="field-body">Andrey Semashev</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Review Manager:</th>
|
|
|
|
<td class="field-body">Martin Vuille</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Download:</th>
|
|
|
|
<td class="field-body"><a class="reference" href=
|
|
"http://tinyurl.com/yjozfn">Boost Sandbox
|
|
Vault</a></td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Description:</th>
|
|
|
|
<td class="field-body">
|
|
<p class="first">The Boost.FSM library is an
|
|
implementation of FSM (stands for Finite State
|
|
Machine) programming concept. The main goals of the
|
|
library are:</p>
|
|
|
|
<ul class="last simple">
|
|
<li>Simplicity. It should be very simple to create
|
|
state machines using this library.</li>
|
|
|
|
<li>Performance. The state machine infrastructure
|
|
should not be very time and memory-consuming in
|
|
order to be applicable in more use cases.</li>
|
|
|
|
<li>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.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="section" id="property-map-fast-track">
|
|
<h2><a name="property-map-fast-track" id=
|
|
"property-map-fast-track">Property Map (fast-track)</a></h2>
|
|
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
|
|
<tbody valign="top">
|
|
<tr class="field">
|
|
<th class="field-name">Author:</th>
|
|
|
|
<td class="field-body">Andrew Sutton</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Review Manager:</th>
|
|
|
|
<td class="field-body">Jeremy Siek</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Download:</th>
|
|
|
|
<td class="field-body"><a class="reference" href=
|
|
"http://svn.boost.org/svn/boost/sandbox/graph-v2">http://svn.boost.org/svn/boost/sandbox/graph-v2</a></td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Description:</th>
|
|
|
|
<td class="field-body">
|
|
<p class="first">A number of additions and
|
|
modifications to the Property Map Library,
|
|
including:</p>
|
|
|
|
<ul class="last simple">
|
|
<li>A constant-valued property map, useful for
|
|
naturally unweighted graphs.</li>
|
|
|
|
<li>A noop-writing property map, useful when you
|
|
have to provide an argument, but just don't care
|
|
about the output.</li>
|
|
|
|
<li>See <a class="reference" href=
|
|
"http://svn.boost.org/trac/boost/browser/sandbox/graph-v2/libs/property_map/ChangeLog">
|
|
ChangeLog</a> for details.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="section" id="graph-fast-track">
|
|
<h2><a name="graph-fast-track" id="graph-fast-track">Graph
|
|
(fast-track)</a></h2>
|
|
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
|
|
<tbody valign="top">
|
|
<tr class="field">
|
|
<th class="field-name">Author:</th>
|
|
|
|
<td class="field-body">Andrew Sutton</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Review Manager:</th>
|
|
|
|
<td class="field-body">Jeremy Siek</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Download:</th>
|
|
|
|
<td class="field-body"><a class="reference" href=
|
|
"http://svn.boost.org/svn/boost/sandbox/graph-v2">http://svn.boost.org/svn/boost/sandbox/graph-v2</a></td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Description:</th>
|
|
|
|
<td class="field-body">
|
|
<p class="first">A number of additions and
|
|
modifications to the Graph Library, including:</p>
|
|
|
|
<ul class="last simple">
|
|
<li>Two new graph classes (undirected and directed)
|
|
which are intended to make the library more
|
|
approachable for new developers</li>
|
|
|
|
<li>A suite of graph measures including degree and
|
|
closeness centrality, mean geodesic distance,
|
|
eccentricity, and clustering coefficients.</li>
|
|
|
|
<li>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).</li>
|
|
|
|
<li>An algorithm for visiting all the cliques a
|
|
graph (Bron&Kerbosch). Works for both directed
|
|
and undirected.</li>
|
|
|
|
<li>Derived graph measures radius and diameter
|
|
(from eccentricity) and girth and circumference
|
|
(from Tiernan), and clique number (from
|
|
Bron&Kerbosch).</li>
|
|
|
|
<li>An exterior_property class that helps hides
|
|
some of the weirdness with exterior
|
|
properties.</li>
|
|
|
|
<li>run-time and compile-time tests for the new
|
|
algorithms.</li>
|
|
|
|
<li>a substantial amount of documentation</li>
|
|
|
|
<li>Graph cores, implemented by David Gleich
|
|
(@Stanford University)</li>
|
|
|
|
<li>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.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="section" id="lexer">
|
|
<h2><a name="lexer" id="lexer">Lexer</a></h2>
|
|
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
|
|
<tbody valign="top">
|
|
<tr class="field">
|
|
<th class="field-name">Author:</th>
|
|
|
|
<td class="field-body">Ben Hanson</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Review Manager:</th>
|
|
|
|
<td class="field-body">Eric Neibler</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Download:</th>
|
|
|
|
<td class="field-body"><a class="reference" href=
|
|
"http://boost-consulting.com/vault/index.php?action=downloadfile&filename=boost.lexer.zip&directory=Strings%20-%20Text%20Processing&">
|
|
Boost Sandbox Vault</a></td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Description:</th>
|
|
|
|
<td class="field-body">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.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="section" id="thread-safe-signals">
|
|
<h2><a name="thread-safe-signals" id=
|
|
"thread-safe-signals">Thread-Safe Signals</a></h2>
|
|
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
|
|
<tbody valign="top">
|
|
<tr class="field">
|
|
<th class="field-name">Author:</th>
|
|
|
|
<td class="field-body">Frank Hess</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Review Manager:</th>
|
|
|
|
<td class="field-body">Need Volunteer</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Download:</th>
|
|
|
|
<td class="field-body"><a class="reference" href=
|
|
"http://www.boost-consulting.com/vault/index.php?&direction=0&order=&directory=thread_safe_signals">
|
|
Boost Sandbox Vault</a></td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Description:</th>
|
|
|
|
<td class="field-body">A thread-safe implementation of
|
|
Boost.Signals that has some interface changes to
|
|
accommodate thread safety, mostly with respect to
|
|
automatic connection management.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="section" id="boost-range-update">
|
|
<h2><a name="boost-range-update" id=
|
|
"boost-range-update">Boost.Range (Update)</a></h2>
|
|
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
|
|
<tbody valign="top">
|
|
<tr class="field">
|
|
<th class="field-name">Author:</th>
|
|
|
|
<td class="field-body">Neil Groves</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Review Manager:</th>
|
|
|
|
<td class="field-body">Needed</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Download:</th>
|
|
|
|
<td class="field-body"><a class="reference" href=
|
|
"http://www.boost-consulting.com/vault/index.php?action=downloadfile&filename=range_ex.zip&directory=">
|
|
Boost Sandbox Vault</a></td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Description:</th>
|
|
|
|
<td class="field-body">A significant update of the
|
|
range library, including range adapters.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="section" id="shifted-pointer">
|
|
<h2><a name="shifted-pointer" id="shifted-pointer">Shifted
|
|
Pointer</a></h2>
|
|
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
|
|
<tbody valign="top">
|
|
<tr class="field">
|
|
<th class="field-name">Author:</th>
|
|
|
|
<td class="field-body">Phil Bouchard</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Review Manager:</th>
|
|
|
|
<td class="field-body">Needed</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Download:</th>
|
|
|
|
<td class="field-body"><a class="reference" href=
|
|
"http://www.boost-consulting.com/vault/index.php?&direction=0&order=&directory=Memory">
|
|
Boost Sandbox Vault</a></td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Description:</th>
|
|
|
|
<td class="field-body">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.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="section" id="dataflow-signals">
|
|
<h2><a name="dataflow-signals" id="dataflow-signals">DataFlow
|
|
Signals</a></h2>
|
|
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
|
|
<tbody valign="top">
|
|
<tr class="field">
|
|
<th class="field-name">Author:</th>
|
|
|
|
<td class="field-body">Stjepan Rajko</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Review Manager:</th>
|
|
|
|
<td class="field-body">Needed</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Download:</th>
|
|
|
|
<td class="field-body"><a class="reference" href=
|
|
"http://dancinghacker.com/code/dataflow/">http://dancinghacker.com/code/dataflow/</a></td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Description:</th>
|
|
|
|
<td class="field-body">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.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="section" id="logging">
|
|
<h2><a name="logging" id="logging">Logging</a></h2>
|
|
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
|
|
<tbody valign="top">
|
|
<tr class="field">
|
|
<th class="field-name">Author:</th>
|
|
|
|
<td class="field-body">John Torjo</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Review Manager:</th>
|
|
|
|
<td class="field-body">Gennadiy Rozental</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Download:</th>
|
|
|
|
<td class="field-body"><a class="reference" href=
|
|
"http://torjo.com/log2/">http://torjo.com/log2/</a></td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Description:</th>
|
|
|
|
<td class="field-body">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!</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="section" id="futures">
|
|
<h2><a name="futures" id="futures">Futures</a></h2>
|
|
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
|
|
<tbody valign="top">
|
|
<tr class="field">
|
|
<th class="field-name">Author:</th>
|
|
|
|
<td class="field-body">Braddock Gaskill</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Review Manager:</th>
|
|
|
|
<td class="field-body">Needed</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Download:</th>
|
|
|
|
<td class="field-body"><a class="reference" href=
|
|
"http://braddock.com/~braddock/future/">http://braddock.com/~braddock/future/</a></td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Description:</th>
|
|
|
|
<td class="field-body">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.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="section" id="id1">
|
|
<h2><a name="id1" id="id1">Futures</a></h2>
|
|
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
|
|
<tbody valign="top">
|
|
<tr class="field">
|
|
<th class="field-name">Author:</th>
|
|
|
|
<td class="field-body">Anthony Williams</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Review Manager:</th>
|
|
|
|
<td class="field-body">Needed</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Download:</th>
|
|
|
|
<td class="field-body"><a class="reference" href=
|
|
"http://www.justsoftwaresolutions.co.uk/files/n2561_future.hpp">
|
|
http://www.justsoftwaresolutions.co.uk/files/n2561_future.hpp</a>
|
|
(code) <a class="reference" href=
|
|
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2561.html">
|
|
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2561.html</a>
|
|
(description)</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Description:</th>
|
|
|
|
<td class="field-body">
|
|
<p class="first">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:</p>
|
|
|
|
<blockquote>
|
|
<ul class="simple">
|
|
<li>an interface to assign a value as class
|
|
promise and</li>
|
|
|
|
<li>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.</li>
|
|
</ul>
|
|
</blockquote>
|
|
|
|
<p>A typical procedure for working with promises and
|
|
futures looks like:</p>
|
|
|
|
<blockquote>
|
|
<ul class="simple">
|
|
<li>control thread creates a promise,</li>
|
|
|
|
<li>control thread gets associated future from
|
|
promise,</li>
|
|
|
|
<li>control thread starts sub-thread,</li>
|
|
|
|
<li>sub-thread calls actual function and assigns
|
|
the return value to the promise,</li>
|
|
|
|
<li>control thread waits for future to become
|
|
ready,</li>
|
|
|
|
<li>control thread retrieves value from
|
|
future.</li>
|
|
</ul>
|
|
</blockquote>
|
|
|
|
<p>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.</p>
|
|
|
|
<p>With a packaged_task a typical procedure looks
|
|
like:</p>
|
|
|
|
<blockquote class="last">
|
|
<ul class="simple">
|
|
<li>control thread creates a packaged_task with a
|
|
callable object,</li>
|
|
|
|
<li>control thread gets associated future from
|
|
packaged_task,</li>
|
|
|
|
<li>control thread starts sub-thread, which
|
|
invokes the packaged_task,</li>
|
|
|
|
<li>packaged_task calls the callable function and
|
|
assigns the return value,</li>
|
|
|
|
<li>control thread waits for future to become
|
|
ready,</li>
|
|
|
|
<li>control thread retrieves value from
|
|
future.</li>
|
|
</ul>
|
|
</blockquote>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<p>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.</p>
|
|
</div>
|
|
|
|
<div class="section" id="join">
|
|
<h2><a name="join" id="join">Join</a></h2>
|
|
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
|
|
<tbody valign="top">
|
|
<tr class="field">
|
|
<th class="field-name">Author:</th>
|
|
|
|
<td class="field-body">Yigong Liu</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Review Manager:</th>
|
|
|
|
<td class="field-body">Needed</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Download:</th>
|
|
|
|
<td class="field-body"><a class="reference" href=
|
|
"http://channel.sourceforge.net/">http://channel.sourceforge.net/</a></td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Description:</th>
|
|
|
|
<td class="field-body">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.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="section" id="pimpl">
|
|
<h2><a name="pimpl" id="pimpl">Pimpl</a></h2>
|
|
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
|
|
<tbody valign="top">
|
|
<tr class="field">
|
|
<th class="field-name">Author:</th>
|
|
|
|
<td class="field-body">Vladimir Batov</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Review Manager:</th>
|
|
|
|
<td class="field-body">Needed</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Download:</th>
|
|
|
|
<td class="field-body"><a class="reference" href=
|
|
"http://www.boost-consulting.com/vault/index.php?action=downloadfile&filename=Pimpl.zip&directory=&">
|
|
Boost Sandbox Vault</a> <a class="reference" href=
|
|
"http://www.ddj.com/cpp/205918714">http://www.ddj.com/cpp/205918714</a>
|
|
(documentation)</td>
|
|
</tr>
|
|
|
|
<tr class="field">
|
|
<th class="field-name">Description:</th>
|
|
|
|
<td class="field-body">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.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="section" id="libraries-under-development">
|
|
<h1><a name="libraries-under-development" id=
|
|
"libraries-under-development">Libraries under
|
|
development</a></h1>
|
|
|
|
<p>Please let us know of any libraries you are currently
|
|
developing that you intend to submit for review.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|