Changes between Version 2 and Version 3 of LibrariesUnderConstruction


Ignore:
Timestamp:
Dec 3, 2008, 9:14:35 PM (14 years ago)
Author:
viboes
Comment:

Adding other libraries

Legend:

Unmodified
Added
Removed
Modified
  • LibrariesUnderConstruction

    v2 v3  
    11[[PageOutline]]
    22
    3 WARNING: The contents of this page could be incomplete and outdated. Please help us to improve this page by modifying it directly or posting on the Boost mailing list [mailto:boost-AT-lists.boost.org] and [mailto:boost-users-AT-lists.boost.org].
     3WARNING: The contents of this page could be incomplete and outdated. Please help us to improve this page by modifying it directly or posting on the Boost mailing lists [mailto:boost-AT-lists.boost.org] or [mailto:boost-users-AT-lists.boost.org] with the prefix `[LibrariesUnderConstruction].
    44
    55See [http://www.boost.org/doc/ Boost Releases documentation]  for the list of libraries Boost by release.
     
    5454 * '''Last upload:'''2008 Oct 14
    5555 * '''Links:''' [http://www.boostpro.com/vault/index.php?action=downloadfile&filename=constant_time_size.zip&directory=Containers& Boost Vault] [https://svn.boost.org/svn/boost/sandbox/constant_time_size Boost Sandbox]
    56  * '''Description:''' Boost.!ConstantTimeSize 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.
     56 * '''Description:''' Boost.!ConstantTimeSize defines a wrapper to the STL container list giving the user the choice for the complexity of the size function:  linear time, constant time or quasi-constant.
    5757In future versions the library could include a similar wrapper to slist.
    5858
    59 
    60 ---------------------------------------------------------------------------------------------------
    61 == Boost.!Dataflow ==
     59---------------------------------------------------------------------------------------------------
     60== Boost.Coroutines ==
     61 * '''Author(s):''' Giovanni P. Deretta
     62 * '''Version:'''
     63 * '''State:'''
     64 * '''Last upload:'''2008 Mars 05
     65 * '''Links:''' [https://svn.boost.org/svn/boost/sandbox/SOC/2006/corutines Boost Sandbox] [http://www.boostpro.com/vault/index.php?action=downloadfile&filename=boost-coroutine.tar.gz&directory=Concurrent%20Programming& Boost Vault]
     66 * '''Description:''' The Boost.Coroutine library contains a family of class templates that wrap function objects in coroutines. Coroutines are a generalization of subroutines that can return and be reentered more than once without causing the destruction of automatic objects.
     67Coroutines are useful whenever it is necessary to keep state across a function call, a job usually reserved to stateful function objects.
     68
     69---------------------------------------------------------------------------------------------------
     70== Boost.Dataflow ==
    6271 * '''Author(s):'''  Stjepan Rajko
    6372 * '''State:''' Rewriting ongoing
    6473 * '''Version:'''
    6574 * '''Last upload:'''
    66  * '''Links:''' [https://svn.boost.org/svn/boost/sandbox/dataflow-rewrite Boost Sandbox]
    67  * '''Description:'''
     75 * '''Links:''' [http://dancinghacker.com/code/dataflow/ Documentation] [https://svn.boost.org/svn/boost/sandbox/dataflow-rewrite Boost Sandbox]
     76 * '''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.
     77
     78---------------------------------------------------------------------------------------------------
     79== Boost.Egg ==
     80 * '''Author(s):'''  Shunsuke Sogame
     81 * '''State:'''
     82 * '''Version:'''  0.91.0
     83 * '''Last upload:''' 30 Mars 2008
     84 * '''Links:''' [http://p-stade.sourceforge.net/boost/libs/egg/doc/html/index.html Documentation]
     85 [https://p-stade.svn.sourceforge.net/svnroot/p-stade/trunk/boost SVN repository] [http://www.boost-consulting.com/vault/index.php?action=downloadfile&filename=egg.zip&directory=Function%20Objects& Boost Vault]
     86 * '''Description:''' Egg is a header-only library for building Polymorphic Function Object which can be used with Boost.Lambda. Such a function object is called a Major Function Object.
     87 Egg mainly provides three components:
     88    * Function Builders which build Little Functions into Major Function Objects.
     89    * Function Adaptors which take Polymorphic Function Objects then return adapted ones.
     90    * Function Objects which are ports of famous function templates.
    6891
    6992---------------------------------------------------------------------------------------------------
     
    85108 * '''Links:''' [http://boost-extension.blogspot.com Blog] [http://redshoelace.googlepages.com/extension_reflection.zip Download] [http://svn.boost.org/svn/boost/sandbox/boost/extension Headers Boost Sandbox] [http://svn.boost.org/svn/boost/sandbox/libs/extension Libs Boost Sandbox]
    86109 * '''Description:''' The Boost.Extension library has been developed to ease the development of plugins and similar extensions to software using shared libraries. Classes, functions and data can be made available from shared libraries and loaded by the application.
     110
     111---------------------------------------------------------------------------------------------------
     112== Boost.Fiber ==
     113 * '''Author(s):'''  Oliver Kowalke
     114 * '''Version:'''
     115 * '''State:'''
     116 * '''Last upload:'''2008 Oct 30
     117 * '''Links:''' [http://www.boostpro.com/vault/index.php?action=downloadfile&filename=boost-fiber.v2.tar.gz&directory=Concurrent%20Programming& Boost Vault]
     118 * '''Description:''' Boost.Fiber implements lightweight threads of execution - so called fibers
     119
     120---------------------------------------------------------------------------------------------------
     121== Boost.Fsm ==
     122 * '''Author(s):'''  Andrey Semashev
     123 * '''State:'''
     124 * '''Version:'''
     125 * '''Last upload:'''
     126 * '''Links:''' [http://www.boostpro.com/vault/index.php?action=downloadfile&filename=FSM.zip&directory=& Boost Vault]
     127 * '''Description:'''The Boost.FSM library is an implementation of FSM (stands for Finite State Machine) programming concept.
     128There are many cases when a developer would like to distinguish behaviour of a given object depending on some conditions or its internal state. For example, while developing software to control an charging turnstile a programmer would like to separate states in which the turnstile may persist: an idle state, when the device awaits for another passenger that would like to pass; a processing state, when the passenger have come and put his ticket into the device; and the passing state, when the turnstile lets the passenger pass through. In fact, each state describes a different reaction of the machine at the same events. That's why a passenger may only pass after paying for ticket. Obviously, the turnstile have to be able to change its internal state in order to function properly, this is called state switching or transitions between states (or just transitions for short).
     129This implementation is aimed to ease the creation of such state machines in C++. It supports constructing passive automatons (which means that every action the machine performs is a response to some external event) with finite number of states and finite number of transitions (that is why they are called finite state machines). The main goals of the library are:
     130    * Simplicity. It should be very simple to create state machines using this library.
     131    * Performance. The state machine infrastructure should not be very time and memory-consuming in order to be applicable in more use cases.
     132    * Extensibility. A developer may want to add more states to the existing state machine, for example, the maintenance state for the turnstile mentioned above, and this addition should be relatively safe since it shouldn't interfere with the existing states. The developer should also be able to specify additional transitions and events for the machine with minimum modifications to the existing code.
    87133
    88134---------------------------------------------------------------------------------------------------
     
    95141 * '''Description:'''  Boost.!InterThreads extends Boost.Threads adding some features:
    96142     * 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.
    97     * 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.
    98     * 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.
    99     * thread tuple: defines a thread group where the number of threads is know statically and the threads are created at construction time.
    100     * set_once: a synchronizer that allows to set a variable only once, notifying to the variable value to whatever is waiting for that.
    101     * 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.
    102     * 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.
     143     * 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.
     144     * 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.
     145     * thread tuple: defines a thread group where the number of threads is know statically and the threads are created at construction time.
     146     * set_once: a synchronizer that allows to set a variable only once, notifying to the variable value to whatever is waiting for that.
     147     * 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.
     148     * 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.
    103149 
    104 (thread_decorator and thread_specific_shared_ptr) are based on the original implementation of threadalert written by Roland Schwarz.
    105 
    106 
    107 
    108 ---------------------------------------------------------------------------------------------------
    109 == Boost.!ITL ==
     150thread_decorator and thread_specific_shared_ptr are based on the original implementation of threadalert written by Roland Schwarz.
     151
     152
     153
     154---------------------------------------------------------------------------------------------------
     155== Boost.ITL ==
    110156 * '''Author(s):'''  Joachim Faulhaber
    111157 * '''Version:'''
     
    130176== Boost.Mirror ==
    131177 * '''Author(s):'''  Matus Chochlik
    132  * '''Version:'''
     178 * '''Version:''' 0.3
    133179 * '''Last upload:'''
    134  * '''Links:''' [https://svn.boost.org/svn/boost/sandbox/mirror Boost Sandbox]
     180 * '''Links:''' [http://www.boostpro.com/vault/index.php?action=downloadfile&filename=mirror.zip&directory=& Boost Vault] [https://svn.boost.org/svn/boost/sandbox/mirror Boost Sandbox]
    135181 * '''Description:''' The aim of the <libraryname>Mirror</libraryname> library is to provide useful meta-data at both compile-time and run-time about common C++ constructs like namespaces, types (and as an important special case <code>typedef</code>-ined types), classes and their base classes and member attributes, instances, etc. and to provide uniform and generic interfaces for their introspection.
    136 
    137182
    138183---------------------------------------------------------------------------------------------------
     
    144189 * '''Links:''' [https://svn.boost.org/svn/boost/sandbox/move Boost Sandbox]
    145190 * '''Description:''' User defined types often have remote parts either because they are implemented using a pointer-to-implementation or are variable sized. Such objects can be expensive to copy and are often copied unnecessarily when they are returned from functions or stored in other objects or containers. Boost.Move is a collection of utilities to implement types which can be moved to elide copying in such situations as well as utilities to assist in moving value.
     191
     192---------------------------------------------------------------------------------------------------
     193== Boost.Poet ==
     194 * '''Author(s):'''  Frank Mori Hess
     195 * '''Version:'''
     196 * '''State:'''
     197 * '''Last upload:'''
     198 * '''Links:''' [http://www.comedi.org/projects/libpoet/index.html Home Page]
     199 * '''Description:'''  libpoet is a C++ parallel programing library. It provides support for easily creating active objects, creating monitor objects, and automatically validating mutex locking order.
     200
     201Active objects provide concurrency and thread-safety, since each active object executes in its own thread. Futures are employed to communicate with active objects in a thread-safe manner. To learn more about the active object concept, see the paper "Active Object, An Object Behavioral Pattern for Concurrent Programming." by R. Greg Lavender and Douglas C. Schmidt. Some of the more important active object classes in libpoet are poet::active_function, poet::future, and poet::scheduler.
     202
     203Monitor objects provide thread-safety via automatically locked access to an object. See the paper "Monitor Object, An Object Behavioral Pattern for Concurrent Programming" by Douglas C. Schmidt for more information about monitor objects. The poet::monitor_ptr, poet::monitor, and poet::monitor_base classes in libpoet provide support for monitor objects.
     204
     205Finally, the poet::acyclic_mutex class provides a wrapper for mutex classes which adds automatic validation of a program's mutex locking order. Following a consistent locking order ensures your program will not deadlock due to problems such as "deadly embrace" or the "dining philosophers" problem.
     206
    146207
    147208---------------------------------------------------------------------------------------------------
     
    209270---------------------------------------------------------------------------------------------------
    210271== Geometry ==
    211  * '''Description:'''
     272 * '''Description:''' geometry template library (manhattan/45-degree polygon ops)
    212273 * '''Discussion:'''
    213274 * '''Participants:''' 
     275 * '''Links:''' [http://www.boostpro.com/vault/index.php?action=downloadfile&filename=gtl.tar.gz&directory=Math%20-%20Geometry& Boost Vault]
    214276
    215277---------------------------------------------------------------------------------------------------
     
    294356{{{
    295357#!cpp
    296 template <typename T, typename F, typename W, typename DependablePolicy, typename SlicingPolicy, typename CyclicPolicy>
     358template <typename T, typename F, typename W,
     359          typename DependablePolicy,
     360          typename SlicingPolicy,
     361          typename CyclicPolicy>
    297362class accumulator_set;
    298363}}}