On Mon, Dec 16, 2024 at 04:53:42AM -0800, Damian Rouson wrote:
> including automatic GPU offloading.  Then a few months ago, the death blow
> that I couldn’t work around was robust support for kind type parameters.
> 

gfortran doesn't have robust kind type parameters?

% cat xx.f90
program foo
   use iso_fortran_env
   print '(A,*(I0,1X))', '         real kinds: ', real_kinds
   print '(A,*(I0,1X))', '      integer kinds: ', integer_kinds
   print '(A,*(I0,1X))', '      logical kinds: ', logical_kinds
   print '(A,*(I0,1X))', '    character kinds: ', character_kinds
end program foo
% gfcx -o z xx.f90 && ./z
         real kinds: 4 8 10 16
      integer kinds: 1 2 4 8 16
      logical kinds: 1 2 4 8 16
    character kinds: 1 4
% ../tmp/lfortran/work/bin/lfortran -o z xx.f90
Segmentation fault (core dumped)
% root/build/bin/flang -o z xx.f90 && ./z
         real kinds: 2 3 4 8 10
      integer kinds: 1 2 4 8 16
      logical kinds: 1 2 4 8
    character kinds: 1 2 4

So, flang supports IEEE binary16 and brain float16, which makes
sense as Nvidia has a vested interest in these types.  flang
does not support IEEE binary128; while gfortran does.  flang
also has an additional character kind type.  Are you doing
work with 'CHARACTER(KIND=2)' while not needing a 16-byte
logical kind type?

Or, perhaps, you care to qualify your generalization?

-- 
steve

Reply via email to