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