GCC/gfortran 4.7.0 release approaching - request for testing

32 views
Skip to first unread message

Beliavsky

unread,
Feb 2, 2012, 8:54:31 AM2/2/12
to GNU Fortran
Originally posted by Tobias Burnus in comp.lang.fortran
http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/022bd93834257d94#

Dear all,
Executive summary: GCC 4.7 will be soon released. It has better
polymorphism/object-oriented programming support, OpenMP 3.1,
generates faster code - and on the C++ side there are new
C++ 2011 features. Please test to ensure it won't regress
on your code.
The GNU Compiler Collection (GCC) and thus also gfortran
is in the stabilization phase which will lead to the
release of 4.7.0 in a couple of weeks.* (Stage 4, regression
and documentation fixes only.) Thus, the current development
version should be rather stable and regressions are likely to
be fixed quickly. Hence, it makes sense to check whether your
favourite software still compiles and runs - but you can also
play with the new features or run some benchmarks. Especially
welcome is feedback to the polymorphism support, which has
been extended and many bugs have been fixed. However, it still
have several known issues and lacks finalization subroutines
and unlimited polymorphism.
(* The release will be done when "it is ready". The release
date is currently planed for around mid-March. The exact date
depends on the number and severity of the regressions. But
the release manager also want to give the users some time to
actually find regressions before the release.)
Highlights of GCC 4.7.0 - general part:
* Improved performance, especially with -fstack-arrays. (This
Fortran flag is enabled by -Ofast, but can always be used
- if the system has a large enough stack.)
A good benchmark setting is: -Ofast -march=native -funroll-loops
A more conservative setting is
-O2 -march=native -funroll-loops -fstack-arrays
You may need to replace -march= by something different if you
use several different CPUs. You might also want to specify
-finline-limit=n (e.g. with n = 600) as GCC's inliner is not
yet well tuned for Fortran procedures (which tend to be larger
than C or C++ functions).
* Improved link-time optimization (LTO), i.e. optimization
across multiple .o files (compiled with gcc, g++, gfortran, ...).
With linker support also optimizing procedures called in
static libraries (.a). You need to use -flto both at compile
and at link time and you might want to combine it with
-fwhole-program.
* OpenMP 3.1 support
* Some new C 2011 features
* Several new C++ 2011 features
Fortran part:
* Fortran 2003: Much better support for object-oriented programming
and polymorphism. In particular: "Constructors", i.e. generic
functions which have the same name as derived types, are now
implemented. Additionally, polymorphic ("CLASS(dt)") arrays are
now supported - and many bugs have been fixed.
* Fortran 2008:
- DO CONCURRENT is supported
- Coarrays: Nearly full support for a single image (-
fcoarray=single)
with some issues with polymorphic coarrays remaining.
(Preparations
have been done to support multi-image coarrays, but this feature
is not yet functional.)
* Technical Specification (TS) 29113 on further interoperability
of Fortran with C (candidate draft)
- OPTIONAL is now allowed with BIND(C)
- RANK intrinsic
- ASYNCHRONOUS is compatible with TS 29113 (since 4.6)
- New compiler flag -std=f2008ts for Fortran 2008 plus technical
specifications
* Better backtracing - especially on non-GLIBC systems.
* Some new flags, see release notes
There were several other changes: Bug fixes, improved support for
embedded systems, improved compile-time diagnostic. Compared with
4.6, the number of new gfortran features is smaller, but the number
of patch commits only slightly dropped: In 2010 there were 557
commits
for the Fortran front end, in 2011 it slightly reduced to 478.
Latest 4.7 status email:
http://gcc.gnu.org/ml/gcc/2012-01/msg00337.html
Release notes:
http://gcc.gnu.org/gcc-4.7/changes.html
New Fortran features (for all releases):
http://gcc.gnu.org/wiki/GFortran#news
Binary versions (partially nightly builds):
http://gcc.gnu.org/wiki/GFortranBinaries
Some Linux distributions have also 4.7 build available, see e.g.
http://gcc.gnu.org/wiki/GFortranDistros
Like always, we are happy to hear about success stories, but
also bug reports and other comments are highly welcome.
And like nearly all open-source projects: New contributors are
highly welcome. There are many projects available - from simple
to fancy; they consist of documentation, multi-image coarray support,
polymorphism, IEEE support, better compile-time and run-time
diagnostic, small bug fixes, other remaining Fortran 2003/2008
and TS29113 features.
If you are interested in contributing or writing any comment, simply
reply - or send an email to the gfortran mailing list or a private
email. You can also join the #gfortran IRC channel at irc.oftc.net,
but it usually rather quiet there.
There will likely be again a Summer of Code program from April/May
to August/September - thus, if you are a student (bachelor, master,
Ph.D or similar) - or if you know such a student, this might be an
option to improve a widely used, well known program.
Tobias
Reply all
Reply to author
Forward
0 new messages