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:

Full conformance to the C++ standard Complete implementation of the localization library independent of the underlying operating system, including a large set of locale definition files, character set description files, and utility programs to process these files and generate locale databases User control over strict or permissive conformance checking Thread-safe implementation of strings, iostreams, and locales Reference counted basic_string implementation using atomic locking with the ability to switch to a non-reference counted implementation Excellent runtime performance Optimized for fast compiles and extremely small executable file sizes Portable to and fully tested on a large set of operating systems, including AIX, HP-UX, Linux, Solaris, Windows, etc. Portable to most leading commercial as well as open source compilers Debugging facilities such as safe iterators, precondition and postcondition checking, and the ability to generate stack traces Fully documented configuration and build infrastructure Thorough, well-maintained documentation Ten years of deployment in the world's most critical enterprise systems

Objectives

The long-term objectives of the project include:

Standards Conformance. Continue to closely track the C++ Standard, as well as any other relevant standards. Portablity. Continue to provide support for a broad set of platforms (C++ compilers, operating systems, and hardware architectures). Quality of Implementation. Maintain the current high quality of implementation, which has come to be expected of all Apache projects. This ranges from high runtime efficiency to high space efficiency, to high portability of data (in areas such as localization and internationalization which are typically not specified by the C++ or C standards), to facilitating the portability of program source code.

Project News

5/1/2008 STDCXX 4.2.1 released. 12/14/2007 STDCXX graduates from the Incubator and becomes a Top Level Project. 11/29/2007 STDCXX community adds a new committer, Travis Vitek. 10/29/2007 With the approval of the Incubator PMC, STDCXX 4.2.0 was released. 10/16/2007 Proposal to graduate STDCXX to a Top Level Project passes the Incubator PMC vote. 9/5/2007 STDCXX community adds two new committers, Eric (Brad) Lemings and Mark Brown. 10/11/2006 STDCXX community adds a new committer, Andrew Black. 8/26/2007 Started tracking project metrics at www.ohloh.net under Apache C++ Standard Library. 6/1/2007 Started tracking site visitation at Google Analytics under stdcxx. Send an email from your Google Mail account to dev to request access to the account. 3/26/2007 Tim Triemstra joins the PPMC. 2/13/2007 Andrew Black and Farid Zaripov join the PPMC. 10/11/2006 STDCXX community adds a new committer, Andrew Black. 8/10/2006 STDCXX community adds a new committer, Farid Zaripov. 1/30/2006 With the approval of the Incubator PMC, STDCXX 4.1.3 was released. 1/13/2006 STDCXX community adds a new committer, Anton Pevtsov. 11/25/2005 Windows configuration and build infarstructure committed to Subversion (stdcxx-5). 9/16/2005 The first snapshot of stdcxx 4.1.2 has been published. 9/5/2005 The test suite driver committed to Subversion (stdcxx-3). 9/1/2005 A proposal to publish the first stdcxx snapshot on the stdcxx Web site has passed the community vote. 8/28/2005 The process of downloading stdcxx files documented on the Download page. (See stdcxx-17). 8/01/2005 The process of reporting bugs in the stdcxx bug tracking database documented and published on the Bugs page. (See stdcxx-9.) 7/19/2005 stdcxx project page committed to Subversion. The project status page committed to Subversion. 7/18/2005 stdcxx sources and documentation committed Subversion. 5/19/2005 stdcxx project accepted for incubation. 5/13/2005 stdcxx project proposal submitted to the Incubator mailing list.

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
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
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
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
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:

user id name/contact comment
mbrown Mark Brown
hbuelow Heidi Buelow
jerenkrantz Justin Erenkrantz
ajindal Amit Jindal
lnicoara Liviu Nicoara
apevtsov Anton Pevtsov
ttriemstra Tim Triemstra

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:

Unlike communicating in private, mailing lists make it possible for all list subscribers to benefit from the discussion, and provides an opportunity for those who wouldn't be invited to the private discussion to offer their own feedback on the subject. Unlike Instant Messaging, mailing list make it possible for interested parties to participate asynchronously, regardless of which time zone they are located in. Unlike private communications, mailing list discussions are archived for future reference, with the archives being easily searchable by anyone interested. Mailing list archives are important not just so that new contributors can learn from past decisions but they are an indispensable tool also for long-time committers when we forget why certain things were done a certain way. It is the preferred mode of communicating for all Apache projects. See the Communication section of How the ASF works.

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.

 


You are viewing a mobilized version of this site...
View original page here

Mobilized by Mowser Mowser