(j3.2006) (SC22WG5.4805) WG5 letter ballot 4 on Fortran 2008 interpretations
Robert Corbett
robert.corbett
Fri Sep 28 03:01:01 EDT 2012
The following Fortran 2008 interpretations are being balloted:
Yes No Number Title
-Y- --- F08/0043 Executing a type-bound procedure on a coindexed
object
-C- --- F08/0048 Sequence association for coarrays
--- -N- F08/0054 Requirements for needing an explicit interface
-Y- --- F08/0055 G editing for reals
--- -N- F08/0056 Non-polymorphic ALLOCATE with polymorphic SOURCE=
-Y- --- F08/0057 Interoperability with empty types
--- -N- F08/0058 ENTRY point RESULT variable
-Y- --- F08/0059 Auto-targetting requirements
-Y- --- F08/0060 Procedure pointer assignment with an EXTERNAL target
-Y- --- F08/0061 Description of the CONTIGUOUS attribute misworded?
-Y- --- F08/0062 Mixing default initialization with DATA
initialization
--- -N- F08/0063 G editing to a narrow output field
-C- --- F08/0064 STATUS of GET_ENVIRONMENT_VARIABLE
-Y- --- F08/0065 Should certain procedures in intrinsic modules be
pure?
-Y- --- F08/0066 Are certain expressions with pointer initialization
constant?
-C- --- F08/0067 Passing arrays of extended type objects
-Y- --- F08/0068 Pointer association and extended type arrays
-Y- --- F08/0069 Which part of an effective argument becomes
undefined?
-Y- --- F08/0070 Finalization of INTENT(OUT) arguments
-Y- --- F08/0072 Final subroutines with corank
-Y- --- F08/0073 Polymorphic auto-targetting
-------------------------
F08/0048 C
While I see no problem with implementing the feature as described in
the proposed interpretation, I would agree to defer approval of the
interpretation until after further consideration of Malcolm's
objections.
-------------------------
F08/0054 N
I think that the proposed interpretation is a misinterpretation of
what was intended by paper 02-144. As I have said before, I think
that the paper was sloppy in that it did not mean a procedure
reference when it used the term "referenced." I think that by
"referenced," it meant any use other than a declaration.
Nonetheless, I think the difference between the proposed
interpretation and what I think was intended in the paper is
small enough that I would not vote "no" on this interpretation for
that reason.
The reason I am voting "no" on this interpretation is that the
proposed edits are incorrect. The text of the relevant portion of
the standard is also erroneous.
I assume that the term "procedure identifier" is meant to include
operators and the names of procedures and procedure pointers. The
problem is that a generic identifier appears to fall under this
definition. A generic identifier does not have either implicit or
explicit interface. I do not see how the proposed edits apply in
the case of a generic identifier.
As I thought about the issue, I convinced myself that the property
of having implicit or explicit interface should apply only to the
names of procedures and procedure pointers, and not to procedures
themselves. Because of renaming, a single procedure can have more
than one name in a given scoping unit. The properties of each name
might be different. For example, a function F might be identified
by the names G and H in a scoping unit. The names of the dummy
arguments of G and H might be different.
-------------------------
F08/0056 N
I continue to oppose this interpretation. I think the functionality
it provides is too little to be worth the risk of misuse. I have yet
to think of a case where I would want use the functionality provided.
I can easily imagine cases where the wrong variable is used in the
SOURCE= specifier and the error goes undetected.
-------------------------
F08/0058 N
I continue to believe that removal of this restriction in Fortran 90
was deliberate. The restriction in FORTRAN 77 was intended to make
it easier to write one-pass compilers. Many such restrictions were
removed in Fortran 90. The restriction serves no purpose now.
The restriction in the FORTRAN 77 standard is in paragraph 2 of
Section 15.7.4.
-------------------------
F08/0063 N
This interpretation upends the meaning of item (5) in Clause 10.7.2.1.
A similar argument could be made against any application of item (5).
I am surprised anyone thinks that editing under an F4.5 edit
descriptor should be permitted to produce anything other than four
asterisks. Under the proposed interpretation, I have no idea what
should be expected as a result of editing under an F4.4 edit
descriptor.
-------------------------
F08/0064 C
There should be no "their" in the sentence
This relies on their being a difference between "no value" and
"zero-length value".
-------------------------
F08/0067 C
I agree that the program should not be standard conforming, and I agree
that the edit provided ensures that it is not. I do not agree with the
rationale given for the answer. Whether the invocation of SUB2 in SUB1
does or does not require the shape of A depends on the argument passing
conventions used by the processor. While all or almost all existing
Fortran processors use copy-in/copy-out to pass the array argument to
SUB2, the Fortran standard does not require a conforming processor to
use copy-in/copy-out. Other argument passing conventions exist that do
not require making a copy in this case. Those conventions do not
require the shape or size of A to be known.
More information about the J3
mailing list