public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Jonathan Wakely <jwakely.gcc@gmail.com>
To: Lawrence Doctors <l.doctors@unsw.edu.au>
Cc: "gcc@gcc.gnu.org" <gcc@gcc.gnu.org>
Subject: Re: Curious Behavior with Fortran gfortran-10.2-catalina.dmg on macOS Big Sur Version 11.4
Date: Thu, 29 Jul 2021 12:30:15 +0100	[thread overview]
Message-ID: <CAH6eHdTR1qPOJhwmZJze0i0boZNnm7jyz=93kFnjXymck7No3g@mail.gmail.com> (raw)
In-Reply-To: <SYBPR01MB43486C2046660B3C6FCF7D97B5EB9@SYBPR01MB4348.ausprd01.prod.outlook.com>

On Thu, 29 Jul 2021, 11:59 Lawrence Doctors, <l.doctors@unsw.edu.au> wrote:

> Dear Sir/Madam:
>
> I would firstly like to thank the folks at GCC for their fine work on
> developing the Fortran compilers, which I have been using for about 12
> years now, on a series of four MacBook Pro computers. In total, I have had
> over 50 years experience using Fortran, this being on a variety of
> different platforms. I therefore do consider myself as being a very
> experienced programmer.
>
> I have recently installed your gfortran-10.2-catalina.dmg on macOS Big Sur
> Version 11.4 with a 2.4 GHz 8-core Intel Core i9 processor. The computer
> has 64 GB 2667 MHz DDR4 of memory, with a disk capacity of 8 TB. During my
> previous experience, when I switched to a new computer on about six or
> seven occasions, most of my programs (now 553 in number) compiled
> successfully the first time, but some of the programs required minor
> modifications. On this occasion, I encountered the following new challenges:
>

This mail seems off-topic for this mailing list, which is about development
of GCC, see https://gcc.gnu.org/lists.html

The gcc-help or fortran mailing lists would be more appropriate.



> (1) I see that you now check consistency of the argument types and rank,
> in CALL statements. Thus, if an argument would normally be an array, but is
> unused in some CALL statements, my practice was to use a dummy argument
> with a short name, such as "d". This has worked for over 50 years without
> trouble. However, you now check for consistency. Obviously this was easy to
> fix, as I simple declared a dummy array in a DIMENSION statement with the
> name "d (1)", which solved the problem. On reflection, I would say that
> this is an improvement, because it forces the programmer to think carefully
> when writing the CALL statement.
>

Is this related to https://gcc.gnu.org/gcc-8/porting_to.html#fortran ?

Or maybe the item about dummy arguments at
https://gcc.gnu.org/gcc-8/changes.html#fortran



> (2) I encountered a curious failure on compilation with the following
> statement using integer arithmetic:
>       n= (m + 4)/5
> with the message
> Error: Integer division truncated to constant ‘2’ at (1)
> [-Werror=integer-division]
> f951: all warnings being treated as errors


>
This was a new warning in GCC 6, which is an error because you're using
-Werror to turn warnings into errors.

https://gcc.gnu.org/gcc-6/changes.html#fortran



This error only occurs if both (a) the value of  "m" would lead to a
> truncation (say 7 but not 6), and ALSO if (b) the value of "m" was set in a
> PARAMETER statement. I can work my way around this difficulty by rewriting
> the statement as:
>       n= int ((1.0*m + 4)/5)
> but it does seem clumsy.
>
> (3) The new compiler seems to dislike large fixed DIMENSION statements,
> such as the following at the beginning of the program unit:
>       parameter (n= 1050000)
>       dimension a (n)
>
> The compiler then issues the following message:
>     3 |       dimension a (n)
>       |                 1
> Error: Array ‘a’ at (1) is larger than limit set by
> ‘-fmax-stack-var-size=’, moved from stack to static storage. This makes the
> procedure unsafe when called recursively, or concurrently from multiple
> threads. Consider using ‘-frecursive’, or increase the
> ‘-fmax-stack-var-size=’ limit, or change the code to use an ALLOCATABLE
> array. [-Werror=surprising]
> f951: all warnings being treated as errors


>
Again, you've turned a warning into an error.


I agree that the message is clear and I was able to follow the suggestion
> to use an ALLOCATABLE statement, but I still wonder why you consider the
> program unsatisfactory in the first place.


Because you asked for warnings to be errors.


I can understand (to some degree) why such a large array is frowned upon,
> because one should economize on the size of arrays. On the other hand, if
> the use of a large array makes the task of the programmer easier, it should
> be allowed.



It is allowed, that's why it's only a warning by default.

GCC provides various ways to control warnings/errors, see the manual.

Furthermore, an array size of 1000000 elements or so is very small,
> considering the size of the RAM and the disk available nowadays.
>
> I would be pleased if you have the time to respond and I would like to
> express my appreciation again for the considerable effort that your group
> has invested in the Fortran compilers over the years.
>
> Sincerely,
>
> Larry
>
> Lawrence J. Doctors
> Emeritus Professor
> Naval Architecture Program
> School of Mechanical and Manufacturing Engineering
> The University of New South Wales
> Sydney, NSW 2052, Australia
> Email: L.Doctors@UNSW.edu.au
> Telephone: +61-2-9371 4158
>
>

      reply	other threads:[~2021-07-29 11:30 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-29 10:58 Lawrence Doctors
2021-07-29 11:30 ` Jonathan Wakely [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAH6eHdTR1qPOJhwmZJze0i0boZNnm7jyz=93kFnjXymck7No3g@mail.gmail.com' \
    --to=jwakely.gcc@gmail.com \
    --cc=gcc@gcc.gnu.org \
    --cc=l.doctors@unsw.edu.au \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).