On Wed, Feb 08, 2017 at 10:25:22AM +0100, FX wrote: > Hi Steve, > > I see Mikael has okayed the patch, but I did not have any > time to comment prior. I wanted to note that: > > - the choice was deliberate, as the standard allows us to > choose which real kind REAL128 corresponds to when there are > several matching choices. The idea behind the current choice > was to avoid forcing the use of slower soft-float arithmetic > when a hardware type existed. I don’t have a strong opinion > myself on the issue.
Yes, I considered that REAL128 would now be a software implementation. However, as an individual who works on FreeBSD, I found it rather unpleasing for i686-*-freebsd to map REAL128 to REAL(16) and x86_64-*-freebsd to map it to REAL(10). I also considered that some (many?, most?) users who don't look under the hood may expect REAL128 to map to a IEEE754 128-bit floating point entity where it has 113 bits of precision. > - This is a breakage of the ABI, so we want to write it in the > release notes, and in the doc about ISO_FORTRAN_ENV. The 6.3 manual has REAL32, REAL64, REAL128: Kind type parameters to specify a REAL type with a storage size of 32, 64, and 128 bits. It is negative if a target platform does not support the particular kind. (Fortran 2008 or later.) My patch does not change the above. I'll also note that with my patch REAL128 does not change with -m96bit-long-double, -mlong-double-64, or -mlong-double-80. So, the ABI is now stable. On my x86_64-*-freebsd system, gfortran6 does not include my unpatched and gfc7 is patches. % cat a.f90 program foo use iso_fortran_env REAL(REAL128) x print '(3(I0,1X))', kind(x), digits(x), precision(x) end program foo % gfortran6 -static -o z a.f90 && ./z 10 64 18 % gfortran6 -static -o z a.f90 -m96bit-long-double && ./z 16 113 33 % gfc7 -static -o z a.f90 && ./z 16 113 33 % gfc7 -static -o z a.f90 -m96bit-long-double && ./z 16 113 33 > - Is this appropriate for stage 4? I think it is appropriate as we already broke libgfortran for 7.0. I'll revert the patch as I can always maintain a local patches. -- Steve 20161221 https://www.youtube.com/watch?v=IbCHE-hONow