J3/15-137 To: J3 From: Malcolm Cohen Subject: Editorial corrections Date: 2015 February 18 1. Introduction This paper contains editorial corrections for 15-007. 2. Discussion (a) Note 8.28 still contains requirements (well, recommendations). This needs to be repaired. (b) The parsing of the BLOCK construct is ambiguous: BLOCK REAL :: x,y=3 DATA x/4/ ! specification or execution-part-construct? PRINT *,x,y END BLOCK this should be fixed. The best available fix is to use a more restrictive rule for the specification part, so that we can continue to use for the executable part (since this is supposed to be one of the "constructs containing blocks". 3. Edits [30:12] 2.1 High level syntax, R207 declaration-construct, Change "R207 <> " to "R207 <> <> <> \obs{<> } \obs{<> } R207a <> ", [30:14] Same subclause and rule, Delete "<> ", [30:21-22] Same subclause and rule, Delete (obsolescent) "< <> ", [31:3] Same subclause, R212 other-specification-stmt, Delete "<> ". {Break up rule for , without changing the effect. The new is the set of declaration constructs that are not also execution part constructs. Note that was ONLY referenced by , so it is safe to move the DATA statement out of it into .} [121:16] 6.2 Variable, p1, Change "the target of " To "the target of the pointer resulting from the evaluation of ; this pointer shall be associated." {We changed the syntax but forgot to change the subsequent witter. We ought to explicitly require the function to return an associated pointer.} [173:15] 8.1.4 BLOCK construct, R807 block-construct, "" -> "". [173:18+] Same subclause, after R808 block-stmt, insert new rule "R808a <> [ ]... [ ]... [ [ ]... ]". {New syntax for the specification part of a BLOCK construct, excludes the (not allowed), and if there are any s, ends with the last of them, i.e. does not absorb any DATA or FORMAT statements between the last proper specification statement and the first executable statement.} [173:20-21] Same subclause, C807, Change "" to "", delete "IMPLICIT,", and delete (obsolescent) "statement function,". {New syntax term, and remove the prohibitions that are both now excluded by the new syntax term.} [174:8] Same subclause, p3, Leave "its specification part" as is. {No change is needed; the new syntax term being "block-specification-part", and this being a BLOCK construct, it's completely obvious that we can only be talking about the and not the nonexistent .} [189:16] After "processor-dependent manner.", Move the first sentence of NOTE 8.28 paragraph 1, and the entirety of paragraphs 2 and 3, to here, without paragraph breaks: i.e. insert "If the is an integer, it is recommended that the value also be used as the process exit status, if the processor supports that concept. If the in a STOP statement is of type character or does not appear, or if an is executed, it is recommended that the value zero be supplied as the process exit status, if the processor supports that concept. If the in an ERROR STOP statement is of type character or does not appear, or if an is executed, it is recommended that a processor-dependent nonzero value be supplied as the process exit status, if the processor supports that concept." [189:19+5-14] Delete moved text from above edit, leaving the entire contents of NOTE 8.28 as "If the integer is used as the process exit status, the processor might be able to interpret only values within a limited range, or only a limited portion of the integer value (for example, only the least-significant 8 bits).". {Normatise requirement in note.} [286:21] 12.4.3.4 IMPORT statement, C1216, "IMPORT ALL" -> "an IMPORT, ALL statement". {Add missing comma; make more verbose to aid comprehension, since the comma is Fortran syntax not a sentence comma!} [287:12+2,5] Same subclause, NOTE 12.5, "IMPORT NONE" -> "The IMPORT, NONE statement", {text} "IMPORT NONE" -> "IMPORT, NONE". {code} [287:12+9,15] Same subclause, NOTE 12.6, "IMPORT ALL" -> "The IMPORT, ALL statement", {text} "IMPORT ALL" -> "IMPORT, ALL". {code} [287:12+20] Same subclause, NOTE 12.8, "IMPORT ONLY" -> "The IMPORT, ONLY statement". {text} {Add missing commas.} [405:26] 13.8 "Standard modules" -> "Standard intrinsic modules". {This better describes the contents of 13.8, and is more like the other subclause headings in c13.} [453:16,18] 15.3.7p2, "CFI_desc_t" -> "CFI_cdesc_t", twice. {Typo.} ===END===