(j3.2006) WG23 Fortran Annex Draft

Dan Nagle dannagle
Mon Jun 8 21:52:44 EDT 2009


Hi,

Thanks.  I've incorporated (at least most of) your comments.
I'll post the new version in Tutorials.

On Jun 8, 2009, at 8:57 PM, Van Snyder wrote:

>
> On Mon, 2009-06-08 at 13:20 -0700, Dan Nagle wrote:
>> Hello,
>>
>> I have put Fortran_Annex.txt in the Tutorials folder
>> in the members area on the server.  I will forward it to the WG23
>> Editor,
>> hopefully, this week.  I would appreciate any comments anyone
>> has the time to make.
>
> In general, unless WG23 is using a different ISO dictionary, "may"
> should be "might".  "May" gives permission; "might" indicates more  
> than
> one possibility.
>
> The second paragraph of General Terminology should state that a
> processor is required to report errors that can be detected by  
> reference
> to the numbered syntax rules **and constraints**.
>
> The third paragraph of 3.1.4 recommends that the entire definition  
> of a
> common block should be in one statement.  It's more likely possible  
> now
> that 99 lines of 255 characters each are allowed for a single  
> statement,
> but it's not guaranteed to be possible, which is why multiple  
> statements
> are allowed.  Perhaps add "If multiple statements are used to  
> declare a
> single common block, they should be contiguous, or perhaps separated
> only by comments."
>
> 3.2.5 is the only 3.x.5 with "None."  Most are simply empty.
>
> 3.5.2 needs "might" after "therefore".
>
> I consider 3.10.4 and 3.10.5 to be bad advice.
>
> The first paragraph of 3.11.2 needs "numeric" before the first "type".
> It wouldn't hurt to separate real and complex from integer, and  
> explain
> larger WHAT? in both cases.
>
> In the second paragraph of 3.11.2, "name" should be "designator" to
> cover the case of array elements, components, or complex parts.
>
> The second paragraph of 3.11.5 and 3.15.5 aren't necessary, unless  
> there
> are processors that can't represent 1.0/epsilon(1.0) - 1 as an  
> integer.
>
> 3.13.5 invites an annoyance that would be more likely to provide  
> enough
> clutter to obscure something important than to provide a useful  
> warning
> of a problem.  An option to ask for it might be useful, but  
> requiring it
> is not helpful.
>
> Add "Fortran uses the term <rank> for the number of dimensions of an
> array." as a first sentence of 3.17.1.
>
> "Indexes are undefined outside the bounds" should be "Using subscripts
> with values outside the bounds is prohibited" in 3.17.1.  Is it
> necessary to add "An index is called a subscript in Fortran"?
>
> Add ", automatic, or fixed shape" after "allocatable" in 3.17.4,  
> 3.18.4,
> 3.19.4, 3.20.4.
>
> Add "Consider adding a requirement to provide an option to check that
> subscripts are within bounds."
>
> 3.24.4 does not address the question of "Dangling reference to heap"  
> as
> I understand it.  I understand the title to mean using a pointer to  
> try
> to reference something that has been deallocated using a different
> pointer.  Strategies to avoid the vulnerability might be
>
> "Avoid associating more than one pointer with an object.
> Avoid associating a pointer with an allocatable object.
> Always allocate and deallocate using the same pointer if more than one
> can be associated with an object.
> "
>
> 3.26.1 is incorrect.  Allocatable variables and dummy arguments can be
> polymorphic.
>
> Add ", not that the variable is initialized whenever the scope in  
> which
> it is declared is entered" at the end of 3.27.1.
>
> The implications of "changing the storage class" in 3.27.5 are obscure
> and indirect.  "Fortran might consider a way to supply an initial  
> value
> for a variable every time the scope in which it is declared is  
> entered."
>
> Delete "an" before "problematic" in 3.31.1.
>
> Replace "when" by "if" in 3.31.4.
>
> Add a paragraph "Prefer to use pure functions" in 3.31.4.
>
> 3.35.5.  Fortran already has deprecated the nonblock form of the DO.
>
> Insert "explicit interface and" before "argument intents" in 3.36.5.
>
> Add "Use interface bodies to describe external procedures" to 3.41.4.
>
> Add "Do not cause storage association of objects of different type by
> using common or equivalence" to 3.46.4.
>
> Add "or automatic" after "allocatable" in 3.47.4.
>
> 3.51.1 is not quite correct.  Fortran provides alternate returns  
> instead
> of block-structured exceptions.
>
>
> _______________________________________________
> J3 mailing list
> J3 at j3-fortran.org
> http://j3-fortran.org/mailman/listinfo/j3

-- 
Cheers!

Dan Nagle







More information about the J3 mailing list