 






                                         COMPAQ

          Software
          Product
          Description

          ___________________________________________________________________

          PRODUCT NAME:  HP C for OpenVMS
                                                                 SPD 25.38.39

          DESCRIPTION

          This document addresses HP C Version 7.3 for OpenVMS Alpha, HP C Ver-
          sion 7.3 for OpenVMS for Integrity Servers (I64), and HP C Version 6.4
          for OpenVMS VAX.

          HP C (formerly Compaq C) is a standard conforming implementation of
          the C programming language with HP extensions. The HP C compiler runs
          under the OpenVMS VAX, Alpha, and I64 Operating Systems and generates
          optimized and position-independent code.

          HP C is a native-mode language product, and is integrated into the Com-
          mon Language Environments. All OpenVMS system services are available
          to programs written in HP C. HP C programs can invoke, as functions,
          modules written in other languages.

          HP C supports Record Management Services (RMS) for sequential file or-
          ganizations and associated access methods. HP C also supports stream
          file-access methods common among many C implementations.

          HP C provides extensive standard-conformance checking, as well as many
          optional code-quality and portability diagnostics, and supports the
          lint-like features of the HP Source Code Analyzer. The HP Source Code
          Analyzer allows the programmer to check for consistent function us-
          age throughout a program environment. HP C also generates complete de-
          bug and traceback records for use with OpenVMS Debug. Debug allows the
          C programmer to set breakpoints, examine and modify the contents of
          user variables, and selectively halt or continue program execution.

                                                                     May 2007

 



          HP C for OpenVMS


          HP C on OpenVMS (Alpha and I64, not VAX) provides IEEE floating-point
          support as defined by, and in conformance with, the IEEE 754 Standard.

          Features

          o  Limited support for installing more than one version of HP C on the
             same node, and allowing users to select which version to use on a
             per-process basis (not on OpenVMS I64, which uses PCSI-based kits).

          o  Separate modes of compilation to support each of six C dialects:

             -  A strict ANSI89 mode that compiles according to the original ANSI
                C standard (ANSI/ISO/IEC 9899:1990).

             -  For OpenVMS Alpha and OpenVMS I64, a strict C99 mode that com-
                piles nearly in accordance with the 1999 version of the C stan-
                dard (ANSI/ISO/IEC 9899:1999), except that the support is not
                complete and has not been fully verified against conformance suites.
                This mode may be useful as a preview of what will be considered
                conforming source code under the new standard, but should not
                be relied upon for production use until a future release of both
                HP C and the HP C Run-Time Library for OpenVMS containing com-
                plete C99 support. For OpenVMS VAX, this mode is not supported,
                and is treated as a synonym for relaxed ANSI mode.

             -  A relaxed ANSI mode that compiles according to the latest stan-
                dard supported by the compiler, but also accepts those HP ex-
                tensions that do not directly conflict with the semantics of stan-
                dard C.

             -  A VAX C mode that supports VAX C extensions

             -  A common mode that supports many common usage C constructs as
                implemented on UNIX systems including Tru64 UNIX (also called
                "K&R" C or "pcc" mode)

             -  A Microsoft compatibility mode that interprets source programs
                according to certain language rules followed by the C compiler
                provided with the Microsoft Visual C++ compiler product.


                                           2

 



          HP C for OpenVMS


          In addition, just the features specified by Addendum 1 to the ISO C
          standard adopted by ISO in November of 1994 (digraphs and the __STDC_VERSION__
          predefined macro) can be added to each of these dialects except for
          VAX C mode.

          o  Data types for numeric, nonnumeric, and systems programming:

             -  C99 Universal Character Names (UCNs) are accepted in identifiers,
                string literals, and character constants (and their wide vari-
                ations) (Not OpenVMS VAX).

             -  HP C supports 8, 16, and 32-bit signed and unsigned integers.
                HP C OpenVMS Alpha and OpenVMS I64 also supports 64-bit signed
                and unsigned integers.

             -  HP C supports an 8-bit _Bool data type for C99.

             -  HP C supports 32-bit float and 64-bit double floating-point data
                types. The VAX floating-point formats include D-float and G-float
                and are user selectable.

             -  HP C OpenVMS Alpha and I64 also supports IEEE floating-point for-
                mats in 32-bit single, 64-bit double, and 128-bit quad-precision
                double-extended representations. The C language type "long dou-
                ble" normally is represented in 128-bit quad precision IEEE for-
                mat on these platforms, although there is a compile-time option
                that allows the user to specify that it should use the same rep-
                resentation as type "double" (which is the format used on Open-
                VMS VAX).

             -  C99 constants for specific values of Infinity and NaN are sup-
                ported when using/float=ieee (Not OpenVMS VAX).

             -  HP C OpenVMS Alpha and OpenVMS I64 supports the C99 _Complex key-
                word for specifying three types that represent values in the com-
                plex plane, based on Cartesian coordinates of type float, dou-
                ble, or long double, respectively, except that D_float repre-
                sentation is not supported for _Complex types. Run-time library
                support for C99 mathematical functions operating on these types
                is available in OpenVMS Alpha V7.3-1 and subsequent versions.

                                           3

 



          HP C for OpenVMS


             -  HP C supports passing numeric constants by reference in func-
                tion calls.

             -  HP C supports the multibyte and wide-character types and fea-
                tures of XPG4, with the locale support available in OpenVMS V6.4
                and subsequent versions.

             -  HP C OpenVMS Alpha and OpenVMS I64, on OpenVMS Version 7.0 and
                later, supports user-controlled features to specify the use of
                64-bit pointers that allow applications to exploit the increased
                address space capabilities of the Alpha and I64 architectures
                and the OpenVMS Alpha Version 7.0 services. These features in-
                clude command-line qualifiers, #pragma directives, and run-time
                library specifications that allow the programmer to allocate and
                access data at run time that is to be beyond the range of ad-
                dressing afforded by 32-bit pointers. By default, programs com-
                piled by earlier versions of the compiler or on earlier versions
                of OpenVMS continue to behave as before, strictly within 32-bit
                address space. Explicit use of the new compiler features allow
                such programs to be extended to exploit the extended address space
                with minimal changes to the source code.

          o  Storage allocation using:

             -  Reserved words (globalref, globaldef, and globalvalue) for shar-
                ing data among program modules

             -  Reserved words (readonly, noshare, and psect name specification)
                for control of data attributes and data placement

             -  Reserved words (_align and _unaligned) for specifying the align-
                ment boundaries of data objects

             -  Pragmas to control extern models and structure member alignment
                and base structure alignment

          o  Option for running only the preprocessor phase of compilation

          o  Option for generating include-file dependency information to aid
             in construction of files for the HP
             Module Management System

          o  Pragmas to control compiler options

                                           4

 



          HP C for OpenVMS


          o  The C99_Pragma operator, which effectively allows pragma directives
             to be produced by macro expansion (not OpenVMS VAX).

          o  Compilation options allowing a choice between fast turnaround and
             optimization across compilation units

          o  Option to generate a file of prototype-style function declarations
             suitable for use in a header file from the function definitions (both
             prototype-style and old-style) contained in a source file.

          o  Enhanced diagnostic message controls with the command-line qual-
             ifier /WARNINGS, including the following features:

             -  specify whether a message is issued only once per compilation,
                or at each occurrence

             -  specify severity of any message with a default severity of in-
                formation or warning

             -  control optional messages using a single numeric "importance level"

             -  control optional messages using functional groups

          o  Compiler-generated listing file including optional:

             -  Annotations that provide information about certain optimizations
                that were performed or not performed (Alpha and I64 only)

             -  Source Code

             -  Include-file contents

             -  Machine code

             -  Macro expansion

             -  Compilation statistics

             -  Symbol table with attributes of source program identifiers

             -  Symbol cross reference, showing for each symbol the source lines
                where it is defined or used, annotated with type of use

                                           5

 



          HP C for OpenVMS


          o  Built-in functions allow access to a subset of VAX, Alpha, and I64
             machine instructions. HP C OpenVMS Alpha inline-assembly code is
             also supported giving access to all Alpha machine-code instructions
             and PAL calls.

          o  Integration into the OpenVMS Common Language Environments:

             -  Generation of complete debug and traceback records for Debug sup-
                port

             -  Conformance to the Calling Standard

             -  Access to the Common Run-Time Library for general purpose rou-
                tines and support of multi-language environments

             -  Access to the data management facilities of OpenVMS Record Man-
                agement Services (RMS) by direct calls to the Common Run-Time
                Library

             -  Support for providing error diagnostics to the HP Language-Sensitive
                Editor and cross-reference information for the HP Source Code
                Analyzer

             -  Support for Common Data Dictionary (CDD)

             -  HP C OpenVMS support for interaction with routines executing in
                translated mode. On OpenVMS Alpha, native Alpha images can link
                against and interoperate with images translated from OpenVMS VAX.
                On OpenVMS I64, native I64 images can link against and inter-
                operate with images translated from OpenVMS Alpha (including Al-
                pha images translated from OpenVMS VAX).

          o  Extensive global and local optimizations of generated code for in-
             creased performance under OpenVMS

          o  Extensive control over optimization behavior

          o  Interface to the curses screen-manipulation package

          o  Installation kit cooperates with HP C++.

          Compatibility with Other C Implementations

                                           6

 



          HP C for OpenVMS


          HP C is a conforming hosted implementation of ANSI X3.159-1989 Pro-
          gramming Language C (ISO/IEC 9899:1990[1994]). Its VAXC, common C, and
          Microsoft C compatibility modes provide many features to ease port-
          ing from other environments, though they do not provide 100% emula-
          tion of every feature of a particular version of the compilers used
          in those environments. In addition, the relaxed ANSI mode accepts all
          features from the currently-supported standard (C99 for OpenVMS Al-
          pha and OpenVMS I64, C89 for OpenVMS VAX) and also accepts a number
          of features present in those special dialects that do not conflict with
          the standard, as well as features from the GNU C compiler (gcc) that
          are sometimes used in Open Source applications and header files on the
          Linux platform (e.g. the __typeof__  operator).

          While many programs written in C for other compilers can be success-
          fully recompiled under HP C, some incompatibilities among implemen-
          tations exist.

          Run-Time Library for C Applications

          With the exception of OpenVMS VAX Operating Systems prior to V6.1, the
          complete HP C Run-Time Library that is needed for use with HP C is dis-
          tributed with the OpenVMS Operating Systems. The HP C Run-Time Library
          provides routines to perform input/output, character and string han-
          dling, mathematical computations, memory allocation, and emulation of
          selected UNIX[R] features. These routines are provided both in shared
          image and object module library form.

          Run-time Library Redistribution

          The HP C kit may include run-time library components in either share-
          able image or object library form. HP grants the user a nonexclusive
          royalty-free worldwide right to reproduce and distribute these Run-
          Time Libraries ("the RTLs") provided that the user:

          o  distributes the RTLs only in conjunction with and as a part of the
             user's software application product, which is designed to operate
             in the OpenVMS environment;

          o  does not use HP's name, logo, or trademarks to market the user's
             software application product;

                                           7

 



          HP C for OpenVMS


          o  includes HP's copyright notice for HP C on one of the following:


             -  the user's product disk label

             -  each copy of the application

             -  the title or copyright page of the documentation for the soft-
                ware application product

          o  agrees to indemnify, hold harmless, and defend
             HP from and against any claims or lawsuits, including attorney's
             fees, that arise or result from the use or distribution of the soft-
             ware application product. Except as expressly provided herein, HP
             grants no implied or express license under any of its patents, copy-
             rights, trade secrets, trademarks, or any license or other propri-
             etary interests and rights.

          For OpenVMS Alpha systems, the only RTL component that may be redis-
          tributed is DECC$CRTL.OLB. Refer to the HP C V7.1 for OpenVMS Alpha
          Release Notes for instructions on redistributing this RTL component.
          For OpenVMS VAX systems, the only RTL components that may be redis-
          tributed are DECC$CRTL.OLB and AACRT060.A. Refer to the HP C V6.4 for
          OpenVMS VAX Release Notes for instructions on redistributing these RTL
          components.

          HARDWARE REQUIREMENTS

          Processors Supported:

          Any Integrity system capable of running the OpenVMS Operating System
          Version 8.3 or higher, any Alpha system capable of running the Open-
          VMS Alpha Operating System Version 7.3-2 or higher, or any VAX capa-
          ble of running the OpenVMS Operating System Version 5.5-2 to 7.3.
          Refer to the OpenVMS Operating System's Software Product Description
          (SPD 82.35.xx or 25.01.xx) for details.





                                           8

 



          HP C for OpenVMS


          The following table shows disk space requirements for installation of
          HP C for OpenVMS. These numbers reflect choosing all of the default
          installation options. Separate entries are shown for also installing
          the optional document sets in postscript, text, and html formats.

          Disk Space Requirements (Block Cluster Size = 1):

                             HP C OpenVMS       HP C OpenVMS Alpha, I64
                             VAX
          For installa-      100,000 blks       150,000 blks (75MB)
          tion (without      (50MB)
          docs):
          For instal-        180,000 blks       250,000 blks (125MB)
          lation (with       (90MB)
          docs):
          For permanent      80,000 blks        100,000 blks (50MB)
          use (without       (40MB)
          docs):
          For permanent      120,000 blks       160,000 blks (80MB)
          use (with          (60MB)
          docs):

          These counts refer to the disk space required on the system disk. The
          sizes are approximate; actual sizes may vary depending on the user's
          system environment, configuration, and software options.

          Memory Requirements for DECwindows Support:

          The minimum supported memory for this application running in a stan-
          dalone DECwindows environment with both the client and server execut-
          ing on that same system is 8 Mbytes.

          OPTIONAL HARDWARE

          On VAX systems, only D_, F_, and G_Floating floating-point data types
          can be used in programs written in HP C, which does not support the
          H_Floating type. (HP C on Alpha and I64 systems supports IEEE float-
          ing point types in addition to these VAX types). Floating-point-intensive



                                           9

 



          HP C for OpenVMS


          applications should be run on configurations with the appropriate hard-
          ware support for the floating-point data types being used. For Open-
          VMS I64 in particular, note that only the IEEE format has hardware sup-
          port; the VAX format floating-point types on OpenVMS I64systems are
          implemented in software and incur significant software run-time em-
          ulation overhead. Floating-point code that is performance-critical should
          always use the IEEE format on OpenVMS I64. Consult the base operat-
          ing system Software Product Description (SPD) for the appropriate floating-
          point accelerator or other floating-point hardware appropriate for your
          configuration.
          SOFTWARE REQUIREMENTS

          o  OpenVMS I64 Operating System V8.3 or higher

          o  OpenVMS Alpha Operating System V7.3-2 or higher

          o  OpenVMS VAX Operating System, V5.5-2 to V7.3

          SOFTWARE LICENSING

          A software license is required in order to use HP C software. For VAX
          and Alpha platforms, HP C is offered with Concurrent Use, Personal Use
          and Traditional 'capacity' licenses. For I64, it is offered with Con-
          current Use licenses. Version update licenses are not available for
          the I64 platform. Rights to use future revisions of HP C are avail-
          able only through a Support Agreement or through a new license pur-
          chase. For more information about OpenVMS license terms and policies,
          contact your local HP sales office, or reference the Software Licens-
          ing site at: <http://licensing.hp.com/swl/view.slm?page=index>

          LICENSE MANAGEMENT FACILITY SUPPORT:

          These layered products support the OpenVMS License Management Facil-
          ity.

          License units for Alpha and VAX HP C are allocated on a Capacity Use,
          Personal and Concurrent Use basis. License units for I64 HP C are al-
          located on Concurrent Use basis.



                                           10

 



          HP C for OpenVMS


          Each Personal Use license allows one identified individual to use the
          layered product. Each Concurrent Use license allows any one individ-
          ual at a time to use the layered product.

          For more information on the License Management Facility, refer to the
          OpenVMS Operating System Software Product Description or the License
          Management Facility manual of the OpenVMS Operating System documen-
          tation set. For more information about HP's licensing terms and poli-
          cies, contact your local HP office.

          CLUSTER ENVIRONMENT

          This layered product is fully supported when installed on any valid
          and licensed OpenVMS Cluster* configuration without restrictions. The
          HARDWARE REQUIREMENTS section of this product's Software Product De-
          scription detail any special hardware required by this product.

          *  OpenVMS Cluster configurations are fully described in the OpenVMS
             Cluster Software Product Description (SPD 29.78.xx) and include CI,
             Ethernet, and Mixed Interconnect configurations.

          OPENVMS TAILORING CLASSES

          The following OpenVMS classes are required for full functionality of
          this layered product:

          o  OpenVMS Required Save Set

          o  Programming Support

          o  Utilities

          For more information on OpenVMS classes and tailoring, refer to the
          OpenVMS Operating System Software Product Description (SPD 82.35.xx)







                                           11

 



          HP C for OpenVMS


          OPTIONAL SOFTWARE

          o  HP DECset Release 12.7 for OpenVMS I64, Alpha, and VAX systems.

             -  Language-Sensitive Editor/Source Code Analyzer (LSE/SCA) for Open-
                VMS Systems

             -  DIGITAL Test Manager (DTM) for OpenVMS Systems

             -  Performance and Coverage Analyzer (PCA) for OpenVMS Systems

             -  Code Management System (CMS) for OpenVMS Systems

             -  Module Management System (MMS) for OpenVMS Systems

          For more information on HP DECset Release 12.7 for OpenVMS Alpha and
          OpenVMS I64 Systems, refer to the Software Product Description (SPD
          42.29.xx).

          For more information on HP DECset Release 12.7 for OpenVMS VAX Sys-
          tems, refer to the Software Product Description (SPD 27.07.xx).

          o  Oracle CDD Version 7.2 for OpenVMS I64, Version 7.0 and above for
             OpenVMS Alpha, and Version 5.3 for OpenVMS VAX.

          GROWTH CONSIDERATIONS

          The minimum hardware and software requirements for any future version
          of this product may be different from the requirements for the cur-
          rent version.

          DISTRIBUTION MEDIA

          HP C OpenVMS VAX ONLY:

          HP C for OpenVMS VAX is available on the OpenVMS VAX Software Layered
          Products Library Package (QA-5G88A-H8). The library package includes
          media and documentation on CD-ROM. Documentation kits containing only
          the HP C for OpenVMS VAX product are available separately.

          HP C OpenVMS Alpha ONLY:

                                           12

 



          HP C for OpenVMS


          HP C for OpenVMS Alpha is available on the OpenVMS Alpha Software Lay-
          ered Products Library Package (QA-03XAA-H8). The library package in-
          cludes media and documentation on CD-ROM.

          HP C OpenVMS I64 ONLY:

          HP C for OpenVMS I64 is available on the Layered Products media within
          the Operating Environment package. The Layered Products media includes
          the product binaries and on-line documentation. An optional hardcopy
          documentation kit is also offered.

          ORDERING INFORMATION

          Licenses

          ___________________________________________________________________
          __________________HP_OpenVMS_Integrity_License[1]__________________

          HP C Concurrent Use          BA348AC[2]
          License
          ___________________________________________________________________
          [1]Update licenses not available; updates available through SW
          Updates Service.

          [2]This license may also be used with OpenVMS Alpha in a mixed
          architecture_cluster.______________________________________________

          ___________________________________________________________________
          _______________HP_OpenVMS_Alpha_and_VAX_User_Licenses______________

          Personal Use License         QL-015AA-2B
          Personal Use Update          QL-015AA-3B
          License
          Concurrent Use License       QL-015AA-3*[1]
          ___________________________________________________________________
          [1]Asterisk denotes number of users: B=one user, C=5 users, E=25
          users, F=50 users




                                           13

 



          HP C for OpenVMS

          ___________________________________________________________________
          _______________HP_OpenVMS_Alpha_and_VAX_User_Licenses______________

          Concurrent Use Update        QL-015AA-5*[1]
          License
          ___________________________________________________________________
          [1]Asterisk denotes number of users: B=one user, C=5 users, E=25
          users,_F=50_users__________________________________________________

          ___________________________________________________________________
          _______HP_OpenVMS_Alpha_and_VAX_Traditiona/Capacity_Licenses_______

          Alpha Traditional License    QL-MUPA*-AA[1]
          Alpha Traditional Update     QL-MUPA*-RA[1]
          License
          VAX Traditional License      QL-015A*-AA[2]
          VAX Traditional Update       QL-015A*-RA[2]
          License
          ___________________________________________________________________
          [1]Asterisk denotes system tier. E=workgroup tier, G=departmental
          tier, Q=enterprise tier.

          [2]Asterisk denotes system tier. B=workgroup tier, 2=departmental
          tier,_5=enterprise_tier.___________________________________________

          Media and Online Documentation

          Product binary kits and online documentation are delivered on consol-
          idated media libraries. Delivery model varies by platform.

          ___________________________________________________________________
          _______HP_OpenVMS_Integrity_Media_and_Online_Documentation[1]______

          Foundation Operating         BA322AA#AJR
          Environment
          ___________________________________________________________________
          [1]Product ships on Layered Products Library media included in all
          Operating Environment media kits, available with initial OpenVMS
          OE order.



                                           14

 



          HP C for OpenVMS

          ___________________________________________________________________
          _______HP_OpenVMS_Integrity_Media_and_Online_Documentation[1]______

          Enterprise Operating         BA323AA#AJR
          Environment
          Mission Critical Operat-     BA324AA#AJR
          ing Environment
          ___________________________________________________________________
          [1]Product ships on Layered Products Library media included in all
          Operating Environment media kits, available with initial OpenVMS
          OE_order.__________________________________________________________

          ___________________________________________________________________
          __________HP_OpenVMS_Alpha_Media_and_Online_Documentation__________

          Software Layered Products    QA-03XAA-H8
          Library Package[1]
          Software Layered Products    QA-5G98A-H8
          and Operating System
          Library Package [1]
          ___________________________________________________________________
          [1]Quarterly_Software_Updates_Service_is_available.________________


          ___________________________________________________________________
          ___________HP_OpenVMS_VAX_Media_and_Online_Documentation___________

          Software Layered Products    QA-5G88A-H8
          Library Package[1]
          Software Layered Products    QA-YL48A-H8
          and Operating System
          Library Package [1]
          ___________________________________________________________________
          [1]Quarterly_Software_Updates_Service_is_available.________________








                                           15

 



          HP C for OpenVMS

          ___________________________________________________________________
          _________________HP_OpenVMS_Integrity_SW_Update[1]_________________

          HP C VMS I64 Media           BA48AA
          ___________________________________________________________________
          [1]For the OpenVMS Integrity platform, media updates are ordered
          by adding SW Updates Service to individual products. The above
          media product number must be pulled into an order if SW Updates
          Service_is_planned.________________________________________________

          Hardcopy Documentation

          A hardcopy documentation set can be ordered separately. The documen-
          tation set varies by platform.

          ___________________________________________________________________
          ____________________HP_C_Hardcopy_Documentation____________________

          For OpenVMS Integrity        BA348MN
          For OpenVMS Alpha            QA-MU7AA-GZ
          For_OpenVMS_VAX______________QA-015AA-GZ___________________________

          NOTE: If you are adding a layered product to an existing OpenVMS In-
          tegrity system and do not have the latest software revision on site,
          please contact your local Sales Rep to request a Special Media kit.

          SOFTWARE PRODUCT SERVICES

          A variety of service options are available from HP. For more infor-
          mation, contact your HP account representative or distributor. Infor-
          mation is also available on www.hp.com/hps/software.

          SOFTWARE WARRANTY

          This software is provided by HP with a ninety-day conformance warranty
          in accordance with the HP warranty terms applicable to a license pur-
          chase.





                                           16

 



          HP C for OpenVMS


          TRADEMARK INFORMATION

           2007 Hewlett-Packard Development Company, L.P.

          Confidential computer software. Valid license from HP and/or its sub-
          sidiaries required for possession, use, or copying. Consistent with
          FAR 12.211 and 12.212, Commercial Computer Software, Computer Soft-
          ware Documentation, and Technical Data for Commercial use.

          The information contained herein is subject to change without notice.
          The only warranties for HP products and services are set forth in the
          express warranty statements accompanying such products and services.
          Nothing here in should be construed as constituting an additional war-
          ranty. HP shall not be liable for technical or editorial errors or omis-
          sions contained herein.


























                                           17
