Skip to content

Latest commit

 

History

History
396 lines (284 loc) · 13.8 KB

report-may-2008.rst

File metadata and controls

396 lines (284 loc) · 13.8 KB

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

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 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
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
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
Description:A significant update of the range library, including range adapters.

Shifted Pointer

Author:Phil Bouchard
Review Manager:Needed
Download:Boost Sandbox Vault
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.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.