Overview

The VisualAge® C++ and XL Fortran family of compilers is expanded to support the IBM iSeries platform. The
previously announced VisualAge C++ V6.0 for Linux on pSeries, XL Fortran V8.1 for Linux on
pSeries, and XL Fortran Run-Time Environment (RTE) V8.1 for Linux on pSeries now bring C/C++ and
Fortran function to customers running a Linux-enabled iSeries or AS/400® RISC model server.

With this release of VisualAge C++ V6.0 for Linux on iSeries, XL Fortran V8.1 for Linux on iSeries,
and XL Fortran RTE V8.1 for Linux on iSeries, Linux application developers can now take advantage of
proven IBM compiler technology.

For additional information on VisualAge C++ V6.0 for Linux on pSeries (and now also iSeries), refer
to Software Announcement
203-056
, dated February 25, 2003.

For additional information on IBM XL Fortran V8.1 for Linux on pSeries (and now also iSeries) and
IBM XL Fortran RTE V8.1 for Linux on pSeries (and now also iSeries), refer to Software Announcement
203-053
, dated February 25, 2003.

Key prerequisites

Linux-enabled iSeries or AS/400 RISC model servers

SuSE Linux Enterprise Server 8 (SLES 8) on pSeries and iSeries

Browser to access the HTML-based help

PDF reader to view and print PDF documentation

Planned availability date

August 15, 2003, for build-to-plan (orders by part number) and electronic software
delivery

Description

VisualAge C++ V6.0 for Linux on pSeries and iSeries

The VisualAge C++ V6.0 for Linux on pSeries and iSeries software is a highly productive and powerful
development environment for building C and C++ applications.

1998 C++ and 1999 C International Standards:
VisualAge C++ V6.0 for Linux on pSeries and iSeries builds on official industry standards, so
your code can be ported easily among a variety of implementations.

1999 C Standard:
The ISO/IEC 9899:1999 International Standard (also known as C99) specifies the form and
establishes the interpretation of programs written in the C programming language. This is the
second edition of the standard. This update enhances the capability of the C language, provides
clarifications, and incorporates technical corrections to the previous edition of the standard. The
language features supported by the C compiler within VisualAge C++ V6.0 for Linux on pSeries and
iSeries is consistent with the specification described in the ISO/IEC 9899:1999 International
Standard. The compiler works with a run-time environment that supports the standard to form a
conforming implementation.

The C99 Standard offers a number of additional language functions over the first edition (C89) of
the standard. These include:

Long Long

Bool

Pragma operator

Initializer allow con

Empty new argument

Macro with variable number of args

Inline function specifier

Complex

The -qlanglvl compiler option allows you to choose from the available language levels that you can
use to compile your code within VisualAge C++. Your code can conform to the latest C99 Standard,
use extensions to C99, or conform to the previous C89 Standard. VisualAge C++ offers you the
flexibility to compile your code to the language level that you need.

1998 C++ Standard:
The ISO/IEC 14882:1998 International Standard (also known as Standard C++) specifies the
form and establishes the interpretation of programs written in the C++ programming language. This
International Standard is designed to promote the portability of C++ programs among a variety of
implementations. ISO/IEC 14882:1998 is the first formal definition of the C++ language. The C++
compiler within VisualAge C++ V6.0 for Linux on pSeries and iSeries supports the 1998 ISO/IEC
Standard. In addition, VisualAge C++ supports a number of the latest approved clarifications from
the standards committee, bringing the C++ compiler within VisualAge C++ V6.0 for Linux on pSeries
and iSeries to the latest level of the standard.

OpenMP:
The OpenMP is an industry specification describing a common set of APIs that support
multiplatform symmetric multiprocessing (SMP) programming in C, C++, and Fortran on all
architectures, including UNIX® platforms. Jointly defined by a group of major computer hardware
and software vendors, including IBM, OpenMP is a portable, scalable programming model that provides
SMP programmers with a simple and flexible interface for developing shared-memory parallel
applications for platforms ranging from the desktop to the supercomputer.

VisualAge C++ V6.0 for Linux on pSeries and iSeries provides full support for the OpenMP Industry
Specification V1.0. For more information about the OpenMP Specification, visit the OpenMP Web site
at:

