From: mcafee@leland.Stanford.EDU (Chris McAfee)
Subject: Re: C++ for the Cray (posting responses)
Organization: DSG, Stanford University, CA 94305, USA
Date: Wed, 27 Jan 93 18:26:42 GMT



Thanks to everyone for their input about C++ compilers for the Cray.
Some people have requested that I post my responses, so here it is!

Enjoy,

Chris
mcafee@cs.stanford.edu

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

From: hollyma@juniper.cray.com (Michael A. Holly)
Message-Id: <9301271439.AA05753@juniper17.cray.com>
Subject: C++ for the Cray
To: mcafee@cs.stanford.edu
Date: Wed, 27 Jan 93 8:39:00 CST
Cc: becker@juniper.cray.com (Dave Becker)
X-Mailer: ELM [version 2.3 PL11b-CRI]
Status: RO

I noticed that you wrer recently inquiring regarding the availability of a
C++ compiler on the Cray.
I am happy to tell you that Cray offers C++.  Our release 1.0 became
available late last year.  It is based on USL cfront 3.0.1, and has
been well-tested on the Crays.  We have added a number of mods to the
USL code, in particular our compiler has the ability to handle all of the
Cray C #pragma directives, which gives users the opportunity to create some
very effective Cray C++ code (vectorizing and microtasking, for example).

I am also aware of a number of Cray customers who have done their own port
of cfront to the Cray, although in general they don't have the enhancements
that our version offers.

I might also mention that our C++ compiler is available with special 
reduced pricing for university use.

I don't know which Cray you use, and I'm not sure how you would get in
contact with our salesperson to obtain C++.  But if you're interested, I
can probably find out, just send me some email.

Mike Holly



Date: Tue, 26 Jan 1993 22:30:15 -0600
From: "Charles B. Owen" <mgcbo@uxa.ecn.bgu.edu>
Message-Id: <199301270430.AA08089@uxa.ecn.bgu.edu>
To: mcafee@cs.stanford.edu
Subject: Re: Is there a C++ compiler for the Cray?
Newsgroups: comp.unix.cray
Organization: Educational Computing Network
Cc: 
Status: R

In article <1993Jan27.021040.19469@CSD-NewsHost.Stanford.EDU> you write:
>
>Hi everyone,
>
>Sorry if this is a FAQ, or is unrelated to this group, it's the ONLY
>cray group that I can find and I'm new to the Cray world.
>
>Our group is thinking about porting code to a Cray supercomputer and
>I need to find out whether the Cray supports C++.  If anyone is experienced
>with this or can help, I would greatly appreciate it!
>
>Chris
>mcafee@cs.stanford.edu
>
Yes, absolutely, the Cray systems do support C++.  Just one minor
problem.  I don't know if you will be able to find a system that
actually has it.  In all seriousness I'm not sure the C++ is even ready.
I have a simular problem, a large Neural Network simulation in C++ that
I would like to port.  The best idea is to rewrite in C, as I am doing
for a project right now.

I explored the posibilities of preprocessing with cfront or other
compilers to C.  However, the library support project was very large and
there were other porting problems.

Hope this is helpful,

| Charles B. Owen                            Internet: mgcbo@uxa.ecn.bgu.edu |
| Western Illinois University                            Phone: 309-837-4292 |
| 1002 E. Murray                                                             |
| Macomb, IL  61455                                                          |


Date: Tue, 26 Jan 93 20:33:13 PST
From: Keith.Bierman@eng.sun.com (Keith Bierman fpgoup)
Message-Id: <9301270433.AA05652@chiba.Eng.Sun.COM>
To: mcafee@cs.stanford.edu (Christopher C. McAfee)
Subject: Is there a C++ compiler for the Cray?
Content-Length: 47
Status: R


Yes CRI does. However you have to order it ;>


Date: Wed, 27 Jan 93 12:28:13 +0200
From: Kurt.Jaeger@rus.uni-stuttgart.de (Kurt Jaeger aka PI)
Message-Id: <9301271028.AA16072@helpdesk.rus.uni-stuttgart.de>
To: mcafee@cs.stanford.edu
Subject: Re: Is there a C++ compiler for the Cray?
Newsgroups: comp.unix.cray
Organization: User Help Desk, Comp.Center (RUS), U of Stuttgart, FRG
Status: RO

In article <1993Jan27.021040.19469@CSD-NewsHost.Stanford.EDU> you write:
>Our group is thinking about porting code to a Cray supercomputer and
>I need to find out whether the Cray supports C++.  If anyone is experienced
>with this or can help, I would greatly appreciate it!

There is a sw called C++ 2.1 from AT&T installed on our cray-2. Here
is the manual page:

		So short, PI

CC(1C++)                                                                ( )

NAME
     CC - C++ translator (``cfront'')

SYNOPSIS
     CC [ options ] file ...

DESCRIPTION
     CC is the AT&T C++ compiler.  The command uses cpp(1) for
     preprocessing, cfront for syntax and type checking, and cc(1) for code
     generation.

     CC takes arguments ending in .c, .C or .i to be C++ source files.  .i
     files are presumed to be the output of cpp(1).  Both .s and .o files
     are also accepted by the CC command and passed to cc(1).

     For each C++ source file, CC creates a temporary file, file.c, in
     /usr/tmp, containing the generated C file for compilation with cc(1).
     The -F -.suffix option saves a copy of this file in the current
     directory with the name file.suffix.  The +i option saves a copy of
     the generated C code (minus #line directives) in the current directory
     with the name file..c.

     In addition to the options described below, CC accepts other options
     and passes them on to the C compilation system tools.  See cpp(1) for
     preprocessor options, cc(1) for C compiler options, ld(1) for link
     editor options, and as(1) for assembler options.

     The following options apply to the C++-specific parts of the
     compilation process:

     -E        Run only cpp(1) on the C++ source files and send the result
               to standard output.  This option overrides the +i option.

     -F        Run only cpp(1) and cfront on the C++ source files, and send
               the result to standard output.  The output contains #line
               directives. This option overrides the -E and +i options.

     -.suffix  When used in combination with -E or -F , place the output
               from each input file in a file with the specified suffix in
               the current directory.

     -V        Causes the compiler version and generation date to be
               displayed during compilation.

     +a[01]    The C++ compiler can generate either ANSI C-conforming or
               K&R C-style declarations.  The +a option specifies which
               style of declarations to produce.  The default, +a0, causes
               the compiler to produce K&R C-style declarations.  The +a1
               option causes the compiler to produce ANSI C-conforming
               declarations.

     +d        Do not inline-expand functions declared inline.

     +e[01]    Only to be used on classes for which virtual functions are
               present, and all the virtual functions are either defined as
               inline or pure.  In this circumstance, this option optimizes
               a program to use less space by ensuring that only one
               virtual table per class is generated.  +e1 causes virtual
               tables to be external and defined.  +e0 causes virtual
               tables to be external but only declared.  This option is
               ignored for any class that contains an out-of-line virtual

Cray C++ 1.0                         1                   Cray Research Inc.

CC(1C++)                                                                ( )

               function.

     -flow     Activates the Flowtrace feature.  (Equivalent to the cc -F
               option used by the Cray ANSI C Compiling System.)

     +i        Leave the intermediate ..c files in the current directory
               during the compilation process.  These files do not contain
               any preprocessing directives, although the files passed to
               the C compiler do. When templates are used, it causes the
               instantiation system to leave ..c files in the repository.

     +p        Disallow all anachronistic constructs.  Ordinarily the
               translator warns about anachronistic constructs; under +p
               (for ``pure''), the translator will not compile code
               containing anachronistic constructs.  See the AT&T C++
               Language System Product Reference Manual for a list of
               anachronisms.

     +w        Warn about constructs that are likely to be mistakes, be
               nonportable, or be inefficient.  Without the +w option, the
               compiler issues warnings only about constructs that are
               almost certainly errors.

     +xfile    Read a file of size and alignments created by compiling and
               executing szal.c.  The form of the created file is identical
               to the entries in size.h.  This option is useful for cross
               compilations and for porting the translator.  See the AT&T
               C++ Language System Release Release Notes for more
               information.

     The template instantiation system adds several options to CC.  These
     are specified on the CC line or by setting the environment variable
     PTOPTS.  For example, to permanently enable verbose mode, you would
     say:
     setenv PTOPTS -ptv

     -pta      Instantiate a whole template class rather than only those
               members that are needed.

     -ptn      Change the default instantiation behavior for one-file
               programs to that of larger programs, where instantiation is
               broken out separately and the repository updated.  One-file
               programs normally have instantiation optimized so that
               instantiation is done into the application object itself.

     -ptrpathname
               Specify a repository, with ./ptrepository the default.  If
               several repositories are given, only the first is writeable,
               and the default repository is ignored unless explicitly
               named.

     -pts      Split instantiations into separate object files, with one
               function per object (including overloaded functions), and
               all class static data and virtual functions grouped into a
               single object.

     -ptt      NOTE:  This option is obsolete in this release.

     -ptv      Turn on verbose or verify mode, which displays each phase of
               instantiation as it occurs, together with the elapsed time
               in seconds that phase took to complete.  Use of this option

Cray C++ 1.0                         2                   Cray Research Inc.

CC(1C++)                                                                ( )

               is recommended if you are new to templates.  With verbose
               mode, the reason why an instantiation is done and the exact
               CC command used are displayed.

     The preprocessor directives -I and -D work as they normally do, but
     must also be specified at link time, to pick up the various template
     and application type header files.

ENVIRONMENT
     The following are some of the user-settable environment variables:
     ccC                      C compiler (default: cc)
     cfrontC                  cfront (default: CCROOTDIR/cfront)
     cppC                     C preprocessor (default: /lib/cpp)

FILES
     file.[Cc]                C++ source file
     file..c                  optional cfront output
     file.i                   C++ source after preprocessing
     file.s                   assembly language file
     file.o                   object file
     a.out                    linked output
     /lib/cpp                 C preprocessor (see cpp(1))
     /bin/cc                  C compiler
     /lib/libc.a              standard C library
     CCROOTDIR/CC             C++ driver shell script
     CCROOTDIR/cfront         C++-to-C translator
     CCROOTDIR/patch or munch post-link editor
     CCROOTDIR/c++filt        name demangler for diagnostic messages
     CCLIBDIR/libC.a          C++ standard library
     CCLIBDIR/libtask.a       C++ coroutine library
     CCLIBDIR/libcomplex.a    C++ complex arithmetic library
     I                        colon-separated list of standard directories
                              for #include files

     The usual locations for the standard directories are as follows:
     CCROOTDIR                /usr/bin
     CCLIBDIR                 /usr/lib
     I                        /usr/include/CC

SEE ALSO
     cpp(1), cc(1), as(1), ld(1).
     Stan Lippman.  C++ Primer, Second Edition Addison-Wesley 1991.
     B. W. Kernighan and D. M. Ritchie.  The C Programming Language,
     Prentice-Hall 1988.
     Bjarne Stroustrup.  The C++ Programming Language, Second Edition
     Addison-Wesley, 1991.

DIAGNOSTICS
     The diagnostics produced by CC itself are intended to be self-
     explanatory.  Occasional messages may be produced by the assembler or
     link editor.











Cray C++ 1.0                         3                   Cray Research Inc.


-- 
PI at the User Help Desk Comp.Center U of Stuttgart, FRG      27 years to go ! 
SMTP: pi@rus.uni-stuttgart.de    Phone: +49 711 685-4828
X.400: pi@rus.uni-stuttgart.dbp.de     (aka Kurt Jaeger)


Date: Wed, 27 Jan 93 07:46:22 -0700
From: gam@beta.lanl.gov (Gim Mark)
Message-Id: <9301271446.AA14532@beta.lanl.gov>
To: mcafee@cs.stanford.edu
Subject: Re: Is there a C++ compiler for the Cray?
Newsgroups: comp.unix.cray
Organization: Los Alamos National Laboratory
Cc: gam@lanl.gov
Status: RO

Cray Research has recently released a native C++ compiler.  It's
said to be compliant with cfront 3.0.  Support for C++ code is
promised in a forthcoming version of CRI's debugger cdbx.

A single license costs $24K, or one can be rented for $350 per month.
There's a monthly support fee of $450 per license.  (These numbers came from our local Cray analyst.  I don't think they're special for Los Alamos.)

Graham Mark
Los Alamos National Laboratory
(505)667-8147


Date: Wed, 27 Jan 93 09:24:44 CST
From: toma@romulus.cray.com (Thomas Arneberg  {66642 CF/DEV})
Message-Id: <9301271524.AA02395@baritone.cray.com>
To: mcafee@cs.stanford.edu
Subject: Re: Is there a C++ compiler for the Cray?
Newsgroups: comp.unix.cray
Organization: Cray Research, Inc.
Cc: 
Status: RO

In article <1993Jan27.021040.19469@CSD-NewsHost.Stanford.EDU> you write:
>
>Hi everyone,
>
>Sorry if this is a FAQ, or is unrelated to this group, it's the ONLY
>cray group that I can find and I'm new to the Cray world.
>
>Our group is thinking about porting code to a Cray supercomputer and
>I need to find out whether the Cray supports C++.  If anyone is experienced
>with this or can help, I would greatly appreciate it!
>
>Chris
>mcafee@cs.stanford.edu

Here is a press release from last July. I'm just learning C++ myself, so I
can't answer many questions, but I do know that the C++ on the YMP will
support templates.

  - Tom A.
---------------------------------------------+------------------------------
;-) I'd rather be ____  Thomas R. Arneberg   | Internet: toma@cray.com
:-) singing in a |____| Senior IC Design Eng.| UUCP: ...!uunet!cray!toma
:-) Barbershop  _|   _| Cray Research, Inc.  | CLAIM TO FAME: Loni Anderson 
:-) Quartet!   (_)  (_) Chippewa Falls, Wisc.|   went to my high school 
---------------------------------------------+------------------------------



