From: John Appleyard on
We've just completed a major update of the Polyhedron Comparison charts
at www.polyhedron.com.

The comparisons cover 9 Linux compilers (Absoft, g95, gfortran, Intel,
Lahey, Nag, Pathscale, PGI and Sun) and 8 Windows compilers (Absoft,
FTN95 (Win32 and .NET), g95, gfortran, Intel, Lahey, Nag and PGI).

There are 16 execution speed benchmarks - each run under Windows and
Linux on 2 different machines, one with an AMD processor, and the other
with Intel.

In addition, there are test results for 50 code samples which exercise
the run-time diagnostic capabilities of each compiler, and 32 which
determine what extensions to standard Fortran they permit.

Thanks are due to the various compiler vendors for access to the
compilers and for other technical support, and to Carlos Segura of the
University Of La Laguna, Santa Cruz de Tenerife, who refined the testing
scripts and ran the tests. He also scoured the compiler documentation
to get the most out of each one, and managed the considerable feat of
getting all the compilers working at the same time!
--
John Appleyard - (send email to john.news@.. rather than spamtrap@..)
Polyhedron Software
Programs for Programmers - QA, Compilers, Graphics, Consultancy
********* Visit our Web site on http://www.polyhedron.co.uk/ *********
From: FX on
Hi John,

Congratulation on this update. Might I ask, for the Win64 benchmark,
whether you actually compiled code into 64-bit executables, or did use
32-bit executables (running under WoW64)?

Also, I'd like to suggest a modification: for "Full trace-back from
run-time errors" (in the Linux "Compiler Diagnostic Capabilities" table),
I think gfortran should have a "yes", because it does support output of
backtraces with option -fbacktrace (see documentation at
http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gfortran/Debugging-Options.html).

--
FX
From: John Appleyard on
FX wrote:
> Hi John,
>
> Congratulation on this update. Might I ask, for the Win64 benchmark,
> whether you actually compiled code into 64-bit executables, or did use
> 32-bit executables (running under WoW64)?
>

No - we made 32 bit executables.

> Also, I'd like to suggest a modification: for "Full trace-back from
> run-time errors" (in the Linux "Compiler Diagnostic Capabilities" table),
> I think gfortran should have a "yes", because it does support output of
> backtraces with option -fbacktrace (see documentation at
> http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gfortran/Debugging-Options.html).
>

I'll check it out. In general the requirement for a "Yes" here is that
the line number is specified for all routines in the call stack.
--
John Appleyard - (send email to john!news@.. rather than spamtrap@..)
Polyhedron Software
Programs for Programmers - QA, Compilers, Graphics, Consultancy
********* Visit our Web site on http://www.polyhedron.co.uk/ *********
From: FX on
> I'll check it out. In general the requirement for a "Yes" here is that
> the line number is specified for all routines in the call stack.

Compile with -g -fbacktrace, and you'll get it. Here's a small example:

$ cat a.f90
subroutine foo
call bar
end

subroutine bar
call gee
end

subroutine gee
character(len=10) :: s
s = "(I)"
write (*,s) 42.
end

program test
call foo
end

$ gfortran -fbacktrace -g a.f90 -std=f95
$ ./a.out
At line 12 of file a.f90 (unit = 6, file = 'stdout')
Fortran runtime error: Nonnegative width required in format
(I)
^

Backtrace for this error:
+ function gee (0x400CEB)
at line 12 of file a.f90
+ function bar (0x400C6A)
at line 6 of file a.f90
+ function foo (0x400C5A)
at line 2 of file a.f90
+ function test (0x400D2C)
at line 16 of file a.f90
+ /lib/libc.so.6(__libc_start_main+0xda) [0x2aaaab04f4ca]

--
FX