Compiler optimization:
VisualAge C++ V6.0 for Linux on pSeries and iSeries includes the
benefits of IBM's compiler optimization technology. Through compiler
options, directives, and pragmas, programmers are offered a number of
ways to optimize their code. Using the -O2, -O3, -O4, and -O5 options,
you can obtain optimization levels that run from comprehensive low-level
optimizations to more extensive optimizations that include
interprocedural analysis, loop optimization, and automatic machine
tuning. Other options for optimization include:

-qarch, -qtune, and -qcache, which allow you to optimize your application
to the POWER3 and POWER4 architecture

-qhot, which allows for high-order transformations, which are
optimizations that specifically improve performance of loops through
techniques such as interchange, fusion, and unrolling

-qipa, which invokes interprocedural analysis (IPA) that enables the
compiler to optimize across different files (whole-program analysis), and
can result in significant performance improvements

32-bit and 64-bit support:
You can use VisualAge C++ V6.0 for Linux on pSeries and iSeries to
develop 32-bit and 64-bit applications. VisualAge C++ provides 64-bit
pointer and 64-bit addressability support for SMP and serial code. High
optimization levels, interprocedural analysis, and SMP are supported for
64-bit code.

Ease of porting:
VisualAge C++ V6.0 for Linux on pSeries and iSeries has features
that help you port existing code from AIX® or other UNIX-based systems
as well as from code originally written for GNU C/C++. For example, by
compiling with the -qinfo=por option, you can filter the diagnostic
messages emitted by the compiler to show only those that pertain to
portability issues. Also a comprehensive subset of features related to
GNU C/C++ are supported by VisualAge C++ V6.0 for Linux on pSeries and
iSeries. Other GNU C/C++ features are recognized (accepted and ignored).
This will help you minimize the number of changes that you need to make
to your GCC source code to ensure that it compiles successfully using
VisualAge C++ V6.0 for Linux on pSeries and iSeries.

Binary compatibility and coexistence:
VisualAge C++ V6.0 for Linux on pSeries and iSeries supports the C++
Abstract Binary Interface (ABI), which means that the compiler produces
binary or object files that are compatible with those created with the
GCC compiler.

VisualAge C++ V6.0 for Linux on pSeries and iSeries includes the same
headers as those used by a GNU compiler residing on the same system.
This allows VisualAge C++ V6.0 for Linux on pSeries and iSeries to
achieve binary compatibility with GCC-compiled code. The VisualAge
compiler optimizes the program while maintaining binary compatibility
with objects produced by GCC V3.2. Additional coexistence features
include:

Compilation uses the GNU C and C++ header files from the Linux
distribution.

Compilation uses the GNU assembler.

Linking uses the GNU linker.

Compiled programs use the GNU C and C++ run-time libraries.

Compiled object files are compatible with g++ objects.

Debugging uses the GNU debugger, gdb.

Profiling uses the GNU profiler, gprof.

GNU Debugger, gdb:
VisualAge C++ V6.0 for Linux on pSeries and iSeries supports
debugging using the GNU debugger, gdb. This symbolic debugger, which
comes with the system, supports full debugging capability for code
without optimization and partial debugging for code at the -O2
optimization level.

Documentation and online help:
VisualAge C++ V6.0 for Linux on pSeries and iSeries provides product
documentation in HTML and Portable Document Format (PDF). The following
PDF documents are provided:

Getting Started with VisualAge C++ for Linux on pSeries
describes the different ways the compiler can generate executable code,
the accepted file types for input and output, and tips that can be useful
for porting an existing application. The book also includes instructions
for installing the program and provides an introduction to optimizing the
performance of your application.

VisualAge C++ for Linux on pSeries C/C++ Language Reference
contains information about the C and C++ programming languages as
supported by IBM, including the new portability and standardization
extensions.

VisualAge C++ for Linux on pSeries Compiler Reference
contains information about the various compiler options, pragmas, macros,
and built-in functions, including those used for parallel processing.

VisualAge C++ for Linux on pSeries Programming Tasks
contains information about programming using VisualAge C++ for Linux on
pSeries not covered in other publications.

XL Fortran V8.1 for Linux on pSeries and iSeries

The XL Fortran (XLF) compiler is now available for Linux on pSeries and iSeries. XLF for Linux on
pSeries and iSeries is based on the mature compiler technology of XLF for AIX and currently supports
SLES 8 for pSeries and iSeries.

