United States    
COMPAQ STORE | PRODUCTS |
SERVICES | SUPPORT | CONTACT US | SEARCH
C++
Compaq C++ Version 6.3

Compaq C++ Version 6.3

Release Notes for OpenVMS Alpha


July 17, 2001

This document contains information about new and changed features in this version of Compaq C++ for OpenVMS Alpha.

Compaq Computer Corporation
Houston, Texas


© 2001 Compaq Computer Corporation.

COMPAQ, the Compaq logo, and Alpha, DEC, Ladebug, OpenVMS, and VMS are registered in the U.S. Patent and Trademark Office. Tru64 is a trademark of Compaq Information Technologies Group, L.P. in the United States and other countries. UNIX is a trademark of The Open Group in the United States and other countries. All other product names mentioned herein may be trademarks of their respective companies.

Portions of the ANSI C++ Standard Library have been implemented using source licensed from and copyrighted by Rogue Wave Software, Inc. All rights reserved.

Compaq shall not be liable for technical or editorial errors or omissions contained herein. The information in this document is provided as is without warranty of any kind and is subject to change without notice. The warranties for Compaq products are set forth in the express limited warranty statements accompanying such products. Nothing herein should be construed as constituting an additional warranty.

Confidential computer software. Valid license from Compaq required for possession, use or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendor's standard commercial license.

Contents

1 Introduction

This document contains the release notes for Compaq C++ Version 6.3 for OpenVMS Alpha. The Compaq C++ product requires OpenVMS Alpha Version 6.2 or higher.

The Compaq C++ media contains the following:

HTML files are provided for the release notes and some of the product manuals for use with a web browser. To view this documentation, point your browser to


file:/sys$common/syshlp/cxx$help/index.htm 

2 Important Compatibility Information

Compaq strives to maintain a high degree of compatibility between successive versions of the compiler and its run-time environment. Because, however, each new version includes enhancements and changes, you should be aware of the following whenever you upgrade:

The next sections discuss these differences.

2.1 Run-Time Library Differences

Applications must use a version of the C++ Run-Time library that provides all the functions they require. If an application is linked shared, and the correct library version is not installed, "undefined symbol" error messages appear at run time. Changes in the Run-Time Library occurred in Versions 6.0 and 6.2.

For information about redistributing C++ Run-Time Library components, see Deploying Your Application in Using Compaq C++ for OpenVMS Alpha .

2.2 Compiler Differences

Starting with Version 6.0, the Compaq C++ compiler differs significantly from previous versions. There are several major differences that you should be aware of before using a Version 6.n compiler for the first time. These differences are summarized here. For more detailed information, see Porting to Compaq C++ in Using Compaq C++ for OpenVMS Alpha .

2.3 Differences Between Compaq C++ and the C++ International Standard

The following items, specified in the C++ International Standard, are not supported in Version 6.3 but will be supported in a future version. Details about each item are provided in the indicated sections of the C++ International Standard document and The C++ Programming Language, 3rd Edition by Bjarne Stroustrup.

3 New Debugger

A new OpenVMS Debugger (kit ADX072, dated 4-Mar-1999) is provided with the Version 6.3 kit and must be installed to debug programs compiled with Compaq C++ Version 6.3. This debugger solves several problems with the previous debugger.

Note

The version of the OpenVMS Alpha operating system running on your computer determines how the ADX072 kit links debugger images when you run VMSINSTAL. When linked with Version 6.n, the ADX072 debugger does not work correctly on Version 7.n systems. For example, if you install ADX072 on a Version 6.2 system, and if you later upgrade that system to Version 7.2, the ADX072 debugger does not work correctly until you reinstall ADX072.

OpenVMS Alpha releases after Version 6.2 include a debugger that supports the new C++ capabilities. If you are running OpenVMS Alpha Version 6.2 or later, consult the OpenVMS New Features Manual to determine whether you must install the debugger shipped with Compaq C++.

To install the special C++ debugger, invoke VMSINSTAL:


@SYS$UPDATE:VMSINSTAL ADX072 device-name option-list 

See the Compaq C++ Installation Guide for OpenVMS Alpha for additional information.

The C++ debugger GUI image is not installed automatically on OpenVMS systems that are not running DECwindows Motif or that run a version earlier than 1.2-4.

If you decide to install Motif or upgrade to Version 1.2-4 or later, and if you then want to use the debugger GUI, you must perform these tasks:

  1. Reinstall the ADX072 kit to create the debugger's GUI image
  2. Execute a command procedure to install the debugger images and define the default system debugger

Follow these steps:

If you want the special C++ debugger to be the default debugger for the system:

  1. Invoke the command procedure as follows:


    @SYS$STARTUP:DEBUG$STARTUP_V72X.COM V72X 
    

  2. Add this line to the system startup procedure:


    $ @SYS$STARTUP:DEBUG$STARTUP_V72X.COM V72X 
    

  3. On OpenVMS systems prior to Version 6.2A, copy the resource file:


    $ COPY DECW$SYSTEM_DEFAULTS:CXXVMSDEBUG.DAT - 
           DECW$SYSTEM_DEFAULTS:VMSDEBUG.DAT 
    

