This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [Patch, Fortran] PR25829: Asynchronous I/O (v2)
- From: Nicolas Koenig <nk at koenigni dot com>
- To: Rainer Orth <ro at CeBiTec dot Uni-Bielefeld dot DE>, Dominique d'Humières <dominiq at tournesol dot lps dot ens dot fr>
- Cc: gfortran <fortran at gcc dot gnu dot org>, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 5 Jun 2018 00:35:44 +0200
- Subject: Re: [Patch, Fortran] PR25829: Asynchronous I/O (v2)
- References: <E2F534AC-8E84-4C0F-B8A3-E7B230993428@lps.ens.fr> <ydda7sa61cr.fsf@CeBiTec.Uni-Bielefeld.DE>
Hi Dominique and Rainer,
First of all thanks for testing!
Hi Dominique, Nicolas,
I have applied your patch on top of revision r261130 on
x86_64-apple-darwin17 (SSD with APFS file system).
I've tried it on i386-pc-solaris2.11 and sparc-sun-solaris2.11.
I also see two regressions
FAIL: gfortran.dg/f2003_inquire_1.f03 -O1 execution test
only with -m32 and -O1 (STOP 5), and
It fails for me at -O[0s] (i386) resp. -O[01] (sparc), 64-bit only.
This seems to be a bug in the test suite. It tries to find out whether
an id is pending that is never initialized.
FAIL: gfortran.dg/f2003_io_1.f03 -O*
with both -m32 and -m64 (STOP 1).
Same here: FAILs at -O[0-3s] for both 32 and 64-bit.
And another bug in the test suite. This time the wait after the read is
missing.
The is also typos for the added tests
s/libgfomp/libgomp/
Will fix.
Why do the tests start at asynchronous_6.f90?
Because they were originally intended for the gfortran test suite, but I
couldn't run it there because of libpthread. I will change the numbering
scheme.
... and asynchronous_9.f90 is missing from the ChangeLog, which
..._7.f90 is missing from the sequence.
asynchronous_7.f90 is a test for an error, but dg-shouldfail is not
working in libgomp. Dominique is looking into this.
Besides, I see
+FAIL: libgomp.fortran/asynchronous_6.f90 -O1 execution test
STOP 2
32-bit i386 only.
I have trouble replicating this bug even with -m32. Could you get some
more debugging info for the test on your machine?
+FAIL: libgomp.fortran/asynchronous_9.f90 -O execution test
32 and 64-bit i386 and sparc, no error message.
This file wasn't supposed to be a test case, that's why it is not in the
ChangeLog. It is a benchmark program, so it takes some time. Maybe a
time out? Could you maybe try running it outside the test suite?
Rainer
Dominique wrote:
> "Treat asynchronous variables the same as volatile, for now." could
probably simplified as
> "Treat asynchronous variables as volatile, for now."
Will do.
>
> I also wonder if
>
> + wrap_scalar_transfer (dtp, BT_INTEGER, p, kind, kind, 1);
>
> is correct without a cast to size_t for the last two arguments (and
for the last argument in other instances). Note that I am C challenged,
so forgive the question if it is stupid.
It atomatically casts based on the type information in the prototype in
io.h.
>
> Thanks for the nice work.
With pleasure! :)
>
> Dominique