mirror of
https://github.com/boostorg/website.git
synced 2026-01-19 04:42:17 +00:00
708 lines
32 KiB
HTML
708 lines
32 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 November 2008</title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
|
|
<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]-->
|
|
</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 November 2008</h1>
|
|
</div>
|
|
|
|
<div class="section-body">
|
|
<h2><a name="news" id="news"></a>News</h2>
|
|
<p>May 7 - Scope Exit Library Accepted - Awaiting SVN</p>
|
|
<p>May 17 - Egg Library Rejected</p>
|
|
<dl class="docutils">
|
|
<dt>August 14 - Boost 1.36 Released</dt>
|
|
<dd>New Libraries: Accumulators, Exception, Units, Unordered Containers</dd>
|
|
</dl>
|
|
<p>August 27 - Finite State Machines Rejected</p>
|
|
<p>September 10 - Data Flow Signals Rejected</p>
|
|
<p>September 30 - Phoenix Accepted Conditionally</p>
|
|
<dl class="docutils">
|
|
<dt>November 3 - Boost 1.37 Released</dt>
|
|
<dd>New Library: Proto</dd>
|
|
</dl>
|
|
<p>November 10 - Thread-Safe Signals Accepted - Awaiting SVN</p>
|
|
<p>November 25 - Globally Unique Identifier Library mini-Review in progress</p>
|
|
</div>
|
|
<div class="section" id="older-issues">
|
|
<h1>Older Issues</h1>
|
|
<p>The Quantitative Units library, accepted in April 2007 is in SVN
|
|
(listed as units).</p>
|
|
<p>The Time Series Library, accepted in August 2007, has not yet been
|
|
submitted
|
|
to SVN.</p>
|
|
<p>The Switch Library, accepted provisionally in January 2008,
|
|
has not yet been submitted for mini-review and full acceptance.</p>
|
|
<p>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.</p>
|
|
<p>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:</p>
|
|
<ul class="simple">
|
|
<li>Flyweight (Joaquin Ma Lopez Munoz)</li>
|
|
<li>Floating Point Utilities (Johan Rade)</li>
|
|
<li>Factory (Tobias Schwinger)</li>
|
|
<li>Forward (Tobias Schwinger)</li>
|
|
<li>Scope Exit (Alexander Nasonov)</li>
|
|
<li>Time Series (Eric Niebler)</li>
|
|
<li>Property Tree (Marcin Kalicinski) -- No documentation in SVN</li>
|
|
</ul>
|
|
<p>Any information on the whereabouts of these libraries would be greatly
|
|
appreciated.</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>
|
|
</div>
|
|
<div class="section" id="general-announcements">
|
|
<h1>General Announcements</h1>
|
|
<p>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.</p>
|
|
<p>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.</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>Review Queue</h1>
|
|
<ul class="simple">
|
|
<li>Lexer</li>
|
|
<li>Boost.Range (Update)</li>
|
|
<li>Shifted Pointer</li>
|
|
<li>Logging</li>
|
|
<li>Futures - Williams</li>
|
|
<li>Futures - Gaskill</li>
|
|
<li>Join</li>
|
|
<li>Pimpl</li>
|
|
<li>Constrained Value</li>
|
|
<li>Thread Pool</li>
|
|
<li>Polynomial</li>
|
|
</ul>
|
|
<hr class="docutils" />
|
|
<div class="section" id="lexer">
|
|
<h2>Lexer</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 external" 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="boost-range-update">
|
|
<h2>Boost.Range (Update)</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 external" href="http://www.boost-consulting.com/vault/index.php?action=downloadfile&filename=range_ex.zip">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>Shifted Pointer</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 external" 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="logging">
|
|
<h2>Logging</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 external" 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>Futures</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">Tom Brinkman</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">Download:</th><td class="field-body"><a class="reference external" 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 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.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="id1">
|
|
<h2>Futures</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"><p class="first">Anthony Williams</p>
|
|
</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">Review Manager:</th><td class="field-body"><p class="first">Tom Brinkman</p>
|
|
</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">Download:</th><td class="field-body"><div class="first line-block">
|
|
<div class="line"><a class="reference external" href="http://www.justsoftwaresolutions.co.uk/files/n2561_future.hpp">http://www.justsoftwaresolutions.co.uk/files/n2561_future.hpp</a>
|
|
(code)</div>
|
|
<div class="line"><a class="reference external" 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)</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">Description:</th><td class="field-body"><p class="first">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:</p>
|
|
<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>
|
|
<p>A typical procedure for working with promises and futures looks like:</p>
|
|
<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>
|
|
<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>
|
|
<ul class="last 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>
|
|
</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>Join</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 external" 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>Pimpl</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"><div class="first last line-block">
|
|
<div class="line"><a class="reference external" href="http://www.boost-consulting.com/vault/index.php?action=downloadfile&filename=Pimpl.zip&directory=&">Boost Sandbox Vault</a></div>
|
|
<div class="line"><a class="reference external" href="http://www.ddj.com/cpp/205918714">http://www.ddj.com/cpp/205918714</a> (documentation)</div>
|
|
</div>
|
|
</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 class="section" id="constrained-value">
|
|
<h2>Constrained Value</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"><p class="first">Robert Kawulak</p>
|
|
</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">Review Manager:</th><td class="field-body"><p class="first">Jeff Garland</p>
|
|
</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">Download:</th><td class="field-body"><p class="first"><a class="reference external" href="http://rk.go.pl/f/constrained_value.zip">http://rk.go.pl/f/constrained_value.zip</a></p>
|
|
</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">Description:</th><td class="field-body"><p class="first">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:</p>
|
|
<pre class="literal-block">
|
|
bounded_int<int, 0, 23>::type hour;
|
|
hour = 20; // OK
|
|
hour = 26; // exception!
|
|
</pre>
|
|
<p>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:</p>
|
|
<pre class="literal-block">
|
|
wrapping_int<int, 0, 255>::type buffer_index;
|
|
buffer_index = 257; // OK: wraps the value to fit in the range
|
|
assert( buffer_index == 1 );
|
|
</pre>
|
|
<p>The library doesn't focus only on bounded objects as in the examples above --
|
|
virtually any constraint can be imposed by using a predicate:</p>
|
|
<pre class="literal-block">
|
|
// constraint (a predicate)
|
|
struct is_odd {
|
|
bool operator () (int i) const
|
|
{ return (i % 2) != 0; }
|
|
};
|
|
</pre>
|
|
<pre class="literal-block">
|
|
// and the usage is as simple as:
|
|
constrained<int, is_odd> odd_int = 1;
|
|
odd_int += 2; // OK
|
|
++odd_int; // exception!
|
|
</pre>
|
|
<p class="last">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.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="thread-pool">
|
|
<h2>Thread Pool</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"><p class="first">Oliver Kowalke</p>
|
|
</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">Review Manager:</th><td class="field-body"><p class="first">Needed</p>
|
|
</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">Download:</th><td class="field-body"><p class="first"><a class="reference external" href="http://www.boostpro.com/vault/index.php?action=downloadfile&amp;filename=boost-threadpool.2.tar.gz&amp;directory=Concurrent%20Programming">Boost Sandbox Vault</a></p>
|
|
</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">Description:</th><td class="field-body"><p class="first">The library provides:</p>
|
|
<ul class="last">
|
|
<li><dl class="first docutils">
|
|
<dt>thread creation policies: determines the management of worker threads</dt>
|
|
<dd><ul class="first last simple">
|
|
<li>fixed set of threads in pool</li>
|
|
<li>create workerthreads on demand (depending on context)</li>
|
|
<li>let worker threads ime out after certain idle time</li>
|
|
</ul>
|
|
</dd>
|
|
</dl>
|
|
</li>
|
|
<li><dl class="first docutils">
|
|
<dt>channel policies: manages access to queued tasks</dt>
|
|
<dd><ul class="first last simple">
|
|
<li>bounded channel with high and low watermark for queuing tasks</li>
|
|
<li>unbounded channel with unlimited number of queued tasks</li>
|
|
<li>rendezvous syncron hand-over between producer and consumer threads</li>
|
|
</ul>
|
|
</dd>
|
|
</dl>
|
|
</li>
|
|
<li><dl class="first docutils">
|
|
<dt>queueing policy: determines how tasks will be removed from channel</dt>
|
|
<dd><ul class="first last simple">
|
|
<li>FIFO</li>
|
|
<li>LIFO</li>
|
|
<li>priority queue (attribute assigned to task)</li>
|
|
<li>smart insertions and extractions (for instance remove oldest task with
|
|
certain attribute by newst one)</li>
|
|
</ul>
|
|
</dd>
|
|
</dl>
|
|
</li>
|
|
<li><p class="first">tasks can be chained and lazy submit of taks is also supported (thanks to
|
|
Braddocks future library).</p>
|
|
</li>
|
|
<li><p class="first">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 -> <tt class="docutils literal"><span class="pre">this_thread::interruption_point()</span></tt> ).</p>
|
|
</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="polynomial">
|
|
<h2>Polynomial</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"><p class="first">Pawel Kieliszczyk</p>
|
|
</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">Review Manager:</th><td class="field-body"><p class="first">Needed</p>
|
|
</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">Download:</th><td class="field-body"><p class="first"><a class="reference external" href="http://www.boostpro.com/vault/index.php?action=downloadfile&amp;filename=polynomial.zip">Boost Sandbox Vault</a></p>
|
|
</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">Description:</th><td class="field-body"><p class="first">The library was written to enable fast and faithful polynomial manipulation.
|
|
It provides:</p>
|
|
<ul class="last simple">
|
|
<li>main arithmetic operators (+, -, * using FFT, /, %),</li>
|
|
<li>gcd,</li>
|
|
<li>different methods of evaluation (Horner Scheme, Compensated Horner
|
|
Algorithm, by preconditioning),</li>
|
|
<li>derivatives and integrals,</li>
|
|
<li>interpolation,</li>
|
|
<li>conversions between various polynomial forms (special functions for
|
|
creating Chebyshev, Hermite, Laguerre and Legendre form).</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="libraries-under-development">
|
|
<h1>Libraries under development</h1>
|
|
<p>Please let us know of any libraries you are currently
|
|
developing that you intend to submit for review.</p>
|
|
<div class="section" id="id2">
|
|
<h2>Logging</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">Download:</th><td class="field-body"><a class="reference external" href="http://boost-log.sourceforge.net">http://boost-log.sourceforge.net</a></td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">Description:</th><td class="field-body">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.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="mirror">
|
|
<h2>Mirror</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"><p class="first">Matus Chochlik</p>
|
|
</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">Download:</th><td class="field-body"><div class="first line-block">
|
|
<div class="line"><a class="reference external" href="http://svn.boost.org/svn/boost/sandbox/mirror/doc/index.html">http://svn.boost.org/svn/boost/sandbox/mirror/doc/index.html</a></div>
|
|
<div class="line"><a class="reference external" href="http://www.boostpro.com/vault/index.php?action=downloadfile&filename=mirror.zip">Boost Sandbox Vault</a></div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">Description:</th><td class="field-body"><p class="first">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.</p>
|
|
<p>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</p>
|
|
<p>Most important features of the Mirror library that are currently
|
|
implemented include:</p>
|
|
<blockquote>
|
|
<ul class="simple">
|
|
<li>Namespace-name inspection.</li>
|
|
<li>Inspection of the whole scope in which a namespace is defined</li>
|
|
<li>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.</li>
|
|
<li>Inspection of the scope in which a type has been defined</li>
|
|
<li>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).</li>
|
|
<li>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.</li>
|
|
<li>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.</li>
|
|
</ul>
|
|
</blockquote>
|
|
<p class="last">I'm hoping to have it review ready in the next few months.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="interval-template-library">
|
|
<h2>Interval Template Library</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"><p class="first">Joachim Faulhaber</p>
|
|
</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">Description:</th><td class="field-body"><p class="first">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.</p>
|
|
<p>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.</p>
|
|
<p>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:</p>
|
|
<pre class="literal-block">
|
|
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"}
|
|
</pre>
|
|
<p class="last">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).</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="stlconstanttimesize">
|
|
<h2>StlConstantTimeSize</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">Vicente J. Botet Escriba</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">Download:</th><td class="field-body"><a class="reference external" href="http://www.boostpro.com/vault/index.php?action=downloadfile&filename=constant_time_size.zip&directory=Containers&">Boost Sandbox Vault</a></td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">Description:</th><td class="field-body">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.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="interthreads">
|
|
<h2>InterThreads</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"><p class="first">Vicente J. Botet Escriba</p>
|
|
</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">Download:</th><td class="field-body"><div class="first line-block">
|
|
<div class="line"><a class="reference external" href="http://www.boostpro.com/vault/index.php?action=downloadfile&filename=interthreads.zip&directory=Concurrent%20Programming&">Boost Sandbox Vault</a></div>
|
|
<div class="line"><a class="reference external" href="https://svn.boost.org/svn/boost/sandbox/interthreads">Boost Sandbox</a></div>
|
|
<div class="line">Html doc included only on the Vault</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">Description:</th><td class="field-body"><p class="first">Boost.InterThreads extends Boost.Threads adding some features:</p>
|
|
<blockquote>
|
|
<ul class="simple">
|
|
<li>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.</li>
|
|
<li>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.</li>
|
|
<li>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.</li>
|
|
<li>thread tuple: defines a thread groupe where the number of
|
|
threads is know statically and the threads are created at
|
|
construction time.</li>
|
|
<li>set_once: a synchonizer that allows to set a variable only once,
|
|
notifying to the variable value to whatever is waiting for that.</li>
|
|
<li>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.</li>
|
|
<li>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.</li>
|
|
</ul>
|
|
</blockquote>
|
|
<p>(thread_decorator and thread_specific_shared_ptr) are based on the
|
|
original implementation of threadalert written by Roland Schwarz.</p>
|
|
<p class="last">Boost.InterThreads extends Boost.Threads adding thread setup/cleanup
|
|
decorator, thread specific shared pointer, thread keep alive
|
|
mechanism and thread tuples.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|