----- Original Message -----
> From: "Damian Rouson" <
dam...@rouson.net>
> To:
flan...@googlegroups.com
> Sent: Wednesday, May 20, 2015 12:19:08 AM
> Subject: [flang-dev] Re: Flang Development Priorities
>
>
> All,
>
>
> Looking at the Flang Development Tasks document, I wonder if there
> are sensible alternatives to the chronological approach of focusing
> first on standards that are 20 or more years old. For a project in
> its nascent phase, would there be any value in taking a more
> holistic view from the vantage point of modern Fortran rather than
> focusing on an older subset of the language first? More
> specifically, are there (1) toolkits that can help you leapfrog the
> stages in which you might get stuck with the chronological approach
> and are there (2) common pitfalls likely to befall you if decisions
> based on older standards calcify in a design that makes it harder to
> evolve to support the newer standards?
>
>
> Regarding (1) above, I'm thinking about tools such as the Open
> Fortran Parser (OFP). Section 2.3 of the Flang Development Tasks
> document is labeled Parser. The OFP's web site
> (
http://fortran-parser.sourceforge.net) states that it supports the
> Fortran 2008 standard. Could that save you some time?
I'm strongly against using OFP as our parser (with the exception that, assuming the licensing is acceptable, adapting regression tests from OFP could be a good idea). We really need to construct our own parser, following the best practices developed by Clang. These are the surest path to success in the long term. OFP's source quality is no where near Clang's (IMHO), brings in a dependency on ANTLR, and has a number of other issues. We already have a parser which supports large parts of F77 and F90, let's build on that.
> Likewise, the
> OpenCoarrays library (
www.opencoarrays.org) provides an open-source
> runtime library for coarray Fortran (CAF) compilers. OpenCoarrays
> already supports most of the Fortran 2008 standard and several
> features of the draft Fortran 2015 standard. (Full disclosure: my
> company contributes to the development of OpenCoarrays). These new
> Fortran 2015 features in particular have some enticing performance
> benefits over rolling your own parallelism, whether by the more
> common MPI/OpenMP approaches or by Fortran 2008 CAF.
This, on the other hand, is likely a very good idea.
>
>
> Section 2.6.2 of the Flang Development Tasks document states that
> support for CAF is a low priority. This worries me greatly. I have
> taught modern Fortran short courses, tutorials, and graduate courses
> to what I would roughly estimate are upwards of 500 developers at
> conferences, job sites, and universities worldwide and I would
> gladly share survey data from recent courses indicating that
> interest in CAF is high amongst people who have taken my classes.
> You don't need to support all of Fortran 2008 or even all of Fortran
> 2003 to support important aspects of CAF. The g95 compiler project,
> for example, layered CAF support on top of Fortran 95 and the GNU
> Fortran compiler layers CAF support on top of its currently partial
> support of Fortran 95, 2003 and 2008. In the multicore/many-core
> era, parallelism is of paramount importance and CAF offers a much
> cleaner, more portable alternative to the dominant approach of
> embedding MPI and OpenMP in source code. If you want to make a
> game-changing splash, I'd consider supporting it earlier in your
> development than it appears you're currently thinking.
Frankly, I think the only way we can make this a priority is if we have contributors (like you) who understand how CAF should be implemented. If we have people who understand how to do this "right", we can do it soon. Otherwise, it will take time.
>
>
> Likewise, now that Fortran is a modern, object-oriented programming
> (OOP) language and four compiler teams have announced full Fortran
> 2003 support (IBM, Cray, Intel, and Portland Group), anything that
> can help you jump quickly to supporting OOP will go a long way
> toward supporting present-day development. Even conservative
> development projects that mandate multi-compiler support as a
> minimum standard are now dropping support for compilers that don't
> at least support Fortran 2003 (e.g.,
>
http://cgns.sourceforge.net/news.html).
>
>
> As a user who has been submitting multiple compiler bug reports or
> standards-based feature requests each month across a half-dozen
> compilers over the past 5-10 years, my outside viewpoint is that the
> biggest hurdle some of the compiler teams face stems from the fact
> that they are developing on top of a code base that dates back
> decades. You don't face that challenge. To take maximal advantage of
> it, you might consider tackling some of the more salient newer
> features of the language early rather than trotting along the
> well-worn path of supporting the standards in chronological order.
I don't disagree. Doing what you suggest, however, requires more work. So let's do it now. Following in chronological order has the advantage of providing a clear ordering of development tasks. This may be suboptimal, agreed, but then we need to replace it with something better. What do you suggest?
When I was supervising Alex's GSOC flang project, I suggested a set of goals based on target applications. Specifically we targeted netlib BLAS and LAPACK (and then, as a finishing touch, the F77 MPI header). That was all there was time for, but did result in supporting a mix of F77 and F90. I'm fine with continuing in this vein. But requires analyzing codes we wish to target to determine what features are necessary, and then developing a task list from that.
Thanks,
Hal
>
>
> Damian
>
>
>
>
> On Tuesday, May 19, 2015 at 8:36:09 AM UTC-7, John Leidel wrote:
>
>
> All, as promised, we crafted a basic list of development items that
> are of interest. We generated these items by analyzing the current
> code base and selecting items of high value to the list of known
> user communities. This document is not designed to be the end list
> of development items. However, it does serve as an excellent
> starting point to pushing Flang development forward. If you have
> comments, edits or would like to own any of the items documented in
> the list, please respond to the overall mailing list such that we
> can capture the discussion.
>
>
> Thanks again to Carlo Bertolli and Kevin O'Brien for help in crafting
> and reviewing this list!
>
>
> Best Regards,
> John Leidel
>
>
>
>
>
> --
> You received this message because you are subscribed to the Google
> Groups "flang-dev" group.
> To unsubscribe from this group and stop receiving emails from it,
> send an email to
flang-dev+...@googlegroups.com .
> To post to this group, send email to
flan...@googlegroups.com .
> To view this discussion on the web visit
>
https://groups.google.com/d/msgid/flang-dev/a7242d9c-a96e-40b2-9f3d-8ed9a3b978b2%40googlegroups.com
> .
> For more options, visit
https://groups.google.com/d/optout .
>
--
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory