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
>
>
prev parent 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).