(j3.2006) Dummy arguments, asynchronous, volatile
Wed Apr 16 17:56:52 EDT 2008
On Wednesday 19 March 2008 14:04, Van Snyder wrote:
> Aleks has convinced me that the restrictions on asynchronous and
> volatile in 126.96.36.199p18, C1237-9, the mention of VOLATILE in C557, and
> C559 are nonsense.
At least concerning the restrictions on copying asynchronous objects, C1237-9,
I think the following is a fix: The rules should apply only and only if both
the actual and the dummy are asynchronous.
The book by John/Michael/Malcolm says, in short, that if all async stuff
happens inside the routine, the actual does not have to have the attribute,
only the dummy. In this case, there is absolutely no problem of any sort with
copying, so C1237-9 should not apply.
It also says that if there is no pending i/o when the procedure is called, the
dummy does not have to be async. Again, no problem with copy in/out.
Only when there is async i/o both in the caller and callee, as is the case
when the procedure starts an async operation that completes later, both dummy
and actual should have the attribute (this is not enforced by the compiler).
In this case copying is a problem and C1237-9 should apply.
Unless I hear otherwise, I will write a paper to modify C1237-9 accordingly.
Since we are relaxing them there is no conflict with F2003.
> What they're trying to achieve ought to be in notes,
> or maybe in Annex C. ?Perhaps Note 12.27 should be replaced by something
> like "The ASYNCHRONOUS and VOLATILE attributes for a dummy argument
> apply only to the dummy argument and not necessarily to the
> corresponding actual argument. ?Similarly, the ASYNCHRONOUS and VOLATILE
> attributes for a dummy argument apply only to the actual argument and
> not necessarily to the corresponding dummy argument (5.3.4, 5.3.19). ?If
> both the dummy argument and the corresponding actual argument have the
> ASYNCHRONOUS or VOLATILE attribute, the volatility or asynchrony of the
> actual and dummy arguments are independent." ?Otherwise, we don't really
> believe 5.3.4p4 and 5.3.19p2, so we ought to delete them.
Aleksandar Donev, Ph.D.
Lawrence Postdoctoral Fellow @ Lawrence Livermore National Laboratory
High Performance Computational Materials Science and Chemistry
E-mail: donev1 at llnl.gov
Phone: (925) 424-6816 Fax: (925) 423-0785
Address: P.O.Box 808, L-367, Livermore, CA 94551-9900
More information about the J3