OpenMP:
OpenMP is an industry specification describing a common set of APIs that support SMP
programming in C/C++ and Fortran on all architectures, including UNIX and Windows NT® platforms.
OpenMP is a portable, scalable model that gives shared-memory parallel programmers a simple and
flexible interface for developing parallel applications for platforms ranging from the desktop to
the supercomputer.

XLF V8.1 for Linux on pSeries and iSeries provides full support for the OpenMP Fortran API V2.0.
For more information on the OpenMP Fortran API V2.0, visit:

SMP programming:
Applications may be parallelized automatically through the use of a
compiler option or parallelized explicitly through the use of SMP
directives.

Use the xlf_r, xlf90_r, or xlf95_r command to compile XL Fortran SMP
programs. For the compiler to recognize the SMP directives and activate
parallelization, you must also specify the -qsmp option.

32-bit and 64-bit support:
Use XLF for Linux on pSeries and iSeries to develop both 32-bit and
64-bit mode applications. XLF V8.1 for Linux on pSeries and iSeries
provides 64-bit pointer and 64-bit addressability. High optimization
levels (-O5, -O4, and -qhot), interprocedural analysis, and
parallelization are supported for 64-bit mode applications.

Exploiting the PowerPC® architecture:
XLF for Linux on pSeries and iSeries supports IBM POWER3, POWER4,
and PowerPC architectures. Use compiler options -qarch and -qtune to
instruct the compiler to generate code specific to an architecture. This
allows the compiler to take advantage of machine-specific instructions to
further improve performance. The -qarch option specifies the target
architectures on which the resulting programs will run. The -qtune and
-qcache options refine the degree of platform-specific optimization
performed.

Asynchronous I/O:
XLF for Linux on pSeries and iSeries supports asynchronous I/O.
Asynchronous I/O can be used to improve the performance of applications
that perform input and output of large amounts of data. Asynchronous I/O
makes it possible for other program statements to be executed while the
data transfer is taking place.

Symbolic debugger support:
Use gdb or other symbolic debugger for your programs.

Port or migration support:
The XLF compiler helps you port or migrate source code among Fortran
compilers by providing full FORTRAN 77, Fortran 90, and Fortran 95
language support and selected language extensions (such as intrinsic
functions, data types) from many different compiler vendors.

The xlf, xlf_r, f77, and fort77 commands provide maximum compatibility
with existing FORTRAN 77 programs. The default options provided with the
xlf90 and xlf90_r commands give access to the full range of Fortran 90
language features. The default options provided with the xlf95 and
xlf95_r commands give access to the full range of Fortran 95 language
features.

IBM XL Fortran RTE V8.1 for Linux on pSeries and iSeries

XLF RTE V8.1 for Linux on pSeries and iSeries provides a run-time environment to support library
modules, asynchronous I/O, threadsafe I/O, and I/O services and utilities.

Reference information

For additional information on VisualAge C++ V6.0 for Linux on pSeries (and now also iSeries), refer
to Software Announcement
203-056
, dated February 25, 2003.

For additional information on IBM XL Fortran V8.1 for Linux on pSeries (and now also iSeries) and
IBM XL Fortran RTE V8.1 for Linux on pSeries (and now also iSeries), refer to Software Announcement
203-053
, dated February 25, 2003.

Trademarks

The e-business logo, iSeries, pSeries, POWER3, and POWER4 are trademarks of International Business
Machines Corporation in the United States or other countries or both.

VisualAge, AS/400, AIX, and PowerPC are registered trademarks of International Business Machines
Corporation in the United States or other countries or both.

Windows NT is a registered trademark of Microsoft Corporation.

UNIX is a registered trademark of the Open Company in the United States and other countries.

Other company, product, and service names may be trademarks or service marks of others.

Packaging:
The VisualAge C++ V6.0 program is distributed in a single package
that includes the following:

If selected, one media pack containing one CD-ROM for the VisualAge C++
V6.0 for Linux on pSeries and iSeries program and a support agreement
addendum document

If selected, one media pack containing one CD-ROM for the VisualAge C++
V6.0 for AIX® program and a support addendum document

The IBM XL Fortran V8.1 program is distributed in a single package that
includes the following:

If selected, one media pack containing one CD-ROM for the IBM XL Fortran
V8.1 for Linux on pSeries and iSeries program and a support addendum
document

If selected, one media pack containing one CD-ROM for the IBM XL Fortran
V8.1 for AIX program, License Agreement Booklet, License Information
Booklet, and a support addendum document

The IBM XL Fortran RTE V8.1 program is distributed in a single package
that includes the following:

If selected, one media pack containing one CD-ROM for the IBM XL Fortran
RTE V8.1 for Linux on pSeries and iSeries program, License Agreement
booklet, License Information Booklet, and support addendum document

If selected, one media pack containing one CD-ROM for the IBM XL Fortran
RTE V8.1 for AIX program, License Agreement booklet, License Information
Booklet, and a support addendum document.

When downloaded from a Web site, this program contains the applicable IBM
license agreement and License Information (LI), if appropriate, and will
be presented for acceptance at the time of installation of the program.
The license and LI will be stored in a directory such as LICENSE.TXT for
future reference.

Security, auditability, and control

VisualAge C++ V6.0 for Linux on pSeries and iSeries, XL Fortran V8.1 for Linux on pSeries and
iSeries, and XL Fortran V8.1 RTE for Linux on pSeries and iSeries use the security and auditability
features of the operating systems on which they operate.

The customer is responsible for evaluation, selection, and implementation of security features,
administrative procedures, and appropriate controls in application systems and communication
facilities.

Ordering information

This product is only available via Passport Advantage®. It is not available as shrinkwrap.

Product group: VisualAge

Product identifier description (PID): VisualAge C++ (5765-F56)

Product category: VisualAge C++

Product group: App Integration Middleware Other

PID: IBM XL Fortran (5765-F70)

PID: IBM XL Fortran RTE (5765-F71)

Product category: XLFORTRAN

VisualAge C++ is a server product that has one charge unit: Authorized User.

These are available in fixed order quantities of one user.

Note:
VisualAge C++ V6.0 is licensed based on a charge unit of one authorized user per operating
system/hardware platform. Separate user authorizations are required by individual user for each
operating system/hardware platform on which the program is used. For each user authorization on a
given operating system/hardware platform, the program may be stored on more than one machine of that
particular hardware platform, provided that the program is not in active use by that individual user
on more than one machine of that particular hardware platform at the same time.

An authorized user is an individual or specific named user authorized to have access to the program
or any portion of the program on a single operating system. The proof of entitlement for this
program is evidence of your authorization. Each individual or specific named user must obtain a
Proof of Entitlement for each operating system/hardware platform on which the program is used.

IBM XL Fortran is a server product that has one charge unit: Authorized User. These are available
in fixed order quantities of one user.

Note:
IBM XL Fortran V8.1 is licensed based on a charge unit of one authorized user per operating
system/hardware platform. Separate user authorizations are required by individual user for each
operating system/hardware platform on which the program is used. For each user authorization on a
given operating system/hardware platform, the program may be stored on more than one machine,
provided that the program is not in active use by that individual user on more than one machine at
the same time.

An authorized user is an individual or specific named user authorized to have access to the program
or any portion of the program on a single operating system/hardware platform. The Proof of
Entitlement (PoE) for this program is evidence of your authorization. Each individual or specific
named user must obtain a PoE for each system on which the program is used.

When IBM XL Fortran V8.1 is ordered, its run-time component is shipped with the compiler on the same
media. The XL Fortran Run-Time component should be installed on the machine where the Fortran
program will be compiled and executed.

IBM XL Fortran RTE is a server product that has one charge unit: Install. These are available in
fixed order quantities of one install.

Note:
IBM XL Fortran RTE V8.1 is licensed based on a charge unit of one copy installed.

Charges for this program are based on the number of copies installed on different machines
regardless of the number of processors or LPARs that machine contains.

Each individual install must obtain a PoE. The total number of copies installed may not exceed the
quantity you purchased.

Terms and conditions

The terms and conditions for VisualAge C++ V6.0, XL Fortran V8.1, and XL Fortran RTE V8.1, as
previously announced in the following software announcements, are unchanged except as listed here:

The Charge Unit is now based on individual usage on both operating system and hardware platform.

