PSARC 2008/549 Re: Apache Standard C++ Library ARC Case
John Fischer
John.Fischer at Sun.COM
Thu Oct 2 09:57:15 PDT 2008
All,
I have updated the case directory with the new proposal
(named proposal_v2.txt).
Arti,
Can we schedule a slot for next week for a discussion and
vote?
Thanks,
John
On Wed, 2008-10-01 at 23:17, Garrett D'Amore wrote:
> Stefan Teleman wrote:
> > Updated proposal document attached.
>
> Thank you. The document appears fairly comprehensive to me, and if you
> can get an explicit agreement from the compiler group to this (they
> "have to", because the proposal includes obligations that they must
> perform), then I'm happy to accept and vote to approve.
>
> In retrospect, I think this is still out-of-bounds for a fast track, so
> "re-railing" the proposal might not be the best thing to do. (It also
> seems like there may be opinion matters to publish, as well.)
>
> *But*, if you can get the agreement from the compiler, then I see no
> reason why the case couldn't just come for a vote and skip the
> inception/commitment review phase.
>
> At this point, I think you should find out when you think you can get
> commitment from the compiler group, and then ask Aarti to schedule you a
> slot on the ARC agenda.
>
> I'm CC'ing PSARC again, so that the members can see that convergence is
> imminent (from my perspective only the compiler group agreement is
> required), and to give them an opportunity to voice any concerns about
> the points of order, or on the content of the actual case. It also
> places this into the mail log for the case, which may be helpful to
> future readers.
>
> -- Garrett
>
> Stefan Teleman <stefan.teleman at Sun.COM>
> October 1, 2008
>
> PSARC/2008/549
> Addendum 1
>
> 1. Scope and Intent
>
> This document formalizes the integration and support mechanism
> for the Apache Standard C++ Library Version 4.2.1 in Solaris,
> based on the discussions already having taken place for this ARC
> Case. [0]
>
> The issues addressed in this document are:
>
> 1.1. Detailed outline of the Apache Standard C++ Library's
> Multibyte Character and Internationalization support.
>
> 1.2. Mechanics of integrating the Apache Standard C++ Library
> in current versions of Nevada, and in a Solaris 10 Update.
>
> 1.3. Mechanics of providing Sun Studio specific command-line
> switches for the purpose of transparently enabling inclusion, and
> linkage, of the Apache Standard C++ Library for Sun Studio generated
> binary objects.
>
> 1.4. Defining the responsibility boundaries for the ongoing
> inclusion of the current Apache Standard C++ Library, in Nevada,
> and in Solaris 10 Updates.
>
> 1.5. Recommendations for Solaris developers on the future
> directions of the existing libCstd.so.1, STLport4, and the Apache
> Standard C++ Library.
>
> 2. Internationalization and Multibyte Character Support
>
> 2.1. The Apache Standard C++ Library provides multibyte
> character support via UTF/UCS encoding, and the wchar_t type.
> Conversion between different encodings is achieved via Standard C
> Library calls to iconv(3C). Character conversion operations
> performed by the Apache Standard C++ Library are transparent
> to the application.
>
> 2.2. The Apache Standard C++ Library Internationalization
> and Message Catalog Support via Standard C Library calls to
> catgets(3C). Message Catalogs are managed [ opened and closed ]
> via Standard C Library calls to catopen(3C) and catclose(3C).
>
> The Apache Standard C++ Library does not require the application
> to make explicit calls to these Standard C Library functions.
> Internationalization and Multibyte Character Support is provided
> via the Standard C++ Language mechanisms for such facilities.
>
> The Apache Standard C++ Library does not make calls to either
> gettext(3C), dgettext(3C), dcgettext(3C), bindtextdomain(3C),
> or any of the associated Standard C Library functions.
> Programmatic handling of such facilities is purposely delegated
> to the application.
>
> The Apache Standard C++ Library provides no explicit facilities
> for the storage or run-time discovery of localized message
> catalogs. The responsibility for implementing such facilities
> is explicitly delegated to the application requiring localization
> support. Standard Message Catalog location discovery mechanisms
> [ i.e. NLSPATH environment variable ] apply.
>
> 3. Proposed course of action
>
> 3.1. The SFW Consolidation will integrate Major Version 4
> [ currently Version 4.2.1 ] of the Apache Standard C++ Library, in
> Nevada, and in a Solaris 10 Update [ the likely candidate is Solaris
> 10 Update 7 ]. This version of the Apache Standard C++ Library, and
> subsequent updates, if any, will be maintained by the DevPro/Compiler
> Group, in close cooperation with the SFW Consolidation.
>
> The objects delivered by this integration, and their corresponding
> installation paths have been described in PSARC/2008/549 and ancillary
> Case Materials.
>
> 3.2. The SFW Consolidation will provide pkg-config [ *.pc ]
> files for the Apache Standard C++ Library. These files will encode
> the correct Sun Studio 12 command-line switches for:
>
> - disabling the inclusion of the existing libCstd.so.1 header
> files
> - disabling the automatic linking of the existing libCstd.so.1
> shared library
> - enabling the automatic inclusion of the Apache Standard C++
> Library header files
> - enabling the automatic linking of the Apache Standard C++
> Library [ by implicitly passing -lstdcxx to the link editor ]
>
> Automatic discovery of the correct compiler flags for enabling
> the Standard C++ Library in the Sun Studio compilers will be
> achieved via simple command-line invocation of the pkg-config
> command:
>
> pkg-config --cxxflags stdcxx
> pkg-config --ldflags stdcxx
>
> 3.3. The SFW Consolidation will provide a default UNIX man
> page for the Apache Standard C++ Library [ libstdcxx.3C++ and
> a symbolic link to stdcxx.3C++ ]. This man page will detail the
> mechanics of disabling the default libCstd.so.1, and enabling the
> Apache Standard C++ Library, in Sun Studio 12 and above. The inherent
> incompatibility restrictions between different implementations
> of the Standard C++ Library, and the consequences of intentionally,
> or inadvertently, combining such different implementations into
> the same executable address space, will be clearly outlined in this
> man page.
>
> 3.4. The DevPro/Tools Group will provide integrated command-line
> support for the Apache Standard C++ Library starting with Version 12
> of the Sun Studio Compilers.
>
> These command-line switches will automatically:
>
> - disable the automatic inclusion of the existing libCstd.so.1
> header files
> - disable the automatic linkage to the existing libCstd.so.1
> shared library
> - enable the automatic inclusion of the Apache Standard C++ Library
> header files
> - enable the automatic linkage to the Apache Standard C++ Library,
> by passing -lstdcxx to the link editor
>
> 3.5. Prevention of accidental inclusion, or linkage, of
> incompatible header files, or shared library objects, will be
> enforced by the Compiler, by providing appropriate, disjunctive and
> mutually exclusive command-line switches. This document does not
> attempt to address the interfaces to be provided for such mutual
> exclusion facilities: these considerations are purposely delegated
> to a future ARC Case.
>
> 4. Future Directions, and Recommendations for Solaris Developers
>
> 4.1. With the Integration of the Apache Standard C++ Library,
> the facilities provided by the existing STLport4 library have
> become incomplete, and redundant. This Integration establishes the
> de facto Obsolescence of the STLport4 Standard C++ Library.
>
> It is very strongly recommended that applications which rely on the
> STLport4 library migrate to the Apache Standard C++ Library as soon
> as possible. In the vast majority of cases, the migration path involves
> only a recompilation of the application. The STLport4 Library may be
> removed in a future Update Version of Solaris, or in a future release
> of Nevada. Prior notification for the removal of the STLport4 Library
> will be provided. However, the integration of the Apache Standard C++
> Library makes the coexistence of the STLport4 Library highly impractical.
>
> Any new software projects must avoid relying on the STLport4 Library
> and must use the Apache Standard C++ Library.
>
> 4.2. With the Integration of the Apache Standard C++ Library,
> the Solaris C++ Compilation Environment has evolved to a very close
> tracking of the ISO/IEC:14882:2003 Standard. It is very strongly
> recommended that applications which link against the Solaris
> libCstd.so.1 migrate to the Apache Standard C++ Library as soon as
> possible. Although there are no current and imminent plans for the
> obsolescence, or removal, of the Solaris libCstd.so.1, the Apache
> Library's conformance with the C++ Language Standard provides
> significant portability and cross-platform maintainability advantages.
>
> It is to be expected that all C++ Software currently delivered by
> Solaris, OpenSolaris, or Nevada, will migrate to the Apache Standard
> C++ Library. The migration path for existing Solaris C++ Projects
> will follow established Sun processes.
>
> 4.3. Future versions of OpenSolaris will demonstrate a clear
> bias towards the Apache Standard C++ Library. It is highly likely that
> in the very near future, OpenSolaris will deliver C++ applications and
> shared libraries linked exclusively against the Apache Standard C++
> Library.
>
> 4.4. The Apache Standard C++ Library is not source, or binary
> compatible, with either the STLport4 Library, or with the Solaris
> libCstd.so.1 Library. Combining symbols from more than one implementation
> of the Standard C++ Library into the same executable address space will
> result in severe software malfunctions, including crashes and run-time
> failures. It is a software construction error to voluntarily, or
> inadvertently, combine symbols from more than one implementation of the
> Standard C++ Library, within the same executable address space.
>
> 4.5. The contents of this document do not establish ARC Precedent.
>
> 5. References
>
> 0. PSARC/2008/549 Including The Apache Standard C++ Library
> with Solaris
> 1. The Apache Standard C++ Library http://stdcxx.apache.org/
>
>
More information about the opensolaris-arc
mailing list