Apache > stdcxx
Last Modified: $Date: 2012-02-14 20:41:50 +0000 (Tue, 14 Feb 2012) $
 

Apache C++ Standard Library (STDCXX)

What is the Apache C++ Standard Library?

The Apache C++ Standard Library project (code name stdcxx, pronounced "standard C++ library", not S-T-D-C-X-X) is a collection of algorithms, containers, iterators, and other fundamental components of every piece of software, implemented as C++ classes, templates, and functions essential for writing C++ programs.

The goal of the Apache C++ Standard Library is to provide a free implementation of the ISO/IEC 14882 international standard for C++ that enables source code portability and consistent behavior of programs across all major hardware implementations, operating systems, and compilers, open source and commercial alike. An additional goal is to achieve maximum implementation efficiency on each platform by taking advantage of platform-specific high-performance facilities and features which are often unique to the type of hardware, the operating system or the compiler.

As the starting point for future efforts, in summer 2005 Rogue Wave Software has contributed its commercial implementation of the C++ Standard Library to the Apache stdcxx project, a proven code base that has been shipping for over a decade and is among the most widely used cross-platform implementations of the library.

The key features of the stdcxx project at the time of submission include:

Objectives

The long-term objectives of the project include:

Project News

Platforms

A key stdcxx objective is to facilitate the portability of C++ programs to as many platforms (hardware architectures, operating systems, and compilers) as practical. It is envisaged that the set of platforms will evolve and grow as the project attracts contributors.

The project sources initially committed to the Subversion repository (revision 219596) are based on Rogue Wave C++ Standard Library version 4.1.0. The list of platforms to which this version of the project was ported (but which is expected to grow as the stdcxx project evolves) is:

compiler operating system processor/architecture
Comeau C++ 4.2.4 or later Solaris 7 or later UltraSPARC
Compaq C++ 6.3 or later Tru64 UNIX Alpha
EDG eccp 2.45.2 or later Linux, Solaris 7 or later x86, UltraSPARC
GNU gcc 2.95.2 or later AIX, Cygwin, HP-UX, Linux, SFU, Solaris
HP aC++ 3.33 or later HP-UX 11.00, HP-UX 11i HP-UX 11i v2 PA-RISC
HP aC++ 5.50 or later HP-UX 11i v1.5 , HP-UX 11i v1.6 HP-UX 11i v2 IPF
IBM VisualAge C++ 5.0 or later AIX 4.3.3 or later PowerPC
IBM XL C/C++ 7.0 or later AIX 5.2 or later, Linux PowerPC
Intel C++ 7.0 or later Linux, Windows NT or later x86, AMD64 , EM64T, IA64
SGI MIPSpro 7.3 or later SGI IRIX MIPS
Visual C++ 6.0 Windows NT or later x86
Visual C++ .NET 2002 (7.0) Windows 2003 or later IA64
Visual C++ 2005 (8.0) Windows 2003 or later IA64
Sun C++ 5.3 or later Solaris 2.6 or later UltraSPARC
Sun C++ 5.7 or later Solaris 10 or later x86, AMD64, EM64T

Project Status

Stdcxx status reports to the ASF Board of Directors are stored in the status/ subdirectory of the site.

Users

Stdcxx Users are Developers with read-only access, i.e., without Commit Access to the stdcxx Codebase who are using the project.

The mailing list appropriate for discussions of using the stdcxx project is user@stdcxx.apache.org. This is an archived, moderated mailing list open to all subscribers. You may subscribe by sending a blank email to user-subscribe@stdcxx.apache.org. To obtain additional information about this list send a blank email to user-info@stdcxx.apache.org.

Contributors

Stdcxx Contributors are Developers without commit (or write) access to the stdcxx codebase who directly or otherwise make improvements to the project codebase, including its Web pages. This includes but is not limited to individuals who respond to questions on the project's mailing lists, review and provide helpful feedback on patches or commits, submit, provide helpful comments on, or triage bug reports, or contribute useful patches of their own. Interested contributors may be voted to become Committers after a period of valuable activity.

