Date: Sat, 11 Dec 2021 17:15:33 +0300 From: Mehmet Erol Sanliturk <m.e.sanliturk@gmail.com> To: Daniel Feenberg <feenberg@nber.org> Cc: Doug Hardie <bc979@lafn.org>, FreeBSD Questions Mailing List <freebsd-questions@freebsd.org> Subject: Re: Fortran exceptions Message-ID: <CAOgwaMuwQEmUXt1pH114mJC4sMh=b9RmSTEo5pW58kj1stBMbQ@mail.gmail.com> In-Reply-To: <e4dd7a6-225-fdda-9e59-c7219952a924@nber.org> References: <2A944692-2C5A-4AF0-9E26-34C2142C5E3E@lafn.org> <e4dd7a6-225-fdda-9e59-c7219952a924@nber.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--0000000000002ac4d505d2df7b99 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, Dec 11, 2021 at 4:46 PM Daniel Feenberg <feenberg@nber.org> wrote: > > On Fri, 10 Dec 2021, Doug Hardie wrote: > > > =EF=BB=BFI have a fairly large fortran program that I am trying to run = on flang. > > It almost works, but I am sure there are a few typos in it. I had to > > enter it by hand from a large listing. When it encounters a STOP, it > > displays several ieee exception messages. Unfortunately there is no wa= y > > to identify where those occurred. How can I get the runtime to stop > > when an exception occurs. This is on FreeBSD 13.0 release with whateve= r > > flang is in the ports. > > I have found valgrind helpful with gfortran - I don't know if it works > with flang. > > https://valgrind.org/docs/manual/manual-core.html#manual-core.whatdoe= s > > Flang can apparently generate code suitable for the gdb debugger, which > can be useful. > > https://www.sourceware.org/gdb/ > https://undo.io/resources/debugging-fortran-code-gdb/ > https://www.scivision.dev/fortran-debugging-gdb/ > > > Finally, if you can use gfortran, there are many options to improve > runtime checking. You might be interested in --fpe-trap. > > https://gcc.gnu.org/onlinedocs/gfortran/Debugging-Options.html > > As far as I can tell, flang has no equivalents, but I haven't used flang. > It wouldn't install for me from ports or pkg's. Both complained my versio= n > of Freebsd (12.1) was unsuitable. > > Back in the 1970s there used to be the Watfor-77 compiler for the IBM 360= , > and later for Windows, which would check for uninitalized variables, > subscripts out of range, type mismatches in subroutine calls, etc and > provide a clear error message with no need to interpret hex constants. Bu= t > compiler writers don't like to provide what they consider to be crutches > for people less competent than themselves, so runtime error checking is > usually neglected, sometimes vigorously. The IBM Fortran G compiler I > first used in 1972 ran in 16K and provided a better error traceback than > any currently available compiler I am familiar with except one: > > https://www.silverfrost.com/ > > Silverfrost does detect and report most runtime errors, but it is Windows > only. Worth the money for many users, if you can stand working in > Windows. The debugged program can go back to FreeBSD. > > This question might better go in a fortran-specific mailing list: > > https://groups.google.com/g/comp.lang.fortran > https://fortran-lang.discourse.group/ > > Daniel Feenberg > NBER I have used the Silverfrost free compiler for many years in the past . It is an usual compiler in the following sense : It is giving errors in many syntaxes which are not errors in Fortran . For example ( from MEMORY after many years , but concepts are true ) : Double Precision X , Y . . . If ( X .EQ. Y ) ... Error : In floating point , equality of X and Y may not be possible due to trailing bits generated randomly in electronic circuits Then , "correct" statement is : If ( DABS ( X - Y ) .LT. 1.0D-100 <--------- A threshold value or variable for ZERO ... ) ... And other such very useful messages which related to the "pitfalls" of possible , undetectable errors by "eye" . This means that , a program compiled with Silverfrost and run ( its run time errors are corrected ) is likely that it will work correctly when compiled with other compilers in any operating system . Especially "thank you" to Daniel Feenberg for his very nice message . With my best regards , Mehmet Erol Sanliturk --0000000000002ac4d505d2df7b99--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOgwaMuwQEmUXt1pH114mJC4sMh=b9RmSTEo5pW58kj1stBMbQ>