VisualAge C++ is a server product that has one charge unit: Authorized user. These are available
in fixed order quantities of one user.

Note:
VisualAge C++ V6.0 is licensed based on a charge unit of one authorized user per operating
system/hardware platform. Separate user authorizations are required by individual users for each
operating system/hardware platform on which the program is used. For each user authorization on a
given operating system/hardware platform, the program may be stored on more than one machine of that
particular hardware platform, provided that the program is not in active use by that individual user
on more than one machine of that particular hardware platform at the same time.

An authorized user is an individual or specific named user authorized to have access to the program
or any portion of the program on a single operating system. The PoE for this program is evidence of
your authorization. Each individual or specific named user must obtain a PoE for each operating
system/hardware platform on which the program is used.

IBM XL Fortran is a server product that has one charge unit: Authorized user. These are available
in fixed order quantities of one user.

Note:
IBM XL Fortran V8.1 is licensed based on a charge unit of one authorized user per operating
system/hardware platform. Separate user authorizations are required by individual users for each
operating system/hardware platform on which the program is used. For each user authorization on a
given operating system/hardware platform, the program may be stored on more than one machine,
provided that the program is not in active use by that individual user on more than one machine at
the same time.

An authorized user is an individual or specific named user authorized to have access to the program
or any portion of the program on a single operating system/hardware platform. The PoE for this
program is evidence of your authorization. Each individual or specific named user must obtain a PoE
for each system on which the program is used.

When IBM XL Fortran V8.1 is ordered, its run-time component is shipped with the compiler on the same
media. The XL Fortran Run-Time component should be installed on the machine where the Fortran
program will be compiled and executed.

IBM XL Fortran RTE is a server product that has one charge unit: Install. These are available in
fixed order quantities of one install.

Note:
IBM XL Fortran RTE V8.1 is licensed based on a charge unit of one copy installed. Charges for this
program are based on the number of copies installed on different machines, regardless of the number
of processors or LPARs those machines contain. Each individual install must obtain a PoE. The
total number of copies installed may not exceed the quantity you purchased.

Previous software announcements

For additional information on VisualAge C++ V6.0 For Linux on pSeries (and now also iSeries), refer
to Software Announcement
203-056
, dated February 25, 2003.

For additional information on IBM XL Fortran V8.1 for Linux on pSeries (and now also iSeries) and
IBM XL Fortran RTE V8.1 for Linux on pSeries (and now also iSeries), refer to Software Announcement
203-053
, dated February 25, 2003

Prices

The prices are unchanged by this announcement.

IBM Electronic Services

IBM Global Services has transformed its delivery of hardware and software support services to put
you on the road to higher systems availability. IBM Electronic Services is a Web-enabled solution
that provides you with an exclusive, no-additional-charge enhancement to the service and support on
the IBM eServer. You should benefit from greater system availability due to faster problem
resolution and preemptive monitoring. IBM Electronic Services is comprised of two separate, but
complementary, elements: IBM Electronic Services news page and IBM Electronic Service Agent.

IBM Electronic Services news page provides you with a single Internet entry point that replaces the
multiple entry points traditionally used by customers to access IBM Internet services and support.
By using the news page, it enables you to gain easier access to IBM resources for assistance in
resolving technical problems.

The IBM Electronic Service Agent is no-additional-charge software that resides on your IBM eServer
system. It is designed to proactively monitor events and transmit system inventory information to
IBM on a periodic customer-defined timetable. The IBM Electronic Service Agent tracks system
inventory, hardware error logs, and performance information. If the server is under a current IBM
maintenance service agreement or within the IBM Warranty period, the Service Agent automatically
reports hardware problems to IBM. Early knowledge about potential problems enables IBM to provide
proactive service that maintains higher system availability and performance. In addition,
information collected through the Service Agent will be made available to IBM service support
representatives when they are helping answer your questions or diagnosing problems.

Global Financing

IBM Global Financing offers competitive financing to credit-qualified customers to assist them in
acquiring IT solutions. Offerings include financing for IT acquisition, including hardware,
software, and services, both from IBM and other manufacturers or vendors. Offerings (for all
customer segments: small, medium, and large enterprise), rates, terms, and availability can vary by
country. Contact your local IBM Global Financing organization or visit the Web at: