Hi Steve,

I currently do not, but I will contact appropriate personnel & try to get
one submitted soon.

--
Nathan


On Wed, Jan 16, 2019 at 8:24 PM Steve Kargl <
s...@troutmask.apl.washington.edu> wrote:

> Nathan,
>
> Thanks for taking an interesting in improving gfortran.  A
> scan of the bug database certainly suggests we can use the
> help particularly with coarray bugs.  Before we can go much
> further, do you have a copyright assignment on file the FSF.
> If not, please see https://gcc.gnu.org/contribute.html
>
> --
> steve
>
> On Wed, Jan 16, 2019 at 06:16:12PM -0600, Nathan Weeks wrote:
> > Hi all,
> >
> > To facilitate more complete Fortran 2018 failed images support, I'm
> > particularly interested in interested in seeing PR 87939 eventually
> > resolved (i.e., allow STAT= and ERRMSG= specifiers in FORM TEAM,
> > CHANGE TEAM, SYNC TEAM, END TEAM, and CRITICAL statements). To get the
> > ball rolling (I realize that the boat has been missed for this kind of
> > change in GCC 9 trunk), I've attempted the following patch (which,
> > since it was convenient to do while modifying FORM TEAM-related code,
> > also adds the NEW_INDEX= specifier to the FORM TEAM statement as
> > desired in PR 87326).
> >
> > This is the first gfortran patch I've attempted, and I certainly could
> > have made some noob mistakes, so verbose feedback would be
> > appreciated.
> >
> > A few comments:
> >
> > * In resolve.c, the newly-added functions that type check STAT= and
> > ERRMSG= arguments for FORM TEAM, CHANGE TEAM, and SYNC TEAM also add
> > (previously-absent) type checking for their TEAM_TYPE arguments. If
> > it's more appropriate, I could separate this change into its own PR.
> >
> > * The existing -fcoarray=lib implementation of CRITICAL acquires a
> > LOCK on a lock variable on image 1 (in the current team). However, a
> > CRITICAL statement stat-value of STAT_FAILED_IMAGE (i.e., the image
> > that enter the CRITICAL construct failed) is analogous to the LOCK
> > stat-value of STAT_UNLOCKED_FAILED_IMAGE (i.e., the image that
> > acquired the lock failed---see section 11.6.11 (7 & 10) in Fortran
> > 2018 draft N2146), whereas a LOCK STAT_FAILED_IMAGE means the image on
> > which the lock variable resides has failed (no analog in the CRITICAL
> > statement, which is oblivious to this underlying implementation). So
> > in addition to adding the stat value STAT_UNLOCKED_FAILED_IMAGE to
> > libgfortran.h & libcaf.h, I had CRITICAL swap a LOCK
> > STAT_UNLOCKED_FAILED_IMAGE for STAT_FAILED_IMAGE, and (perhaps
> > unimaginatively) a LOCK STAT_FAILED_IMAGE for
> > STAT_UNLOCKED_FAILED_IMAGE (which, while it has no defined meaning for
> > a CRITICAL statement, fits the definition of a "processor-dependent
> > value other than STAT_FAILED_IMAGE").
> >
> > * A couple negative tests for syntax errors (coarray_critical_2.f90 &
> > team_end_2.f90) fail due to spurious "Error: Expecting END PROGRAM
> > statement at (1)" errors that are also emitted by gfortran 8.2.0 as
> > well.
> >
> > Thanks,
> >
> > --
> > Nathan
> >
> > frontend:
> >
> > 2019-01-16  Nathan Weeks  <we...@iastate.edu>
> >
> >         PR fortran/87939
> >         PR fortran/87326
> >         * gfortran.h: Add an additional gfc_expr member to struct
> gfc_code.
> >         * libcaf.h: Add support for STAT_UNLOCKED_FAILED_IMAGE.
> >         * match.c (gfc_match_critical): Add STAT= and ERRMSG=.
> >         (gfc_match_change_team): Likewise.
> >         (gfc_match_end_team): Likewise.
> >         (gfc_match_sync_team): Likewise.
> >         (gfc_match_form_team): Add STAT=, ERRMSG=, and NEW_INDEX=.
> >         * resolve.c (resolve_form_team): New. Type check team-variable
> > argument in
> >         addition to new STAT= and ERRMSG= arguments.
> >         (resolve_change_sync_team): New. Adds type checking for
> team-value
> >         argument.
> >         (resolve_end_team): New.
> >         (resolve_critical): Add STAT= and ERRMSG=.
> >         * trans-decl.c (gfc_build_builtin_function_decls): Additional
> stat,
> >         errmsg, and errmsg_len arguments to _gfortran_caf_form_team(),
> >         _gfortran_caf_change_team(), _gfortran_caf_end_team(), and
> >         _gfortran_caf_sync_team(), and additional new_index argument to
> >         _gfortran_caf_form_team().
> >         * trans-stmt.c (gfc_trans_form_team): Support STAT=, ERRMSG=, and
> >         NEW_INDEX=.
> >         (gfc_trans_change_team): Support STAT= and ERRMSG=.
> >         (gfc_trans_end_team): Likewise.
> >         (gfc_trans_sync_team): Likewise.
> >         (gfc_trans_critical): Likewise. Also support assigning
> STAT_FAILED_IMAGE
> >         to a stat-variable.
> >
> > libgfortran:
> >
> > 2019-01-16  Nathan Weeks  <we...@iastate.edu>
> >
> >         PR fortran/87939
> >         * libgfortran.h: Add support for STAT_UNLOCKED_FAILED_IMAGE
> >
> > testsuite:
> >
> > 2019-01-16  Nathan Weeks  <we...@iastate.edu>
> >
> >         PR fortran/87939
> >         PR fortran/87326
> >         * gfortran.dg/coarray_critical_2.f90: New test
> >         * gfortran.dg/coarray_critical_3.f90: New test
> >         * gfortran.dg/coarray_critical_4.f90: New test
> >         * gfortran.dg/team_change_2.f90: New test
> >         * gfortran.dg/team_change_3.f90: New test
> >         * gfortran.dg/team_end_2.f90: New test
> >         * gfortran.dg/team_end_3.f90: New test
> >         * gfortran.dg/team_form_2.f90: New test
> >         * gfortran.dg/team_form_3.f90: New test
> >         * gfortran.dg/team_sync_1.f90: New test
> >         * gfortran.dg/team_sync_2.f90: New test
>
>
>
> --
> Steve
> 20170425 https://www.youtube.com/watch?v=VWUpyCsUKR4
> 20161221 https://www.youtube.com/watch?v=IbCHE-hONow
>

Reply via email to