|
Boost : |
From: Ronald Garcia (garcia_at_[hidden])
Date: 2005-12-01 15:11:55
Review Wizard Status Report
Tom Brinkman
Ronald Garcia
1) News
2) Review Managers Needed
3) Review Queue
4) Libraries under development
////////////////////////////////////////////////////////////////////
1) News
////////////////////////////////////////////////////////////////////
Ronald Garcia has signed on as co-wizard to assist Tom Brinkman. Feel
free to contact either of us with questions or review requests.
Output Formatters, Singleton, and Interfaces have been removed from the
review
queue. Reece Dunn,
Jason Hise, and Jonathan Turkanis, the respective library authors, do
not
currently have the time to make the changes necessary prior to a
review. We hope to see these libraries updated and resubmitted
some time in the not too distant future.
We need review managers. Please take a look at the list of libraries
in need of managers and check out their descriptions. If you can
serve as review manager for any of them, send one of us an email.
Note:
If you have any suggestions about how we could improve
the Review Wizard's status report or if we have forgotten anything,
please email "reportbase at gmail dot com"
and "garcia at cs dot indiana dot edu".
////////////////////////////////////////////////////////////////////
2) Review Managers Needed
////////////////////////////////////////////////////////////////////
There are a few libraries in the review queue in need
of review managers. If you would like to volunteer to be a review
manager, please contact Ron or Tom.
The following libraries still require review manager volunteers:
Fixed Strings
Intrusive Containers
Singleton (Re-review)
Fusion
Shmem
Type Traits (modification)
////////////////////////////////////////////////////////////////////
3) Review Queue
////////////////////////////////////////////////////////////////////
asio - December 10 2005 - December 24 2005
Policy Pointer
Fixed Strings
Intrusive Containers
Function Types (mini-re-review)
Fusion
Shmem
Type_Traits
asio
Author - Christopher Kohlhoff
Review Manager - Jeff Garland
Download:
http://asio.sourceforge.net/
Description:
asio is a cross-platform C++ library for network programming that
provides developers with a consistent asynchronous I/O model using a
modern C++ approach.
To use asio's SSL support, OpenSSL is required. OpenSSL is not
necessary to use the rest of asio.
asio consists only of header files, and so there is no need to build
any libraries before using asio in your own applications.
asio supports the following platforms and compilers:
Win32 using Visual C++ 7.1 and Visual C++ 8.0.
Win32 using Borland C++Builder 6 patch 4.
Win32 using MinGW.
Linux (2.4 or 2.6 kernels) using g++ 3.3 or later.
Solaris using g++ 3.3 or later.
Mac OS X 10.4 using g++ 3.3 or later.
Type_Traits (modification)
Author - Alexander Nasonov
Review Manager - To be determined
Download :
You can download it from
http://cpp-experiment.sourceforge.net/promote-20050917.tar.gz
or browse it online
http://cpp-experiment.sourceforge.net/promote-20050917/
Description:
Proposal to add promote, integral_promotion and
floating_point_promotion
class templates to type_traits library.
Alexander tried it on different compilers with various success:
GNU/Linux (gentoo-hardened): gcc 3.3 and 3.4, Intel 7, 8 and 9
Windows: VC7 free compiler
Sparc Solaris: Sun C++ 5.3 and 5.7
See comments at the beginning of promote_enum_test.cpp for what is
broken.
http://cpp-experiment.sourceforge.net/promote-20050917/libs/
type_traits/test/promote_enum_test.cpp
Alexandar used to compile tests on VC6 and I'm pretty sure I can add
workarounds if
someone is still interested. Actually, it compiled the tests better
then VC7.
As for Borland 5.5, is_enum is broken and I don't see any reason to
support this compiler.
Alexandar requests a fast-track review.
Policy Pointer
Author - David Held & Jonathan Turkanis
Review Manager - Gennadiy Rozenthal
Download:
Boost Sandbox (http://boost-sandbox.sourceforge.net/) under
policy_ptr
Description:
Smart pointers are used to automate memory management by handling
the
deletion of dynamically allcoated objects (and other resources).
They assist in ensuring program correctness, exception safety, and
memory integrity. Policy Pointer is a policy-based smart
pointer framework designed to accomodate the large number of
smart pointer designs. Through the use of policy classes,
virtually any smart pointer type can be constructed within this
framework. This library is a Boostification of the original
Loki::SmartPtr type with significant modifications.
Fixed Strings
Author - Reece Dunn
Review Manager - to be determined
Download:
Boost Sandbox (http://boost-sandbox.sourceforge.net/) under
fixed_string
Description:
The fixed string library provides buffer overrun protection for
static
sized strings (char s[ n ]). It provides a C-style string
interface for compatibility with C code (for
example, porting a C program to C++).
There is also a std::string-style interface using a class based on
flex_string by Andre Alexandrescu with a few limitations due to the
non-resizable nature of the class.
Intrusive Containers
Author - Olaf Krzikalla
Review Manager - to be determined
Download:
http://people.freenet.de/turtle++/intrusive.zip
Description:
While intrusive containers were and are widely used in C, they
became
more and more forgotten in the C++-world due to the presence of the
standard containers, which don't support intrusive
techniques. Boost.Intrusive not only reintroduces this technique to
C++, but also encapsulates the implementation in STL-like
interfaces. Hence anyone familiar with standard containers can use
intrusive containers with ease.
Function Types (mini-re-review)
Author - Tobias Schwinger
Review Manager - John Maddock
Download:
http://boost-sandbox.sourceforge.net/vault/
Description:
This library provides a metaprogramming facility
to classify, decompose and synthesize function-,
function pointer-, function reference- and
member function pointer types. For the purpose
of this documentation, these types are
collectively referred to as function
types (this differs from the standard
definition and redefines the term from
a programmer's perspective to refer to
the most common types that involve functions).
The classes introduced by this library
shall conform to the concepts of the
Boost Metaprogramming library (MPL).
The Function Types library enables the user to:
* test an arbitrary type for
being a function type of specified kind,
* inspect properties of function types,
* view and modify sub types of an
encapsulated function type with
MPL Sequence operations, and
* synthesize function types.
This library supports variadic functions and
can be configured to support
non-default calling conventions.
Shmem
Author - Ion Gaztanaga
Review Manager - to be determined
Download:
Boost Sandbox Vault -> Memory
(http://boost-sandbox.sourceforge.net/vault/index.php?
direction=0&order=&directory=Memory)
http://ice.prohosting.com/newfunk/boost/libs/shmem/doc/html/index.html
Description:
Shmem offers tools to symplify shared memory usage in
applications. These include shared memory creation/destruction and
synchronization objects. It also implements dynamic allocation of
portions of a shared memory segment and an easy way to construct C++
objects in shared memory.
Apart from this, Shmem implements a wide range of STL-like
containers
and allocators that can be safely placed in shared memory, helpful
to
implement complex shared memory data-bases and other efficient
inter-process communications.
Fusion
Author - Joel de Guzman
Review Manager - to be determined
Download:
http://spirit.sourceforge.net/dl_more/fusion_v2/
Description:
Fusion is a library of heterogenous containers and views and
algorithms. A set of heterogenous containers (vector, list, set and
map) is provided out of the box along with view classes that present
various composable views over the data. The containers and views
follow a common sequence concept with an underlying iterator concept
that binds it all together, suitably making the algorithms fully
generic over all sequence types.
The architecture is somewhat modeled after MPL which in turn is
modeled after STL. It is code-named "fusion" because the library is
the "fusion" of compile time metaprogramming with runtime
programming.
////////////////////////////////////////////////////////////////////
4) Libraries under development
////////////////////////////////////////////////////////////////////
Please let us know of any libraries you are currently
developing that you intend to submit for review.
Output Formatters
Singleton
Interfaces
Output Formatters
Author - Reece Dunn
Download:
Boost Sandbox (http://boost-sandbox.sourceforge.net/) under outfmt
Description:
The I/O formatters library provides an easy and customizable way to
input/output arrays, STL arrays, STL collections, sub-arrays from/to
STL streams. It allows you to configure how each element in such an
array will be written to the stream or read from the stream,
while providing reasonable defaults.
Singleton
Author - Jason Hise
Download:
http://tinyurl.com/6qvrd (old version from previous review)
Description:
Singleton is feature rich library:
- ensuring single instance of a class
and global access point to this instance
- with policies specifying:
- when the instance gets created
(manually, immediatelly, when first used, ...)
- how is the instance created
(by new, malloc, in static memory, ...)
- when the instance gets destroyed
(never, by priority, after another singleton, ...)
Parametrized singleton called Multiton is provided
City::pointer p1("Chicago");
City::pointer p2("Brussels");
will create two different "singletons" of the same type.
Another feature is ability to register resources
(like shared pointer) who will get destroyed
in controlled order, when the application exits.
Not yet implemented features are:
- MT safety
- self-destroying singleton with timeout
- bjam compatible tests
The library is known to work with several newer compilers,
VC7.1 among them. Help with other compilers is welcomed.
Interfaces
Author - Jonathan Turkanis
Download:
http://www.kangaroologic.com/interfaces
Description:
Interfaces provides a macro-based Interface Definition Language
(IDL) which can be used to define C++ class types called
interfaces. An interface is a lightweight value type associated with
a set of named function signatures. An interface instance can be
bound at runtime to any object which implements the interface, i.e.,
to any object of a type with accessible non-static member functions
having the same name and signature as the set of functions
associated
with the interface. The functions of the bound object can then be
invoked through the interface instance using the 'dot'
operator. Binding is completely non-intrusive: the object's type
need
not declare any virtual functions or derive from any particluar base
class.
Current applications of Boost.Interfaces include:
* Non-intrusive dynamic polymorphism: interfaces can often be
used in place of abstract base classes, and are sometimes much
faster
(see Performance).
* Dynamic inheritance: allows function calls to be forwarded
automatically to an object specified at runtime (see Delegation).
* Smart Interface Pointers: smart pointers which can manage the
lifetime of any object whose type implements a given interface.
* Smart References: like smart interface pointers, but the managed
object is accessed using the "dot" operator."
Tom Brinkman
Ronald Garcia
Boost Review Wizards
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk