All,

I am sponsoring this case for Stefan Teleman from the SFW
group.  The case directory contains this proposal, the ANSI
C++ Standard, 2003 Revision and delivered files appendices.
I have set the timeout for Monday, September 1st, 2008.

This project proposes to deliver the Apache Standard C++
library (libstdcxx.so.4) in a Micro/Patch release of 
Solaris.  The inclusion of the Apache Standard C++ Library 
in Solaris will enable the adoption, of important developments 
in the evolution of the C++ Language Standard.  Most notably,
it will enable the building and inclusion of the Boost Framework.
Please note: the Apache/RogueWave Standard C++ Library is not 
binary compatible with the Sun Standard C++ Library 
[ libCstd.so.1 ], or with the STLport Standard C++ Library.
See the proposal for further details.

Thanks,

John

-------------- next part --------------

Including The Apache Standard C++ Library with Solaris

Stefan Teleman <stefan.teleman at Sun.COM>
24 August 2008

1.      Summary and motivation

     C++ [1] is a generic purpose programming language designed by
     Bjarne Stroustroup at AT&T Bell Labs in the 1980's. C++ was
     designed as a "Better C". [0]

     The C++ Programming Language became an ANSI/ISO Standard in
     1998. [1]

     In 2005, Rogue Wave Software [3] contributed its commercial
     implementation of the Standard C++ Library to the Apache stdcxx
     Project, under the Apache License, Version 2.0. [4] This
     contribution from Rogue Wave makes available to the Open Source
     Community an implementation of the Standard C++ Library
     with more than 10 years of real-life, production  experience
     and acceptance.

     The Apache/RogueWave Standard C++ Library is known to run on
     at least the following platforms: AIX, HP-UX, Linux, Solaris,
     FreeBSD, Windows.

     The goal of the Apache/RogueWave Standard C++ Library is to
     provide a free and open source implementation of the ISO/IEC
     14882:2003 [ C++ Programming Language + Technical Corrigendum 1]
     Standard. [1] According to the Project's Web Site:

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

     A detailed README containing operating system and compiler
     and operating system specific Platform Notes is available at:

     http://stdcxx.apache.org/#platforms

     The inclusion of the Apache Standard C++ Library in Solaris will
     enable the adoption, of important developments in the evolution
     of the C++ Language Standard. Most notably, it will enable the
     building and inclusion of the Boost Framework. [6]

     Ten libraries from the Boost Framework are already included in
     the C++ Standards Committee's Technical Report [ TR1 ], as a
     step towards inclusion in the next version of the C++ Language
     Standard. [11] Several other Boost libraries are under active
     consideration for inclusion in Technical Report 2 [ TR2 ]. [12]

     This Fasttrack proposes the integration of the latest Stable
     Version of the Apache Standard C++ Library, Version 4.2.1. [5]

     This Case seeks Micro/Patch release binding.