>From COLLEEN_DEGRIO@elroy.cray.com Thu Jul 30 07:50:07 1992
Subject: C++ News Release


MEDIA:  Chris Malecek, 612/832-5000
FINANCIAL:  Laura Merriam, 612/683-7395



OBJECT-ORIENTED SOFTWARE LANGUAGE NOW AVAILABLE
ON CRAY RESEARCH SYSTEMS

C++ Language Can Speed Application Development, Solution
Times

EAGAN, Minn., July 30, 1992 -- Cray Research, Inc., today
unveiled a compiling system that allows users to program in a
revolutionary computer language, making it faster and easier
to create application programs and solve complex scientific
and industrial problems on the company's supercomputing
systems.

The new compiling product, Cray C++ Compiling Systems 1.0,
places the supercomputer leader at the forefront of a trend
toward "object-oriented" programming, according to Irene
Qualters, Cray Research vice president of software.  The new
compiler allows Cray Research system users to program in the
latest version of C++, an evolving computer language that is
based on object-oriented programming.  This programming
approach allows users to create supercomputer-level software
applications using the familiar objects of their disciplines.

For example, chemists are interested in atoms and molecules;
auto engineers work with chassis parts, engines, or other
automotive components; and mathematicians are concerned
with matrices.  C++ allows such users to program in these
terms, resulting in data structures that more closely mimic
the real-life behavior of these objects.  Once created, the data
structures -- referred to as "objects" -- can be linked like
building blocks to create full applications programs.  The
objects can then be stored for reuse or further development
work, and can be shared with other researchers.  More
traditional programming approaches can require users to spend
weeks or months redefining data structures for each new
application.

