SAS/C and SAS/C++ Compiler Release 7.00 Changes and Enhancements |
The evolution of the SAS/C and SAS/C++ Compiler continues to reflect
the development requirements of the SAS/C and SAS/C++ community, compatibility
with developments in ESA/390 architecture, and adherence to the latest C and
C++ standards. Release 7.00 contains new features and enhancements that are
intended to meet the diverse requirements for ESA/390 software development
environments. The significant new features in Release 7.00 include the following:
- Implementation of Access Register Mode (ARMODE) support
in the System Programming Environment (SPE), through the use of a new pointer
type called a
far pointer
.
- Implementation of the
long long
data type in accordance with the ISO ANSI/C9X standard.
- Implementation of C++ exception handling, namespace support, and
a C++ standard library in accordance with the ISO ANSI/C++ standard.
The following sections highlight the new features for Release 7.00.
- Access Register Mode (ARMODE) support for SPE C programs. Access
to data in a data space is enabled via an eight-byte
far pointer
. The SPE library support includes functionality to allocate
and delete data spaces and various ARMODE string functions.
- Support for the
long long
data
type in accordance with the ANSI/ISO C9X standard. This support includes pre-processor
directives, compiler inline functions, and full library support for long long
format specifiers for the printf
and
scanf
family of functions.
This support is implemented with a feature test macro, _SASC_HIDE_LLLIB. This
macro, when defined, will enable existing programs that use long long
for other purposes to compile without modification.
- SAS/C COOL Pre-linker
serviceability and reliability enhancements
to support C and C++ Compiler enhancements, including the following new features:
-
- Promotion of unresolved extended name references from a warning
to an error condition. This feature enhances the use of the existing
clet
option with a new qualifier,
noex
.
- Implementation of a new option,
endisplaylimit
, which allows developers to control the processing for
extended
name cross-reference listings.
- Implementation of new formatting for C++ extended names in the
COOL extended names cross-reference listings. The feature supports new C++
features such as
namespace
, bool
, and wchar_t
.
- Implementation of compression
algorithms to reduce the size of
executable load modules.
- Implementation of additional validity checking and error diagnosis
for input objects, archives, and output objects.
- Support for C++ exception handling,
catch
,
try
, and throw
specifications.
This support also includes debugger enhancements to trap exceptions during
the exception handling processing.
- Support for the
namespace
specifier
and using
declaration. The namespace support
includes header file specification of the std
namespace for C standard headers. Argument-dependent function name lookup
is also supported.
- Enhanced compatibility with the ISO C++ standard in areas such
as overload resolution, name lookup, temporary handling, and access checking.
- Enhanced template support including the following new
features:
- default arguments
- template template formals
- function member pointer formals
- restricted
nested templates.
- Support for the following features:
- the
mutable
,
explicit
, bool
, and wchar_t
keywords
operator new[]
and operator delete[]
- explicit zero initialization and the {} empty initializer syntax
- the
long
long
data type
- the
extern OS
linkage specifier.
- Integration of a
standard C++ library, which includes the following
functionality:
- Standard Template Library (STL)
- IOStream library
- Locale facility
- templatized
string classes
- vector, arrays, algorithms and numeric classes, as defined in
the ISO/ANSI C++ standard.
- Integration of a Tools++ class library, which includes the following
functionality:
- String class library
- Time class library
- Expression class
library.
- C++ supports the generation of ASCII character sequences with
the use of the
asciiout
option. This option
will enable all string and character literals to be generated as ASCII characters.
This option simplifies the porting of C++ applications developed for non-EBCDIC
hosts, which may have source code dependencies on collating sequences. The
A and E prefixes for string and character literals are also supported.
- Performance improvements for processing user-defined and system
header files. The compiler automatically generates protected INCLUDE statements
to prevent parsing of previously processed header files.
- Library support for
long long
format
specifiers to include the following
functions:
printf
sprintf
llabs
atoll
strtoll
strtoull
scanf
fscanf
sscanf
.
- SPE
library support for the
far pointer
pointer type.
- Multitasking applications, which share SYSOUT data sets, may now
exploit a new feature called interleaved sysout. This feature
instructs the library to synchronize write access to these data sets and thereby
prevents various operating system ab ends that are associated with multiple
tasks trying to write to the same data set. The feature is enabled by defining
the
_isysout
external variable. The feature
is especially valuable for stdout
and stderr
when allocated to SYSOUT.
- Implementation of OS/390 eNetwork
Communication Server (TCP/IP)
enhancements for Integrated (UNIX System Services, USS) and non-Integrated
sockets. With newer versions of OS/390, USS sockets offer improved performance
and reliability versus non-USS s ockets. The SAS/C Library will now automatically
select USS sockets when available. Optionally, the application may choose
to override the default behavior with a new environment variable, =_SASC_SOCKIMP.
- Serviceability enhancements to isolate and identify configuration
problems associated with OS/390 eNetwork Communication Server (TCP/IP). A
new run-time option,
=cnftrace
, will enable
a series of diagnostic messages that will detail the files p rocessed by the
library to obtain configuration parameters.
- Implementation of USS socket functions that are supported under
new versions of OS/390, including the following functions:
getclientidpid
, givesocket_pid
,
and takesocket_pid
.
- NFS Client serviceability enhancements to isolate and identify
configuration problems associated with implementation of the Cross-debugger
feature. These enhancements include diagnosing SAF errors, NFS Server authorization
errors, and RPC data access errors.
- Implementation of the
osfeov
function,
which enables end-of-volume checking for multi-volume BSAM data sets.
- Implementation of the
ossysinfo
function, which enables the application to query an operating system for its
specific version information. Access to this information is typically available
only to assembler level programs.
- Implementation of the storage check function,
storck
, which enables an application to programmatically
validate
that library control blocks are not corrupted. This function is intended as
a diagnostic tool for isolating intermittent application overlays of library
and application stack and heap storage.
- SAS/C Inline Assembler implementation of the most current version
of ESA/390 operations codes.
- CMS/ESA enhancements to detect and process files with Year 2000
dates, including the following functions:
cmsfcent
, cmsffind
, and
cmsfnext
.
- Support for
long long
data types,
C++ templates, C++ exception handling, and C++ namespace constructs.
- Integration of the new
set search
commands and formats for specifying locations of source code, headers, and
debugger files.
- Integration of the new Remote Debugger feature, which enables
applications running under Batch, UNIX Systems Services, or CICS Transaction
Server to be debugged from a Native TSO or CMS environment.
- Integration of the new Cross-debugging feature, which enables
SAS/C and SAS/C++ developers to debug applications developed under UNIX or
Windows NT while retaining all source code and debugger files on the cross-compiler
host. The Cross-debugger compo nent includes an integrated NFS Client to facilitate
the exchange of data between the local and remote host.
- Support for extended name, exception handling, and namespace in
a C++ Environment.
- Enhancing the online Debugger Help files to include new commands
and syntax.
- Restructuring the SAS/C Debugger User's Guide and Reference,
Release 7.00, such that emphasis is placed on task processing, to improve
the ease and implementation of using the debugger in the development environment.
- The CICS Command Language Translator supports the latest versions
of CICS Transaction Server for OS/390 V1R3 and V1R2. Transaction Server support
includes processing for the Application Programming Interface, System Programming
Interface, and Busi ness Transaction Services.
- The CICS Command Language Translator supports the
long long
data
type.
- Implementation of the
selectecb
function under CICS run-time environments.
Copyright © 2001
by SAS Institute Inc., Cary, NC, USA. All rights reserved.