Note that C++ Version 6.n does not run on any OpenVMS versions prior to Version 6.2.

If you do not want the special C++ debugger to be the default debugger for the system:

  1. Invoke the command procedure as follows:


    @SYS$STARTUP:DEBUG$STARTUP_V72X.COM VMS 
    

  2. Add this line to the system startup procedure:


    $ @SYS$STARTUP:DEBUG$STARTUP_V72X.COM VMS 
    

4 Release Notes for the C++ Compiler

The following sections describe enhancements, changes, and restrictions for the C++ compiler environment.

4.1 Enhancements, Changes, and Problems Corrected in Version 6.3

Enhancements, changes, and problems corrected are as follows:

4.2 Restrictions and Known Problems in Version 6.3

If you compile and link with /MODEL=ANSI and then try to use the VMS debugger to access members of a virtual base class, you might see this error:


%DEBUG-E-INTERR, debugger error in DBG$GET_BASE_CLASS_OFFSET: can't find __bptr 
or session corruption 

The error is displayed because the debugger has not yet been updated to understand the new internals of the ANSI object model.

4.3 Enhancements, Changes, and Problems Corrected inVersion 6.2A

Enhancements, changes, and problems corrected are as follows:

4.4 Enhancements and Changes in Version 6.2

This release solves several problems in earlier versions of the compiler and includes an updated OpenVMS debugger (dated 4-Mar-1999) that solves problems with the previous debugger.

Enhancements and changes are as follows:

4.5 Restrictions in Version 6.2

This release is not totally compatible with previous versions; source changes might be required. The following general restrictions apply for the current release:

4.6 Enhancements and Changes in Version 6.0

This section briefly summarizes changes and enhancements made in Version 6.0, including problems fixed.

5 Release Notes for the C++ Standard Library

This section describes the enhancements, problems corrected, and restrictions for the C++ Standard Library. For information about the Compaq C++ Class Library, See Appendix A in in Using Compaq C++ for OpenVMS Alpha .

The current version of Compaq C++ implements the new Standard Library string class, known as the String Library. Do not confuse this class with the String Package, which is part of the DEC C++ Class Library implemented in earlier versions of Compaq C++.

Note that portions of the ANSI C++ Standard Library have been implemented in Compaq C++ using source licensed from and copyrighted by Rogue Wave Software, Inc. Information pertaining to the C++ Standard Library has been edited and incorporated into Compaq C++ documentation with permission of Rogue Wave Software, Inc. All rights reserved.

Portions copyright 1994-2001 Rogue Wave Software, Inc.

Thread Safety

The Standard Library provided with this release is thread safe but not thread reentrant. Thread safe means that all library internal and global data is protected from simultaneous access by multiple threads. In this way, internal buffers as well as global data like cin and cout are protected during each individual library operation. Users, however, are responsible for protecting their own objects.

According to the C++ standard, results of recursive initialization are undefined. To guarantee thread safety, the compiler inserts code to implement a spinlock if another thread is initializing local static data. If recursive initialization occurs, the code deadlocks even if threads are not used.

5.1 Enhancements and Changes, and Problems Corrected in Version 6.3

Enhancements, changes, and problems corrected are as follows:

5.2 Enhancements and Changes, and Problems Corrected in Version 6.2A

Enhancements, changes, and problems corrected are as follows:

5.3 Enhancements and Changes in Version 6.2

The following enhancements and changes are included in Version 6.2:

5.4 Problems Corrected in Version 6.2

The following problems are corrected in Version 6.2:

5.5 Restrictions in Version 6.2

This section describes problems you might encounter when using the current release of the C++ Standard Library with the Compaq C++ compiler. Where appropriate, workarounds are suggested.

5.6 Enhancements and Changes in Version 6.0

The C++ Standard Library provided with this release defines a complete specification (with some differences as described in Section 2.3) of the C++ International Standard. The Standard Library in this release includes for the first time the ANSI locale and iostream libraries.

Tutorial programs illustrating functionality found in the standard C++ library including the locale , iostream , and STL classes shipped with this release can be found in:


     SYS$SYSROOT:[SYSHLP.EXAMPLES.CXX]*.CXX 

You can compile and run these programs and use them as models for your own coding. The expected output for each program can be found in:


     SYS$SYSROOT:[SYSHLP.EXAMPLES.CXX]*.RES 

Version 6.0 introduces the following major enhancements and changes. For detailed information about the Compaq C++ Standard Library, refer to Using Compaq C++ for OpenVMS Alpha.

Additional changes include the following:

Contents
  

1.800.AT.COMPAQ

privacy and legal statement