Cray C++ Compiling System is an enhanced supercomputer
version of UNIX Systems Laboratories' C++ Language System
3.0.1, and operates in conjunction with the existing Cray
Standard C Compiler.  The new Cray Research product runs on
all of the company's supercomputer systems, from the entry-
level CRAY Y-MP EL system to the top-of-the-line CRAY Y-MP
C90 system.  Cray Research has licensed the new product to
two undisclosed customers.

Qualters said the Cray C++ Compiling System includes "class
libraries," or blocks of ready-made software code, for agreed-
upon concepts such as I/O streams and complex numbers.  With
class libraries, programmers can more quickly develop new
applications software and have more time to focus on high-
level concepts in their disciplines, she said.

"Cray Research is in the business of providing fast solutions
through high-performance simulations," Qualters said.  "We are
always looking for ways to make our supercomputer systems
easier to use so that customers can harness the power of these
systems.  This new object-oriented programming language will
make it quicker and easier to develop more effective solutions
for existing problems, as well as for complex, emerging
problems."

According to Cray Research, object-oriented programming is
an evolving programming method in the high-performance
computing arena.   Last month, the company announced Cray
Research IRIS Explorer, an object-oriented application building
environment based on Silicon Graphics' IRIS Explorer software
product, which was written in C++.  "Advanced application
tools like Cray Research IRIS Explorer would not be possible
without C++," Qualters said.  "We view this programming
approach as an important standard for the future."

