(j3.2006) [Fwd: Fortran 2008 query]

Van Snyder van.snyder
Fri Oct 27 13:58:02 EDT 2017


On Fri, 2017-10-27 at 16:21 +0000, Bill Long wrote:
> > On Oct 26, 2017, at 7:56 PM, Van Snyder <Van.Snyder at jpl.nasa.gov>
> wrote:
> > 
> > On Thu, 2017-10-26 at 21:47 +0000, Bill Long wrote:
> >> Future memory schemes will involve (faster) memory incorporated
> into the processor chip, or stacked very close.  And less memory/chip.
> With more cores, definitely less memory/core.
> > 
> > This is almost irrelevant to compiling long statements or even long
> definitions of named constants.  There will almost certainly be more
> memory per node.  
> 
> I do not understand why you think that.

Because compiling is not a massively parallel problem.  It does not need
thousands of cores per gigabyte of RAM.  It works acceptably well with
one core.  Even with parallel make, it isn't a coarray problem, but an
old-fashioned multiprogramming problem.

I suspect memory per node will increase until we reach the current
shared-memory processor addressing limit.  Maybe memory per core will
decrease, but that would be because cores per node will increase, not
because memory per node will decrease.  Anyway, that's irrelevant to the
compiling problem.

> > And nobody is advocating gigabytes in a named constant.  
> 
> A gigabyte is way smaller than ?unlimited? which is what some are
> advocating. 

What unnamed source is advocating a gigabyte named constant straw man?
Give me an example from an existing program wherein it had to be
decomposed into multiple named constant declarations, or DATA statements
were used to circumvent the limitation.

Nobody.

> > Stop the exaggeration.

> There is no responsible way to say ?unlimited? in the standard. 

In 1986 Jeanne Adams explained that there was a maximum statement length
in the standard so processors would use that as a minimum.  That
explanation seemed weird to me at the time.

There is no required minimum for parentheses or construct nesting depth,
of "complexity of a program."  Those would be stated as maxima, for the
reason Jeanne explained.

>  Instead, we say processor dependent, with a required minimum, which
> is what I proposed and you rejected.

I rejected your proposed limits, which are stated in the standard as
maxima, not minima.

> I don?t think Fortran is as cripplingly restrictive as you seem to
> think.  I?d be open to numbers like 1023 or 4095.  

Although four and 16 times larger than current practice, these numbers
are already too small.  If we must have a limit, at least make it larger
than anybody needs today by a factor of ten.  I proposed 9999 for 2003.
I have a program that would use up 2/3 of that.  A limit of 99999 on
statement continuation length would not strain any present or future
compiler's platform.

As somebody (Tom?) recently pointed out, some processors do not have a
fixed statement continuation limit, except perhaps in strict standard
conformance mode.  Just like with parentheses or construct nesting
depth, or program complexity, if the processor runs out of memory,
that's "processor dependent" without needing a too-small maximum number
in the standard.  The statement length limit ought to fall under the
rubric of "complexity of a program."





More information about the J3 mailing list