(j3.2006) (SC22WG5.4491) Ballot on N1866
Bader, Reinhold
Reinhold.Bader
Mon Jul 11 15:21:06 EDT 2011
Please answer the following question "Is N1866 ready for forwarding
to SC22 as the PDTR?"
Answer: Yes, but I recommend the following changes.
======================================================================
All suggested edits are against N1866.
(1) The PDF still contains a /Title entry with the value 11-146r1, as
well as a /Subject entry which appears inappropriate. This should
be fixed in the LaTeX source to say "TR29113" and "Type 2
Technical Report on Interoperability with C", respectively.
(2) [v, para 6] After "Procedure", add "s" (Clause 3 has its heading
correct)
(3) [9:9] Remove the "s" at the end of "Arguments" (there is only
one).
(4) [11:15-16] Move line break to before CFI_
(5) [11:25] Before "CFI_", insert "with "
(6) [12:12,14] Replace "equals" with "is equal to", twice; this
appears more consistent with later wording.
(7) [12:40] Replace "In a descriptor ... array" by "In a C descriptor
whose attribute member has the value CFI_attribute_unknown_size,"
Reason: It is already explained elsewhere [14:2] what the
attribute value means.
(8) Looking at NOTE 5.3 I find I dislike it. It should, if present at
all, rather point out what the general procedure on usage of the
macro is. Here is a suggested replacement text:
"NOTE 5.3
The CFI_CDESC_T macro is provided to support management of objects
suitable for use in Fortran within C, in particular by providing
the memory needed for the C descriptor itself.
The address of an entity declared using the macro is not
usable as an actual argument corresponding to a formal parameter
of type *CFI_cdesc_t without an explicit cast."
(Notes 5.7 and 5.8 give further information which therefore
needs no coverage here).
(9) Table 5.3 contains two error code macros, CFI_INVALID_EXTENT and
CFI_INVALID_SM which appear to be superfluous because no arguments
of type CFI_dim_t appear in the API any more. I therefore suggest
to delete these two error codes, and correct the description of
CFI_ERROR_OUT_OF_BOUNDS by replacing the text "A reference is out
of bounds" by
"A function argument is causing out-of-bounds references"
Quite generally, the description of the error codes refers to the
C descriptor instead of the function argument; this appears
inappropriate or at least incomplete for some of them.
(10) [16:21,22] After "allocatable" and "pointer" respectively, add
"variable".
(11) [17:27] After "dummy" add "=0" to suppress compiler grumble.
(12) In the description of CFI_establish, we've unfortunately omitted
the effect on the lower bounds if an associated pointer is
established. Suggested edit:
[18:34] after "contiguous array" add "; if the attribute argument
has the value CFI_attribute_pointer, the lower bounds of the object
described by /dv/ are set to zero"
(13) In NOTE 5.7, replace "the descriptor" by "a descriptor"
(14) NOTE 5.10 is not entirely correct. If the object is an unallocated
allocatable variable, it appears to be processor dependent whether
the object is contiguous.
Suggested edit: Replace "or CFI_attribute_allocatable" by ", or
which describes an allocated allocatable variable"
(15) [21:5] Replace "source->dim[0].upper_bound" by
"source->dim[0].lower_bound+source->dim[0].extent-1"
(an upper_bound component does not exist)
(16) [22:2] Replace "complex" by "_Complex"
(17) [22:9] Replace "CFI_type_double_complex" by "CFI_type_double_Complex"
(18) [25:4] In "braces .", delete the blank.
(19) [34:22/24] It seems inappropriate to introduce paragraphs 6 and 7 at
all in the places they are now. Suggestion: keep the whole section
in para 5, and have para 6 start at [34:25].
Regards
Reinhold
More information about the J3
mailing list