"Several of the code development projects at Sandia National
Laboratories are using object-oriented programming
techniques to meet the challenges of quickly developing defect-
free software with limited resources," said Mike McGlaun,
manager, computational physics research and development at
Sandia Laboratories.  "These codes include three-dimensional
shock physics codes, three-dimensional fluid dynamics codes,
and three-dimensional mesh generation codes.  Our C++ codes
are running efficiently on our CRAY Y-MP system, our
workstations, and our massively parallel computers.  C++
represents the best compromise between efficiency and
functionality.  Object-oriented programming is giving us a
competitive advantage in today's complicated world."

Cray Research now provides industry-leading optimizing
compiling systems for C++, C, Fortran, and Ada on the
company's full supercomputer product line.  The optimizing
compilers automatically vectorize and parallelize software
code to take advantage of these capabilities of Cray Research
supercomputing systems, leading to faster solutions.

Cray Research compiling systems enable scientists and
engineers to write efficient computer programs using standard
languages, without having extensive knowledge of the
supercomputer hardware.

Cray Research creates the most powerful, highest-quality
computational tools for solving the world's most challenging
scientific and industrial problems.



From: pommy@research.att.com
Date: Wed, 27 Jan 93 11:29 EST
To: mcafee@cs.stanford.edu
Subject: Re: Is there a C++ compiler for the Cray?
Newsgroups: comp.unix.cray
Organization: AT&T, Bell Labs
Status: RO

Chris,

In article <1993Jan27.021040.19469@CSD-NewsHost.Stanford.EDU> you write:
>> Our group is thinking about porting code to a Cray supercomputer and
>> I need to find out whether the Cray supports C++.  If anyone is experienced
>> with this or can help, I would greatly appreciate it!

I have been using C++ on four different Cray machines for about two years now.
Cray Research Inc. does sell their port of cfront 3.0, but they charge a lot
of money for it.  Ask your on-site Cray analyst for today's price.

Claude

[ Note: I am not one of AT&T BL's C++ implementors. ]

-------------------------------------------------------------------------------
Claude Pommerell				 AT&T Bell Laboratories
					    Computing Science Research Center
<pommy@research.att.com>		   Computing Mathematics Research Dept.


Date: Wed, 27 Jan 93 11:41:37 EST
From: suchyta@pittpa.cray.com (Casimir J. Suchyta)
Message-Id: <9301271641.AA07963@pittpa.cray.com>
To: mcafee@cs.stanford.edu
Subject: C++ 
Status: RO

Chris,
There are other more knowledgable than I but Cray has a C++
compiler.  
CJ


Date: Wed, 27 Jan 93 10:48:58 CST
From: dew@juniper.cray.com (David Whitney)
Message-Id: <9301271648.AA23955@juniper15.cray.com>
To: mcafee@cs.stanford.edu
Subject: C++ on the Cray
Status: RO

Chris,

Cray has ported Cfront 3.0.1 to the Cray and does support it. However your
access to it will depend on the specific Cray machine that you are using
since some sites have elected to do their own port (usually version 2.1)
and may not be able to support you because of staff limitations.

If you have further questions, I'll try my best to answer them or find
someone who can.

-David Whitney
-Cray Research, Inc.
-dew@cray.com
-(612)683-5802