DIGITAL Software Product Description ___________________________________________________________________ PRODUCT NAME: DEC C for OpenVMS VAX Version 5.6 SPD 25.38.24 DEC C for OpenVMS Alpha Version 5.6 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 written 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 DEC Source Code Analyzer. The DEC Source Code Analyzer allows the programmer to check for consistent function us- age throughout a program environment. DEC C also generates complete debug 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. DEC C on OpenVMS Alpha provides IEEE support as defined by, and in con- formance with, the ANSI/IEEE Standard 754. Features May 1997 DEC C for OpenVMS VAX Version 5.6 SPD 25.38.24 DEC C for OpenVMS Alpha Version 5.6 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[R] systems including Digital 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. In addition, 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: - 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 format and offers user selectable 64-bit or 128-bit precision for the long double data type. - DEC C supports passing numeric constants by reference in func- tion calls. ____________________ + Microsoft is a registered trademark and Visual C++ is a trademark of Microsoft Corporation. 2 DEC C for OpenVMS VAX Version 5.6 SPD 25.38.24 DEC C for OpenVMS Alpha Version 5.6 - 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 DEC Module Management System o Pragmas to control compiler options o Compilation options allowing a choice between fast turnaround and optimization across compilation units 3 DEC C for OpenVMS VAX Version 5.6 SPD 25.38.24 DEC C for OpenVMS Alpha Version 5.6 o Compiler-generated listing file including optional: - Source Code - Include-file contents - Machine code - Macro expansion - Compilation statistics 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 - Access to the Common Run-Time Library for general purpose rou- tines and support of multilanguage 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 DEC Language- Sen- sitive Editor and cross-reference information for the DEC 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 4 DEC C for OpenVMS VAX Version 5.6 SPD 25.38.24 DEC C for OpenVMS Alpha Version 5.6 o Interface to the curses screen-manipulation package o Installation kit cooperates with DEC C++ for OpenVMS VAX and Open- VMS Alpha systems o Support for building applications that use new DEC C RTL functions to run on older versions of VMS o New diagnostics to detect undefined behavior depending on the or- dering of side effects o Optional diagnostics to detect C language constructs that are not compatible with the C++ language o Source statement nesting level added to source listing Compatibility with Other C Implementations DEC C is a conforming hosted implementation of ANSI X3.159-1989 Pro- gramming Language C (ISO 9899:1990[1992]). It can operate in five dif- ferent modes: strict ANSI compatibility, relaxed ANSI compatibility (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 environments, though they do not provide 100% emulation of every feature of a par- ticular version of the compilers used in those environments. 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 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. 5 DEC C for OpenVMS VAX Version 5.6 SPD 25.38.24 DEC C for OpenVMS Alpha Version 5.6 Run-time Library Redistribution for Older OpenVMS VAX Operating Systems For OpenVMS VAX Operating Systems V5.5-2 - V6.0, the DEC C VAX kit in- cludes a separately packaged save set that contains additional or mod- ified run-time library components needed to execute programs devel- oped with the DEC C compiler. Revisions to the run-time components are shipped with the OpenVMS Operating System rather than the DEC C com- piler, and the components in this special DEC C saveset, or more re- cent replacements, are included with the OpenVMS Operating System for Versions 6.1 or later. Digital grants you a nonexclusive, royalty-free, world right to re- produce and distribute this save-set portion of the DEC C kit desig- nated as AACRT060.A (the "RTL") provided that you: o distribute the entire RTL save set and copies of its accompanying installation documentation; o distribute the RTL only in conjunction with and as part of your soft- ware application product which is designed to operate in the Open- VMS VAX environment; o do not use Digital's name, logo, or trademarks to market your soft- ware application product; o include Digital's copyright notice for DEC C on your product disk label and/or on the title page of the documentation for your soft- ware application product; and o agree to indemnify, hold harmless, and defend Digital from and against any claims or lawsuits, including attorney's fees, that arise or result from the use or distribution of your software application product. Except as expressly provided herein, Digital grants no im- plied or expressed license under any of its patents, copyrights, trade secrets, trademarks, or any license or other proprietary in- terests and rights. 6 DEC C for OpenVMS VAX Version 5.6 SPD 25.38.24 DEC C for OpenVMS Alpha Version 5.6 HARDWARE REQUIREMENTS Processors Supported: Any Alpha system that is capable of running OpenVMS Alpha Version 6.1 or higher or any VAX system that is capable of running OpenVMS VAX Ver- sion 5.5-2 or higher. Disk Space Requirements DEC C DEC C OpenVMS Alpha OpenVMS VAX Disk space 36,000 43,500 blocks required for blocks (21.8 Mbytes) installa- (18.0 tion: Mbytes) Disk space 28,000 34,000 blocks required blocks (17.0 Mbytes) for use (14.0 (permanent:) Mbytes) 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 stand- dalone DECwindows environment with both the client and server execut- ing on that same system is 8 Mbytes. 7 DEC C for OpenVMS VAX Version 5.6 SPD 25.38.24 DEC C for OpenVMS Alpha Version 5.6 OPTIONAL HARDWARE Only D_, F_, and G_Floating point data types can be used in programs written in DEC C. DEC C does not support the H_Floating point data type on OpenVMS VAX Systems. Floating-point-intensive applications should be run on configurations with the appropriate hardware support for the floating-point data types being used. Consult the base operating sys- tem Software Product Description (SPD) for the appropriate floating- point accelerator or other floating-point hardware appropriate for your configuration. CLUSTER ENVIRONMENT This layered product is fully supported when installed on any valid and licensed VAXcluster* configuration without restrictions. The HARD- WARE REQUIREMENTS section of this product's Software Product Descrip- tion details any special hardware required by this product. * VAXcluster configurations are fully described in the VAXcluster Soft- ware Product Description (29.78.xx) and include CI, Ethernet, and Mixed Interconnect configurations. SOFTWARE REQUIREMENTS o DEC C OpenVMS VAX requires OpenVMS VAX Version 5.5-2 - Version 7.1 o DEC C OpenVMS Alpha requires OpenVMS Alpha Version 6.1 - Version 7.1 OpenVMS Tailoring: The following OpenVMS classes are required for full functionality of this layered product: o OpenVMS Required Save Set o Programming Support o Utilities 8 DEC C for OpenVMS VAX Version 5.6 SPD 25.38.24 DEC C for OpenVMS Alpha Version 5.6 For more information on OpenVMS classess and tailoring, refer to the OpenVMS Operating System Software Product Description (SPD 25.01.XX) OPTIONAL SOFTWARE: o DEC Language-Sensitive Editor/Source Code Analyzer Version 4.0 - 4.2 for OpenVMS VAX and OpenVMS Alpha. 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: 9-track 1600 BPI Magtape or TK50 Streaming Tape. DEC C OpenVMS VAX is also available as part of the OpenVMS VAX Consolidated Software Dis- tribution on CD-ROM (QA-VMJ8A-A8). The software documentation for DEC C is part of the OpenVMS VAX Online Documentation Library on CD-ROM. DEC C OpenVMS Alpha ONLY: This product is available on the Digital CD-ROM Software Library for OpenVMS Alpha (QA-03XAA-H8) or a CD-ROM containing only the DEC C for OpenVMS Alpha product (QA-MU7AA-H8). Documentation in hardcopy for- mat can be ordered separately. 9 DEC C for OpenVMS VAX Version 5.6 SPD 25.38.24 DEC C for OpenVMS Alpha Version 5.6 ORDERING INFORMATION DEC C for OpenVMS VAX ONLY: Software Licenses: Personal Use: QL-015A*-2B Concurrent Use: QL-015A*-3B Unlimited System Use: QL-015A*-** Software Media: QA-015A*-** Software Documentation: QA-015AA-GZ Software Product Services: QT-015A*-** DEC C for OpenVMS Alpha ONLY: Personal Use: QL-015A*-2B Concurrent Use: QL-015A*-3B Unlimited Use: QL-MU7A*-** Software Media/Documentation: QA-MU7AA-H8 Software Documentation: 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 LICENSING This software is furnished only under a license. For more information about Digital's licensing terms and policies, contact your local Dig- ital office. This layered product supports the OpenVMS License Management Facility. License units for this product are allocated on an Unlimited System Use, plus Personal Use and Concurrent Use basis. 10 DEC C for OpenVMS VAX Version 5.6 SPD 25.38.24 DEC C for OpenVMS Alpha Version 5.6 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 (SPD 25.01.xx) or the License Management Facility manual of the OpenVMS VAX Operat- ing System documentation set. SOFTWARE PRODUCT SERVICES A variety of service options are available from Digital. For more in- formation, contact your local Digital office. SOFTWARE WARRANTY Warranty for this software product is provided by Digital with the pur- chase of a license for the product as defined in the Software Warranty Addendum of this SPD. © 1997 Digital Equipment Corporation. All rights reserved. [R] UNIX is a registered trademark in the United States and other countries licensed exclusively through X/Open Company Ltd. [R] Microsoft is a registered trademark of Microsoft Corporation. [TM] Visual C++ is a trademark of Microsoft Corporation. [TM] The DIGITAL Logo, CDD/Repository, DEC, DEC C, DECwindows, Digital, OpenVMS, VAX, VAXcluster, VMS, are trademarks of Digital Equipment Corporation. 11