2
0
mirror of https://github.com/boostorg/website.git synced 2026-01-19 04:42:17 +00:00
Files
website/development/report-may-2008.html
2024-09-01 08:56:16 -07:00

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&amp;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&amp;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&amp;filename=boost.lexer.zip&amp;directory=Strings%20-%20Text%20Processing&amp;">
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?&amp;direction=0&amp;order=&amp;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&amp;filename=range_ex.zip&amp;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?&amp;direction=0&amp;order=&amp;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&amp;filename=Pimpl.zip&amp;directory=&amp;">
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>