DIGITAL Software Product Description ___________________________________________________________________ PRODUCT NAME: DEC C Version 6.0 for OpenVMS Alpha SPD 25.38.28 DEC C Version 6.0 for OpenVMS VAX DESCRIPTION DEC C is an ANSI-compliant implementation of the C programming lan- guage with DIGITAL extensions. The DEC C compiler runs under the Open- VMS VAX and OpenVMS Alpha Operating Systems and generates optimized and position-independent code. DEC C is a native-mode language product, and is integrated into the OpenVMS VAX and OpenVMS Alpha Common Language Environments. All Open- VMS VAX and OpenVMS Alpha system services are available to programs written in DEC C. DEC C programs can invoke, as functions, modules writ- ten in other VAX and Alpha languages. DEC C supports OpenVMS VAX and OpenVMS Alpha Record Management Ser- vices (RMS) for sequential file organizations and associated access methods. DEC C also supports stream file-access methods common among many C implementations. DEC C provides extensive ANSI C conformance checking, and supports the lint-like features of the DIGITAL Source Code Analyzer. The DIGITAL Source Code Analyzer allows the programmer to check for consistent func- tion usage throughout a program environment. DEC C also generates com- plete debug and traceback records for use with OpenVMS Debug. Debug allows the C programmer to set breakpoints, examine and modify the con- tents of user variables, and selectively halt or continue program ex- ecution. February 1999 DEC C on OpenVMS Alpha provides IEEE floating point support as defined by, and in conformance with, the IEEE Standard. Features o Separate modes of compilation to support each of five C dialects: - A strict ANSI mode that compiles according to the ANSI standard - A relaxed ANSI mode that compiles according to the ANSI stan- dard but accepts additional DIGITAL extensions - 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 DIGITAL UNIX (also called "K&R" C or "pcc" mode) Corporation - 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. In addition, the features specified by Addendum 1 to the ISO C stan- dard 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: - DEC C supports, 8, 16, and 32-bit signed and unsigned integers. DEC C OpenVMS Alpha also supports 64-bit signed and unsigned in- tegers. - DEC 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. - DEC C OpenVMS Alpha also supports IEEE floating point format and offers user selectable 64-bit or 128-bit representation for the long double data type. - DEC C supports passing numeric constants by reference in func- tion calls. 2 - DEC C supports the multibyte and wide-character types and fea- tures of XPG4, with the locale support available in OpenVMS V6.2 and subsequent versions. - DEC C OpenVMS Alpha, 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 architecture and OpenVMS Alpha Ver- sion 7.0 services. These features include command-line quali- fiers, #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 addressing afforded by 32-bit pointers. By default, programs compiled by earlier versions of the compiler or on earlier versions of OpenVMS continue to be- have as before, strictly within 32-bit address space. Explicit use of the new compiler features allow such programs to be ex- tended 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 DIGITAL Module Management System o Pragmas to control compiler options o Compilation options allowing a choice between fast turnaround and optimization across compilation units 3 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: - 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 o Built-in functions allow access to a subset of VAX and Alpha ma- chine instructions. DEC 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 VAX and OpenVMS Alpha Common Language Environments: - Generation of complete debug and traceback records for OpenVMS VAX and Alpha Debug support - Conformance to the OpenVMS VAX and Alpha Calling Standard 4 - 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 VAX Record Management Services (RMS) by direct calls to the Common Run-Time Library - Support for providing error diagnostics to the DIGITAL Language- Sensitive Editor and cross-reference information for the DIG- ITAL Source Code Analyzer - Support for Common Data Dictionary (CDD) - DEC C OpenVMS Alpha support of interaction with routines exe- cuting in translated (VAX) mode 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 DEC C++ for OpenVMS VAX and DIG- ITAL C++ for OpenVMS Alpha systems Compatibility with Other C Implementations DEC C is a conforming hosted implementation of ANSI X3.159-1989 Pro- gramming Language C (ISO/IEC 9899:1990[1994]). It can operate in five different modes: strict ANSI compatibility, relaxed ANSI compatibil- ity (ANSI plus DIGITAL extensions), VAX C compatibility mode, common C (pcc) compatibility mode, and Microsoft C compatibility mode. The last three modes provide many features to ease porting from other en- vironments, though they do not provide 100% emulation of every fea- ture of a particular version of the compilers used in those environ- ments. While many programs written in C for other compilers can be success- fully recompiled under DEC C, some incompatibilities among implemen- tations exist. Run-Time Library for C Applications 5 With the exception of OpenVMS VAX Operating Systems prior to V6.1, the complete DEC C Run-Time Library that is needed for use with DEC C is distributed with the OpenVMS VAX and OpenVMS Alpha Operating Systems. The DEC C Run-Time Library provides routines to perform input/output, character and string handling, mathematical computations, memory al- location, 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 DEC C kit may include run-time library components in either share- able image or object library form. DIGITAL grants the user a nonex- clusive 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 users's software application product, which is designed to oper- ate in the DIGITAL OpenVMS environment; o does not use DIGITAL's name, logo, or trademarks to market the user's software application product; o includes DIGITAL's copyright notice for DEC C on the user's prod- uct disk label and/or on the title page of the documentation for the software application product; and o agrees to indemnify, hold harmless, and defend DIGITAL from and against any claims or lawsuits, including attor- ney's fees, that arise or result from the use or distribution of the software application product. Except as expressly provided herein, DIGITAL grants no implied or express license under any of its patents, copyrights, trade secrets, trademarks, or any license or other pro- prietary interests and rights. For OpenVMS Alpha systems, the only RTL component that may be redis- tributed is DECC$CRTL.OLB. Refer to the DEC C V6.0 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 DEC C V6.0 for 6 OpenVMS VAX Release Notes for instructions on redistributing these RTL components. HARDWARE REQUIREMENTS Processors Supported: Any Alpha system capable of running the OpenVMS Alpha Operating System Version 6.2 to 7.2 or any VAX capable of run- ning the OpenVMS Operating System V5.5-2 to 7.2. Refer to the Open- VMS Operating System's Software Product Description (SPD 25.01.xx) for details. Disk Space Requirements (Block Cluster Size = 1): DEC C OpenVMS DEC C OpenVMS Alpha VAX Disk space 34,000 blocks 41,000 blocks required for installation: (17.4 MB) (20.5 MB) Disk space 27,000 blocks 32,000 blocks required for permanent use: (13.5 Mbytes) (16 MB) These counts refer to the maximum 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. 7 OPTIONAL HARDWARE On VAX systems, only D_,F_,and G_Floating floating point data types can be used in programs written in DEC C, which does not support the H_Floating type. (DEC C on Alpha systems supports IEEE floating point types in addition to these VAX types). Floating-point-intensive ap- plications should be run on configurations with the appropriate hard- ware support for the floating-point data types being used. Consult the base operating system Software Product Description (SPD) for the ap- propriate floating-point accelerator or other floating-point hardware appropriate for your configuration. SOFTWARE REQUIREMENTS o OpenVMS VAX Operating System, Version 5.2-2 to Version 7.2 o OpenVMS Alpha Operating System Version 6.2 to Version 7.2 SOFTWARE LICENSING This software is furnished only under a license. For more information about DIGITAL's licensing terms and policies, contact your local Com- paq sales office or business partner. License Management Facility Support: These layered products support the OpenVMS License Management Facil- ity. License units for this product are allocated on an Unlimited System Use, plus Personal and Concurrent Use basis. 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 Digital OpenVMS Operating System Software Product Description or the License Management Facility manual of the OpenVMS Operating System doc- umentation set. 8 CLUSTER ENVIRONMENT This layered product is fully supported when installed on any valid and licensed OpenVMS Cluster* configuration without restrictions. The HARDWARE REQUIREMENTS sections 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 25.01.XX) OPTIONAL SOFTWARE o DECset Release 12.3 for OpenVMS Alpha Systems or DECset Release 12.3 for OpenVMS VAX Systems which includes: - DIGITAL Language-Sensitive Editor/Source Code Analyzer (LSE/SCA) for OpenVMS Systems - DIGITAL Test Manager (DTM) for OpenVMS Systems - DIGITAL Performance and Coverage Analyzer (PCA) for OpenVMS Sys- tems - DIGITAL Code Management System (CMS) for OpenVMS Systems - DIGITAL Module Management System (MMS) for OpenVMS Systems 9 For more information on DECset Release 12.3 for OpenVMS Alpha Systems, refer to the Software Product Description (SPD 42.29.xx). For more information on DECset Release 12.3 for OpenVMS VAX Systems, refer to the Software Product Description (SPD 27.07.xx) o DEC CDD/Repository Version 5.3 for OpenVMS VAX and OpenVMS Alpha. GROWTH CONSIDERATIONS The minimum hardware/software requirements for any future version of this product may be different from the requirements for the current version. DISTRIBUTION MEDIA DEC C OpenVMS VAX ONLY: DEC C for OpenVMS VAX is available on the OpenVMS VAX Software Lay- ered Products Library Package (QA-5G88A-H8). The library package in- cludes media and documentation on CD-ROM. Media/documentation kits con- taining only the DEC C for OpenVMS VAX product are available separately. The kits contain media on Magtape (9-track 1600 BPI) or TK50 Stream- ing Tape with hardcopy documentation. DEC C OpenVMS Alpha ONLY: DEC C for OpenVMS Alpha is available on the OpenVMS Alpha Software Prod- ucts Layered Library Package (QA-03XAA-H8). The library package in- cludes media and documentation on CD-ROM. A media/documentation kit containing only the DEC C for OpenVMS Alpha product is available sep- arately (QA-MU7AA-H8). Included in the kit is CD-ROM media and hard- copy documentation. 10 YEAR 2000 READY This product is Year 2000 Ready. Year 2000 Ready is defined: "Year 2000 Ready" products are defined by DIGITAL as products capable of accurately processing, providing, and /or receiving date data from, into and between the twentieth and the twenty -first centuries, and the years 1999 and 2000, including leap year calculations, when used in accordance with the associated DIG- ITAL product documentation and provided that all hardware, firmware and software used in combination with such DIGITAL products properly exchange accurate date data with DIGITAL products. For additional information visit Compaq's DIGITAL Products Year 2000 Ready web site located at http://ww1.digital.com/year2000/warranty.asp. SOFTWARE WARRANTY This software is provided by DIGITAL with a 90 day conformance war- ranty in accordance with the DIGITAL warranty terms applicable to the license purchase. ORDERING INFORMATION DEC C for OpenVMS VAX ONLY: Software Licenses: Personal Use : QL-015AA-2B Concurrent Use : QL-015AA-3B Unlimited System Use: QL-015A*-** Software Media/Documentation: QA-015AA-** Software Documentation (Hard Copy): QA-015AA-GZ Software Product Services: QT-015A*-** DEC C for OpenVMS Alpha ONLY: 11 Software Licenses: Personal Use : QL-015AA-2B Concurrent Use : QL-015AA-3B Unlimited System Use: QL-MU7A*-** Software Media/Documentation: QA-MU7AA-H8 Software Documentation (Hard Copy): QA-MU7AA-GZ Software Product Services: QT-MU7A*-** * Denotes variant fields. For additional information on available li- censes, services, and media, refer to the appropriate price book. SOFTWARE PRODUCT SERVICES A variety of service options are available from Compaq. For more in- formation, contact your local Compaq office. The previous information is valid at time of release. Please contact your local Compaq office for the most up-to-date information. ® UNIX is a registered trademark in the United States and other countries licensed exclusively through X/Open Company Ltd. ® Microsoft is a registered trademark of Microsoft Corporation. [TM] Visual C++ is a trademark of Microsoft Corporation. [TM] COMPAQ,the Compaq logo, the DIGITAL Logo, Alpha, DEC, DECwin- dows, DECset, DIGITAL, OpenVMS, VAX, VAX RMS, and VMS are registered in the U.S. Patent and Trademark Office. © 1999 Digital Equipment Corporation. All rights reserved. 12