incubator-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brian McCallister <>
Subject Re: Proposal for STDCXX
Date Fri, 13 May 2005 22:44:46 GMT
Big +1 (non-binding)


On May 13, 2005, at 5:27 PM, Heidi Buelow wrote:

> Proposal for an Apache-run version of the C++ Standard Library
> Submission date: 12 May 2005, Tim Triemstra, Heidi Buelow (TimT @  
> RogueWave
> dot-com, Buelow @ RogueWave dot-com)
> (0) rationale
> The goal of the Apache C++ Standard Library project is to provide a  
> free
> implementation of the ISO/EIC 14882 international standard, often  
> called the
> "STL" or "stdlib", which is consistent and portable across all major
> platforms and compilers. For the sake of this proposal, the project  
> will be
> called "STDCXX" to blend in with other Apache names.
> Currently, C++ developers spend considerable effort porting code among
> platforms, as compiler vendors are focused on backward  
> compatibility rather
> than cross-platform portability. There are other free  
> implementations, but
> none have the quality, license flexibility, or platform support  
> necessary to
> serve as a universal foundation for the C++ language.
> Rogue Wave Software will jump start this project by contributing the
> commercial C++ Standard Library it has been shipping for over a  
> decade. This
> is a new, enhanced version of the OEM library provided by many  
> vendors,
> including ARM, Sun Microsystems, HP and others. Unique attributes  
> include:
> Complete compliance with the C++ standard
> Complete implementation of locale library (not OS dependant)
> User control over strict or loose standards compliance
> Largest test suite of any major implementation
> High performance
> Reference counted basic_string using atomic locking
> Thread-safety, including iostream and locale objects
> Fast compiles and extremely small executable file sizes
> Proven, portable, and fully tested on each platform
> Many platforms (Windows, Linux, Solaris, HP-UX, AIX, etc.)
> Platform-specific compilers (eg: MSVC, Sun Forte, HP aCC, GCC)
> Fully configurable and documented build control
> Ten years of deployment in the world's most critical systems
> Highly respected documentation, well maintained and up to date
> The day the project is launched, it will already provide the strongest
> foundation library for the C++ language available, both in terms of  
> platform
> and standards support.
> (0.1) criteria
> Meritocracy: The STDCXX project should adhere to the same open,  
> merit-based
> community standards as other Apache projects, while also closely  
> tracking
> the relevant C++ standards.
> Contributions and Core Developers: The initial code contribution  
> will be a
> fully-functional implementation of the ISO/EIC 14882 international  
> standard,
> including the Standard Template Library (STL), locales, and iostreams
> libraries. As each platform's build system is packaged, additional  
> ports
> will be contributed.
> As a side note, Rogue Wave Software intends to continue  
> distributing the
> library as part of its SourcePro/C++ product well into the future.  
> This
> means that significant effort will continue, especially in porting,  
> and that
> effort will directly benefit the open source community since even code
> developed to meet commercial requirements will be contributed back  
> into the
> community.
> Community: We estimate there are over 300,000 developers using the  
> original
> commercial code, and several have already expressed interest in  
> becoming
> contributors. This established, loose-knit group of users exposed  
> to the
> existing code base via OEM or as direct customers should ensure a  
> vibrant
> community once the open source project is started.
> It is likely that the Apache C++ Standard Library would be a desirable
> project to be used by other Apache projects as a foundation to ensure
> excellent performance and easy portability across platforms. It can  
> serve
> many of the same goals as the existing APR project, but directly  
> address the
> needs of C++ developers. Those other projects will be encouraged to  
> actively
> participate in the library's community as well.
> Apache Alignment: With the success of open/free software, C/C++ has  
> seen a
> bit of a revival as a popular language for its portability, power, and
> performance. In fact, Apache has a considerable number of key  
> projects based
> on these languages. These projects and the entire developer  
> community at
> large would benefit from a C++ standard implementation from a  
> trusted source
> such as Apache. Without such a respected organization behind the  
> project,
> developers will have to constantly choose a less-portable solution,  
> or a
> solution more risky due to a small user community.
> (0.2) known risks
> Orphaned Products: One of the first questions when a commercial entity
> offers code to the public is "will this code be abandoned?" To be  
> clear,
> Rogue Wave decided to initiate this process due to its own desire to
> stabilize the C++ market, making the creation of higher-level products
> easier and more portable. For a long time the contributed code has  
> served
> primarily as a foundation for other commercial products, not as  
> revenue
> producer on its own. Regardless of Apache's interested in the  
> project, Rogue
> Wave intends to open the C++ Standard Library to the public in the  
> interest
> of bolstering the C++ language and will continue to fully support and
> enhance the project.
> However, we fully expect a vibrant community to spring up around  
> the project
> as there are already many people involved in various C++ libraries,
> compilers, and even consumer products that will benefit from the a  
> true
> standard implementation that is also free and commonly available.
> Commercial Interest: The C++ Standard Library will continue to be  
> shipped in
> commercial products but the policies would be the same as apply for  
> any
> other company using the project. In short, that means we will  
> continue to
> contribute to evolve the project and add new platforms well into  
> the future.
> Inexperience with Open Source: Like many companies entering this  
> arena, we
> have limited experience working on open source projects. Our  
> primary goal is
> to foster an active community around the C++ Standard Library.  
> Advice will
> be welcomed, and significant resources will be dedicated to the  
> project to
> get it off the ground. However, we hope that our experience working  
> in open
> standards groups will aid in the transition to the open source  
> community.
> Initial Reliance on Salaried Workers: At the time of the initial  
> proposal,
> only one external developer has agreed to volunteer as a top-level
> contributor. However, in discussions with members of the Apache  
> community,
> as well as partners and customers, it is clear that there is already
> significant interest. Members of other Apache projects have  
> indicated a
> desire to participate and there is optimism that by the time the  
> project is
> set to begin more contributors from within Apache and the user  
> community
> will be enrolled.
> Licensing, Patents, Miscellaneous Legal: After a thorough review,  
> it was
> concluded that there are two copyright owners for the contributed  
> code,
> Rogue Wave Software and Hewlett-Packard, both of whom will maintain  
> those
> rights but relinquish the code to the world under the Apache  
> license. Rogue
> Wave Software will simply retain copyright and adhere to the ASF  
> license and
> will sign the software grant form for the initial code. HP did  
> significant
> work on the standard many years ago and has sections of its  
> original code
> contributed to the community at large. The license grant given by  
> HP should
> conform to the rules of the ASF license, and is included below:
> Copyright (c) 1994 Hewlett-Packard Company
> Permission to use, copy, modify, distribute and sell this software  
> and its
> documentation for any purpose is hereby granted without fee,  
> provided that
> the above copyright notice appear in all copies and that both that  
> copyright
> notice and this permission notice appear in supporting documentation.
> Hewlett-Packard Company makes no representations about the  
> suitability of
> this software for any purpose. It is provided "as is" without  
> express or
> implied warranty.
> (1) scope of the project
> The C++ Standard Library project would focus closely on tracking the
> international standard governing the library, including the Standard
> Template Library (STL) and all related libraries. The list of Apache
> contributors should continue to include members of the standards  
> committee,
> as it does in this proposal. The Apache members will work with the  
> standards
> bodies to guide adherence, define future standards and extensions, and
> represent the needs of the open source community.
> The specific goals of the project are:
> A complete standards-compliant implementation of the library
> Support as many platforms and compiler versions as practical
> Work with standards committees where appropriate
> Provide the best performance possible on each supported platform
> Respond to the needs of the C++ community at large
> (2) identify the initial source for project code
> A preview bundle of the contributed code may be found at the  
> following link:
> Rogue Wave Software's open source home page
> ( )
> (2.1) a special note about the initial code contribution
> The initial tarball made available on the web site will not be  
> immediately
> ready to include in a public CVS/SVN repository. The file set is quite
> large, and has significant complexity, especially to support dozens of
> platforms out of a single code base. The code and directory  
> structure will
> therefore need a thorough review to be sure they are efficiently  
> packaged
> for public, group development. We don't expect this to take long,  
> but wanted
> to set proper expectations.
> The code drop is fully functional, and contains notes on how to get  
> it to
> compile on a subset of platforms. Once the review is complete and the
> project is fully ramped up in Apache it should support at least  
> forty (40)
> platforms, using a variety of compilers.
> The Apache license and bundling best practices will of course need  
> to be
> applied once the project is accepted.
> (3) identify the ASF resources to be created
> Rogue Wave will work with the ASF to determine which resources are
> appropriate for the company to provide in addition to those  
> detailed as the
> responsibility of the ASF. Examples: newsgroups, knowledge bases,  
> examples,
> white papers.
> (3.1) mailing list(s)
> stdcxx-dev
> stdcxx-user
> stdcxx-commits
> (3.2) SVN repositories
> stdcxx
> (3.3) Bugzilla
> stdcxx
> (4.0) identify the initial set of committers
> This is a preliminary list that will be updated with volunteer  
> members.
> Tim Triemstra (TimT @ RogueWave dot-com)
> Martin Sebor (Sebor @ RogueWave dot-com) - standards committee member
> Lance Diduck (LDiduck @ bloomberg dot-net)
> Ravi Palepu (Palepu @ RogueWave dot-com)
> Amit Jindal (Jindal @ RogueWave dot-com)
> Heidi Buelow (Buelow @ RogueWave dot-com)
> John Hollis (Hollis @ RogueWave dot-com)
> John Hinke (Hinke @ RogueWave dot-com)
> (5) identify apache sponsoring individual
> Justin Erenkrantz (justin @ erenkrantz dot-com)
> (6) open issues for discussion
> The code and structure for this project is already quite complex to  
> support
> localization and many platforms. While this has been managable  
> within the
> confines of Rogue Wave's internal development processes, issues  
> such as
> directory structure and build automation will be early priorities  
> for the
> project.
> The initial contribution tarball does not include the test suite or  
> the
> product documentation. Those will come in conjunction with the  
> Apache build
> process as they currently depend on proprietary build infrastructure.
> --------------------
> Heidi Buelow
> Rogue Wave, a division of Quovadx
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message