Because Contributors have read but not write access to stdcxx code repository, they can check stdcxx out and make changes to their local copy of stdcxx files but they cannot check them back in. To get their changes committed, they must follow the process for Submitting Patches.

The stdcxx community welcomes new contributors. If you are interested in getting involved, the first thing to do after reading the project Web pages is to subscribe to the dev mailing list and skimming the archives. If you're looking for ideas for where your help might be needed, browse the bug database or simply ask on the maling list.

Committers

Stdcxx Committers are Developers with commit (or write) access to the stdcxx codebase. For safe changes on trunk all stdcxx committers follow the Commit-Then-Review policy (CTR for short). For potentially unsafe changes or any changes to branches all stdcxx committers follow the Review-Then-Commit policy (RTC for short). Whether a change is safe or not is a judgment call that should be made after careful testing of the change on at least two different platforms with two different compilers. The list of current committers in alphabetical order is below:

user id name/email affiliation since comment
ablack Andrew Black Rogue Wave Software, Inc. Oct 11, 2006
mbrown Mark Brown Sep 5, 2007
hbuelow Heidi Buelow May 19, 2005 Emeritus
ldiduck Lance Diduck May 19, 2005
jhollis John Hollis Rogue Wave Software, Inc. May 19, 2005 Emeritus
ajindal Amit Jindal Aquevix, Ltd. May 19, 2005
elemings Eric (Brad) Lemings Sep 5, 2007
lnicoara Liviu Nicoara May 19, 2005
rpalepu Ravi Palepu May 19, 2005 Emeritus
antonp Anton Pevtsov VDI Jan 3, 2006
sebor Martin Sebor Cisco Systems, Inc. May 19, 2005
ttriemstra Tim Triemstra Apple May 19, 2005
vitek Travis Vitek Rogue Wave Software, Inc. November 29, 2007
faridz Farid Zaripov EPAM Aug 10, 2006

Committers in italics do not yet have a signed Contributor License Agreement on file. This indicates a transient state after a committer has been voted in but their CLA hasn't been received or processed by the foundation.

An up-to-date list of all Apache committers (or committers-to-be) is being maintained by Jim Jagielski on this page.

The mailing list used by stdcxx committers for discussions of the maintenance, development, and porting of the stdcxx project is dev@stdcxx.apache.org. This is an archived, moderated mailing list open to all subscribers. You may subscribe by sending a blank email to dev-subscribe@stdcxx.apache.org.

PMC

The stdcxx Project Management Committee (PMC) is a group of volunteers responsible for the formal oversight of the stdcxx podling, its management, and for interfacing with the Apache Board of Directors. The members of the stdcxx PMC are:

The PMC mailing list is private@stdcxx.apache.org. This is a moderated, by-invitation-only mailing list closed to the public. Invited individuals can subscribe by sending a blank email to private-subscribe@stdcxx.apache.org.

An example of a topic that might be appropriate for this list is a discussion of the merits of a proposed committer.

Communication

Communication about the project and all decisions take place on the project's mailing lists. There are a number good reasons why communicating on mailing lists is preferable to other ways of communicating, including private email or instant messaging. Some of the important ones include:

If you choose to contact one of the project committers in private expect to be directed to the mailing lists.

Mailing Lists

The following table provides a summary of information about stdcxx mailing lists along with a number of interfaces to their archives. All lists are moderated. Only subscribers may post. Subscription to private is by invitation of the PMC only. With one exception, the activity of each list is monitored and can be viewed along with other interesting information on this page maintained by Ken Coar.

References

A number of excellent design and programming books describe the C++ Standard Library in an approachable way. In addition, besides the required Class Reference, this implementation of the library also includes an extensive User Guide complete with tutorials and example programs. That being said, the ultimate reference to the C++ Standard Library is, of course, the C++ Standard itself (and to a smaller extent, also the C Standard). An electronic copy of the most recent version of the C++ and C standards can be obtained from the ANSI eStandards store.