2.      Technical issues

     2.1.        Key Objects

     The complete list of all the Objects and Interfaces provided by
     ISO/IEC 14882:2003 is extremely large [ the printed version of
     the C++ Language Standard has more than 800 pages ]. [6]  For
     the purposes of this ARC Case, a full and complete PDF document
     of the ISO/IEC 14882:2003 Standard, detailing all the Interfaces,
     will be provided as an Addendum in the ARC Case Materials.

     /usr/include/stdcxx
     /usr/include/stdcxx/ansi
     /usr/include/stdcxx/loc
     /usr/include/stdcxx/sun
     /usr/include/stdcxx/rw
     /usr/include/stdcxx/doc
     
     /usr/lib/libstdcxx.so.4.2.1
     /usr/lib/libstdcxx.so.4 -> /usr/lib/libstdcxx.so.4.2.1
     /usr/lib/libstdcxx.so -> /usr/lib/libstdcxx.so.4.2.1
     /usr/lib/pkgconfig/stdcxx.pc

     /usr/lib/${MACH64}/libstdcxx.so.4.2.1
     /usr/lib/${MACH64}/libstdcxx.so.4 -> /usr/lib/${MACH64}/libstdcxx.so.4.2.1
     /usr/lib/${MACH64}/libstdcxx.so -> /usr/lib/${MACH64}/libstdcxx.so.4.2.1
     /usr/lib/${MACH64}/pkgconfig/stdcxx.pc

     /usr/share/doc/html/stdcxx/
     /usr/share/doc/html/stdcxx/index.html
     /usr/share/doc/html/stdcxx/banner.gif
     /usr/share/doc/html/stdcxx/rw.css
     /usr/share/doc/html/stdcxx/rwbanner.css
     /usr/share/doc/html/stdcxx/stdlibref/
     /usr/share/doc/html/stdcxx/stdlibref/*.html
     /usr/share/doc/html/stdcxx/stdlibug/
     /usr/share/doc/html/stdcxx/stdlibug/*.html

     For the purpose of maintaing brevity of this document, the complete
     list of the localization and internationalization support objects
     delivered by the Apache Standard C++ Library is available in the ARC
     Case Materials directory, Appendix 2.

     The Apache Standard C++ Library does not deliver any executables.

     2.2.        C++ ABI Considerations

     The Apache/RogueWave Standard C++ Library is not binary compatible
     with the Sun Standard C++ Library [ libCstd.so.1 ], or with the
     STLport Standard C++ Library. Applications linked against the Sun
     Standard C++ Library will malfunction at run-time. Combining shared
     libraries, or executables  linked against libCstd.so.1 and
     libstdcxx.so.1, or linked against other shared libraries which
     import both libCstd.so.1 and libstdcxx.so, will also result in
     run-time software malfunctions.

     Simply put: the Sun libCstd.so.1 and The Apache Standard C++ Library
     are mutually exclusive.

     The Sun Studio 12 [ and earlier releases ] C++ Compiler provides
     a documented way of avoiding the automatic inclusion of the Sun
     Standard C++ Library header files: -library=no%Cstd passed to the
     compiler.

     2.3.        C++ Language Considerations

     The Apache/RogueWave Standard C++ Library is written in
     Standard C++. The library compiles correctly with the
     Sun Studio 12 compilers, in both 32- and 64- bit, on Intel
     and SPARC ISA's.  The Apache Standard C++ Library Project
     supports the Sun Studio compilers. [2]

     2.4.        Internationalization

     The Apache Standard C++ Library provides full support for
     internationalization and localization through Native Language
     Support and multibyte [ wchar_t ] character support. The
     canonical release of stdcxx delivers 196 character maps and
     NLS support for 166 languages. The full Internationalization
     support provided by The Apache Standard C++ Library will be
     included with this Integration.

     2.5.        Documentation

     The Apache Standard C++ Library provides a full documentation set
     in HTML format. This documentation set will be included with the
     Standard C++ Library Integration.

3.      Interfaces

     3.1.        Interface Stability

     The Apache Standard C++ Library maintains ABI compatibility within
     Major Releases. No ABI incompatible changes are to be expected
     within the boundaries of a Major Standard C++ Library Release.

     Considering that this Fasttrack proposes the integration of an
     existing ANSI/ISO/IEC Standard, an overall "Committed" Interface
     Stability Classification is appropriate, and desirable for this
     Integration.

     3.2.        Imported Interfaces

     The Standard C++ Library imports interfaces from the Standard C
     Library, the Standard Math Library, and the Sun C++ Runtime
     Library [ libCrun.so.1 ].

     3.3.        Exported Interfaces

     The Standard C++ Library exports the interfaces mandated by the
     C++ Language Standard, including  Technical Corrigendum 1
     [ ISO/IEC 14882:2003 ] [1] [7].

     A detailed listing of the Standard C++ Library's exported
     interfaces will be provided in the Additional Case Materials
     for this Fasttrack.

     The canonical distribution of The Apache Standard C++ Library
     delivers the following Mandatory C++ header files:

         /usr/include/stdcxx/ansi/cassert
         /usr/include/stdcxx/ansi/cctype
         /usr/include/stdcxx/ansi/cerrno
         /usr/include/stdcxx/ansi/cfloat
         /usr/include/stdcxx/ansi/ciso646
         /usr/include/stdcxx/ansi/climits
         /usr/include/stdcxx/ansi/clocale
         /usr/include/stdcxx/ansi/cmath
         /usr/include/stdcxx/ansi/csetjmp
         /usr/include/stdcxx/ansi/csignal
         /usr/include/stdcxx/ansi/cstdarg
         /usr/include/stdcxx/ansi/cstddef
         /usr/include/stdcxx/ansi/cstdio
         /usr/include/stdcxx/ansi/cstdlib
         /usr/include/stdcxx/ansi/cstring
         /usr/include/stdcxx/ansi/ctime
         /usr/include/stdcxx/ansi/cwchar
         /usr/include/stdcxx/ansi/cwctype

         /usr/include/stdcxx/tr1/array
         /usr/include/stdcxx/tr1/cstdint

     In addition, the Apache Standard C++ Library relies on the
     availability of three compiler-specific C++ header files:

         /usr/include/stdcxx/exception
         /usr/include/stdcxx/new
         /usr/include/stdcxx/typeinfo

     The canonical distribution of the Apache Standard C++ Library
     delivers a complete set of the Mandatory Standard C++ Library
     header files, along with a complementary set of the Standard C
     Library header files.  The Standard C Library header files
     delievered by the Library are not 100% compatible with their
     Solaris equivalents. Therefore, these files will not be delivered
     with this Integration. 

     For the purposes of this Integration, and for the purpose of
     maintaining binary compatibility with the Solaris C runtime,
     and with the Sun Studio Compilers, The Apache Standard C++
     Library will be built and integrated with Sun specific Mandatory
     Standard C++ Library forwarding header files. [9]

     A complete list of the header files delivered by the Standard C++
     Library is available in the ARC Case Materials directory, in
     Appendix 1.

[4].    Programmatic Facilities

    Compiling C++ programs with the Apache Standard C++ Library,
    and without introducing conflicts with the default Sun Standard
    C++ Library, can be easily achieved by passing specific include
    directories, and options, to the Sun Studio compiler:

    4.1.        Include files:

    -I/usr/include/stdcxx/ansi -I/usr/include/stdcxx/tr1 -I/usr/include/stdcxx

    4.2.        Libraries:

    -lstdcxx

    4.3.        Binding SONAME:

    The Apache Standard C++ Library will have a binding SONAME of
    libstdcxx.so.4.

[4].    References

     [0]        http://www.research.att.com/~bs/C++.html
     [1]        http://www.open-std.org/jtc1/sc22/wg21/
     [2]        http://stdcxx.apache.org/
     [3]        http://www.roguewave.com/
     [4]        http://www.apache.org/licenses/LICENSE-2.0
     [5]        http://incubator.apache.org/stdcxx/download.html
     [6]        http://www.boost.org/
     [7]        
http://www.amazon.com/C%2B%2B-Standard-Incorporating-Technical-Corrigendum/dp/0470846747/ref=pd_bbs_1?ie=UTF8&s=books&qid=1197413379&sr=1-1
     [8]        PSARC/1999/192
                http://www.opensolaris.org/os/community/arc/caselog/1999/
     [9]        Sun C++ ABI 5.0:
                    LSARC/1994/323
                    LSARC/1997/150
                    LSARC/2000/211 et. seq.
     [10]       PSARC/2002/348
                http://www.opensolaris.org/os/community/arc/caselog/2002/
     [11]       
http://open-std.org/jtc1/sc22/wg21/docs/library_technical_report.html
                http://en.wikipedia.org/wiki/Technical_Report_1
     [12]       
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1810.html 
                
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2122.htm

Reply via email to