Subject: Re: an implementor's questions about FORALL

From: David Loveman <[email-masked]>
Date: Fri, 22 May 92 04:48:23 PDT

>> 
>> Comment:  There are currently three definitions of FORALL
>>      Appendix F of S8.104 (Fortran 8x)
>>      MasPar (DECmpp) Fortran
>>      TMC Fortran
>> I believe we should give a precise definition of FORALL, based on the
>> UNION (INTERSECTION?) of these three existing definitions + whatever
>> else we want to add in HPF.  This will take some language lawyering,
>> but will be worth it.
>> 
>
>Could someone explain the differences between the three FORALL
>definitions?  I thought that the MasPar/DECmpp and TMC definitions
>were equivalent.  In particular, 
>	1. Is the difference just in what restrictions are placed on
>	the FORALL body in each case?
>	2. Or are there examples where the same body gives different
>	results under different definitions?
>Note that taking the union of the definitions is (maybe) practical
>under the first condition, but impossible under the second.

COMPASS implemented FORALL in its compiler technology based on the
definition in Appendix F of S8.104 (Fortran 8x).  This COMPASS compiler
technology is the base technology for the TMC, MasPar, and DECmpp
Fortran compilers.  As a result, the definitions are "the same" except
for some wording differences, and they meant the same since the base
implementations were the same.

These compilers have been evolving on their own for a while, so there
may be some slight divergence but, I think, the three companies (TMC,
MasPar, and Digital) all "know what they mean" when they say "FORALL." 
The major evolution efforts have been to handle progressively more
FORALL cases in parallel.  

My concern is that, assuming HPF is successful, there will be other
compilers developed that will contain FORALL.  The developers of those
compilers will base their definition on the HPF definition and may not
"know what we mean" when we say FORALL.  Thus it is in all our
interests to get the HPF stand-alone definition of FORALL accurate,
especially since the S8.104 definition is in a somewhat obsure place.

I hereby volunteer (fool that I am) to try such a draft.

-David