fortran-lang / fpm

Fortran Package Manager (fpm)
https://fpm.fortran-lang.org
MIT License
868 stars 97 forks source link

Compiler support and recognition #223

Open awvwgk opened 3 years ago

awvwgk commented 3 years ago

Came up in #220.

At some point we might have to determine which compiler is used with fpm, therefore I tried to collect some information on the various Fortran compilers around. I only have first hand access to a fraction of them, so most of these information are second hand from HPC documentations or build systems.

Feel free to correct or add information to this table. Alternatively, we could move this table to the wiki.

vendor Fortran compiler C compiler Module output directory Module include directory OpenMP Free for OSS
Gnu gfortran gcc -J -I -fopenmp :heavy_check_mark:
Intel ifort icc -module -I -qopenmp :heavy_check_mark:
Intel (Windows) ifort icc /module:path /I /Qopenmp :heavy_check_mark:
Intel oneAPI ifx icx -module -I -qopenmp :heavy_check_mark:
PGI pgfortran pgcc -module -I -mp :heavy_check_mark:
NVIDIA nvfortran nvc -module -I -mp :heavy_check_mark:
LLVM flang flang clang -module -I -mp :heavy_check_mark:
LFortran lfortran --- ? ? ? :heavy_check_mark:
Lahey/Futjitsu lfc ? -M -I -openmp ?
NAG nagfor ? -mdir -I -openmp :x:
Cray crayftn craycc -J -I -homp ?
IBM xlf90 ? -qmoddir -I -qsmp :heavy_check_mark:
Oracle/Sun ? ? -moddir= -M -xopenmp ?
Silverfrost FTN95 ftn95 ? ? /MOD_PATH ? ?
Elbrus ? lcc -J -I -fopenmp ?
Hewlett Packard ? ? ? ? ? discontinued
Watcom ? ? ? ? ? discontinued
PathScale ? ? -module -I -mp discontinued
G95 ? ? -fmod= -I -fopenmp discontinued
Open64 ? ? -module -I -mp discontinued
Unisys ? ? ? ? ? discontinued

For now it might be sufficient to only support GCC, since we only guarantee that fpm works when compiled with GCC right now.

First class compiler support requires access to the compiler to allow testing in a CI environment, some of the commercial compilers have free versions for open source developers available.

awvwgk commented 3 years ago

Overview of compilers known by the meson build system can be found here, actual implementation is here.

LKedward commented 3 years ago

Awesome, thanks @awvwgk this is super useful! I've edited to include Intel differences on Windows.

everythingfunctional commented 3 years ago

Thanks for putting this together. It will be invaluable as we try to support more compilers.

scivision commented 3 years ago
awvwgk commented 3 years ago

I found that Ubuntu Focal (ubuntu-20.04 image) has a flang package available.

scivision commented 3 years ago

This Ubuntu flang possibly came from Debian. It might be quite out of date i.e. syntax bugs that might make issues for modern Fortran packages.

rouson commented 1 year ago

@awvwgk This has to be the most comprehensive listing of Fortran compilers that I've ever seen. Bravo!

scivision commented 1 year ago

Yes I think this would be great for the WIki insetad of Issue. Also, PGI is now also discontinued, replaced by NVIDIA

awvwgk commented 1 year ago

Feel free to create a wiki page for it, the wiki should be still world-editable.

scivision commented 1 year ago

The wiki isn't world editable

awvwgk commented 1 year ago

That can be fixed. Try again.

scivision commented 1 year ago

Thanks, I put an updated version of this table at https://github.com/fortran-lang/fpm/wiki/Compiler-support