Subject: HPFF-F90 and Conditional Compilation

From: [email-masked] (N ARUNASALAM)
Date: Sat, 5 Dec 92 11:08:29 -0800

Going through both the Metcalf F90 book as well as the HPPF Draft, I find
that there is no mention of Conditional Compilation. I recognize that
conditional compilation is peripheral to high performance computing
issues. However, as  HPF may well be the de facto Fortran standard of the 
90s and beyond, I'd appreciate it if the discussers would consider the 
possibility of including this feature in HPF.

In the industrial software environment that I am from,  conditional 
compilation is vital to efficient software maintenance. We could get by 
having separate source files for different platforms and for 
different projects. But this would create a "multiple maintenance" headache.
At present we get by using  the GNU-C preprocessor. This is not always
very convenient and there is no guarantee that it'll work for all  types
of FORTRAN programs.

Programmers in the academic community may not feel as great a need for
conditional compilation as those of us in the industrial community.
However, even in the academic world, conditional compilation will be of
benefit to those who wish to port their software to many different types
of hardware and software platforms (I am assuming that even with POSIX,
100% portability will remain an elusive goal).

Thanks for your consideration.

N "Aru" Arunasalam                    e-mail: [email-masked]
ABB Systems Control Inc.,
2550 Walsh Road,
Santa Clara, CA 95051

---

From: Bob Knighten <[email-masked]>
Date: Sat, 5 Dec 92 12:13:24 PST

Conditional compilation is not included in any programming language standard
because it necessarily transcends language issues.  The very existence of a
compiler is not part of the definition of a programming language, and
specifying the mannner in which the compilation is to depend on some aspects
of an environment that cannot be part of the language is a hopeless task.  For
example if HPF were to assume that programs were always compiled as part of a
POSIX environment, the specification might require that certain parts of the
source be compiled depending on the state of certain environment variables.
But even this is neither possible (as POSIX is certainly not a requirement for
HPF) nor even sufficient for good conditional compilation on a POSIX system.

After a substantial debate INCLUDE became part of Fortran 90, but it is not
actually of much value for portability because of the impossibility of a
portable specification of what is to be included.  Conditional compilation is
an even more extreme version of this same kind of problem.

There is some hope however.  It is likely that vendors will provide extensions
to the structured comment mechanism that is a basic part of HPF and this will
provide at least a limited conditional compilation facility.

Robert L. Knighten	             | [email-masked]
Intel Supercomputer Systems Division | 
15201 N.W. Greenbrier Pkwy.	     | (503) 629-4315
Beaverton, Oregon  97006	     | (503) 629-9147 [FAX]