J3/06-177 To: J3 From: Malcolm Cohen Subject: More editorial changes Date: 2006/05/03 1. Introduction This paper describes additional editorial changes which will be added to standing document 008, as well as describing the differences between 06-169 and 06-169r1. Those additional editorial changes which have been done to the 007 and which affect c05 are also included in 06-169r1. 2. Differences between 06-169 and 06-169r1 (excluding those noted in 3.) - Fixed broken cross-ref in the first sentence of 5.3.1. - Fixed "to received data" -> "to receive data" in 5.3.11, 1st para. - 5.3.11, Deleted the first of the paragraphs which started "The INTENT(OUT) attribute ...". (Left in by mistake - the second such paragraph covers everything.) - 5.3.12, Deleted extra space at the start of C533. Changed "generic name in one or more generic interfaces" to "generic name of one or more generic interfaces". - 5.3.20, Changed "to manage the interactions with the non-Fortran processes" to "to manage any interaction with non-Fortran processes" since there is not necessarily any interaction or indeed any non-Fortran process involved. 3. Additional editorial changes These changes have all been applied to the 007 sources and will therefore appear in 06-007. Note that many of these changes are mandated by the current ISO directives. - No more "Sections"; removed "Section" and ":" from the chapter titles, and all appearances of "Section" in the text have been changed to "Clause" or "Subclause" as appropriate. (And many occurrences of "section" to "clause", but not all.) - 7.1.8.2 Integrity of parenthese, changed the enormously ambiguous "The sections that follow" (i.e. the whole rest of the standard) to "Subclauses 7.1.8.3 to 7.1.8.7". which is what it actually meant. - 7.2 Interpretation of operations Introduced "7.2.1 General" in accordance with the ISO directives. Changed "... in the following sections" (i.e. the whole rest of the standard) to "in subclause 7.2". (Note that this is not ambiguous when one follows the ISO directives, a clause or subclause is the whole thing - there is never any text between 7.2 and 7.2.1.) - In Annex C, fixed a hard-coded "Section 7" to "Clause \ref{D7:Expressions and assignment}". Actually, I'm not sure that it would not be better to make those 7.2.1 (where array expressions are defined to be elemental), plus 7.4.1.3 (where intrinsic assignment is defined to be elemental) would not be better for this one.. - Deleted C.1.1 Intrinsic and derived types. It was ancient stuff about how "this standard" was different from F77, and was not referenced from the main text. - 13.8.2 introduced 13.8.2.1 "General", reworded "following subclauses" to "subclause 13.8.2". It will get reworded more quite soon. - We variously use "ONLY option", "ONLY qualifier", "ONLY clause" and "ONLY specifier", all to mean the same thing. And "ONLY keyword". Changed them all to "ONLY option". - Changed three "If RESULT is specified" to "If RESULT appears". - 15.2, introduced 15.2.1 General and changed "The following subclauses" to "Clause \ref{D15:Interoperability between Fortran and C entities}". - 1.4 item (4), Changed "through" to "to". "Through" is not grammatical. (This change also improves the typesetting.) - Revised many lists to conform with the ISO directives (except for the one about when to use letters and when to use numbers). Thanks to Van for his help with this. [xiii] introduce by a complete sentence. [1:21-24] begin each item in lower case [1:27-2:7] begin each item in lower case [2:13-32] add a colon after "if" and begin each item in lower case [3:14] replace colon by period [4:9] replace colon by period [4:40-41] introduce by a complete sentence [6:12-14] introduce by a complete sentence [7:9-10] Replace by prose. [7:12-16] Replace by prose. "this document" -> "this part of ISO/IEC 1539". [7:17-18] Advising our future selves via the standard is inappropriate. Revised to say what I think we mean: "A future revision of this part of ISO/IEC 1539 might delete an obscolescent feature if its use has become insignificant." I am not really convinced we need even that. [7:19-20] Delete. If we are convinced that a feature is so bad we want to delete it without putting it on notice for a revision, we will do so, regardless of this text. [7:22] Delete. Fortran processors are REQUIRED to support these features, advising them to "support these features as long as they are widely used" is completely pointless. [12:1-3] begin each item in lower case [13:7-8] Replace "A generic interface block may also be used to specify that procedures may be invoked" with "A generic interface block can also be used to specify that a procedure can be invoked" because: "may" is only for permission, "can" is for possibility and capability. [15:9-10] Delete "The ... following:" (the previous sentence already introduces the list, this fragment was redundant). [23:5-12] Rewrite into prose. This could be left as nested lists, but it is more straightforward as prose. [27:1] replace colon by period [41:5] Change "may be used only in the following ways:" to "shall be used only". [41:28] Change "following meaning:" to "following meanings.". [42:8] replace colon by period [43:7] replace "For the default character type, the only constraints on the collating sequence are the following:" with "The collating sequence of the default character type shall satisfy the following constraints." [59:3] replace colon by period [61:9] replace colon by period [62:10-14] replace semi-colons with commas, end item (2) with "and". [66:23] replace colon by period [74:2-8] lowercase items in list [77:7] delete colon [80:11] replace colon by period [81:9-12] begin each item in lower case [100:19] replace colon by period [112:23] replace colon by period [122:6-18] begin each item in lower case [122:23-37] begin each item in lower case [123:39-124:3] replace the intro by "The associated target object is referenced if a pointer appears as"; then begin each item in lower case. [124:18] replace colon by period [125:13-34] begin each item in lower case [126:24-127:19] begin each item in lower case [138:18] Make the first condition an item in the list of conditions instead of buried in the intro to the list of conditions. [138:19-139:1] begin each item in lower case [141:7] replace colon by period [141:18] replace colon by period [142:9-23] begin each item in lower case [147:3] replace colon by period [150:6-8] begin each item in lower case [150:12] replace colon with full stop. [155:6-10] end each item but the last with semicolon; end the last item with a full stop. [158:39] replace colon by period [163:11] change colon to full stop. [166:33] change colon to full stop. [167:11] replace colon by period [168:12-20] Replaced with complete sentences. [171:26-28] begin each item in lower case. End each item but the last with semicolon. End the last with period. [172:13-17] begin each item in lower case. Insert a comma before "or" at the end of the first item. [173:17,32] replace colon by period twice [174:23,35] replace colon by period twice [177:24] replace colon by period [194:6,25] replace colon by period twice [197:17] replace colon by period [199:7] replace colon by period. [201:12] replace colon by period. [201:23] replace "a value as follows:" by "the value" [205:26] delete "any of the following conditions are met:", begin each item in lower case, end each item but the last two with comma, and end the penultimate item with ", or". [216:38-217:2] change "in the following cases" to "when", delete "when" from each item, end the first item with comma, and end the second item with ", or". [217:14-25] begin each item in lower case [217:32-45] begin each item in lower case [218:6-20] replace the first item (1) if the pad mode has the value (a) YES, the record... (b) NO, the input list item becomes undefined, then begin remaining items in lower case. [218:24-30] begin each item in lower case [221:11-12] made the list a plain sentence. [221:18-22] begin each item in lower case [224:27-28] made the list a plain sentence. [226:33] replace colon by period [228:18-20] begin first item in lower case, end with semicolon, begin second and third items with "the letter", and the secod item with semicolon, end the third with period. [228:23] Delete "of" [228:24] Insert a comma. [237:16] replace colon by period [237:28] Replace "then" with comma. [237:29-32] begin each item in lower case [238:29-30] made it an ordinary sentence. [239:2-7] begin each item in lower case [240:7-11] begin each item in lower case [240:23-26] begin each item in lower case [240:34+ in NOTE 10.30] delete "the following:" and begin each item in lower case, end the first item with comma, end the second item with ", and" and end the third item with a full stop. [242:8-13] begin each item in lower case [242:35-36] made it an ordinary sentence. [243:1] Changed "Neither nor may have kind type parameters specified." to "A kind type parameter shall not be specified for or .". [243:8-13] begin each item in lower case [245:13-16] begin each item in lower case [245:22-27] begin each item in lower case [247:11-16] begin each item in lower case [252:19-24] begin each item in lower case [257:23-258:6] begin each item in lower case [270:8-12] begin each item in lower case, insert a comma before "and" at the end of the first item [270:16-19] begin each item in lower case, insert a comma before "and" at the end of the first item [272:31] replace colon with period [273:16] replace colon with period [276:25-277:6] delistify top level [277:7+] delistify using "Otherwise" a lot. Move the notes to the end of the subclause. [278:7-21] Delistify and simplify slightly. [278:23-30] Delistify and simplify slightly. [278:35] replace colon with "using the following criteria." [286:5-8] begin each item in lower case [286:26-34] delete "in the following contexts:", begin each item in lower case, replace semicolons by commas. [364:24-30] append "the following types." to the intro. Replace the comma after the type name that begins each item by "is". [364:31-39] append "the following." to the intro. Precede the type names with "The type". [365:5-9] make it an ordinary paragraph since it's a one-item list. [365:11] append "the following." [365:12-31] Delete "This exception" from each item and join the paragraph top the name of the exception, giving "IEEE_OVERFLOW occurs when...." [367:7] replace colon with period [368:18] replace colon with period [393:14-15] Delete colon, start each list item in lower case [394:1] delistify [394:16,395:19] wording quibble: replace "will be" by "is". [395:20-25] delistify. [400:5-18] replace semicolons by commas. delete comma before "and" in (2)(b) [405:9-14] begin each item in lower case [406:3-10] delete "following" and colon from the intro, begin each item in lower case [407:2] replace colon with period [408:3-13] replace semicolons with commas [408:14-19] begin each item in lower case, replace semicolons with commas, end with comma instead of full stop. [408:20-21] change "Further," to "and". [411:14-31] begin each item in lower case, replace semicolons with commas [414:15-18] begin each item in lower case [414:21-30] begin each item in lower case [415:1-22] begin each item in lower case [415:3-5] replace "with the pointer" by ", the pointer is", insert comma before and, insert "is" before second associated, replace period at end by comma [416:8-24] begin each item in lower case, change colons to commas, including the erroneous full stop at line 15. [417:19] "may" -> "shall". Perhaps this should be "can"? [417:20-24] begin each item in lower case, add a comma. [419:5] replace colon with period [419:30-35] delistify. [419:39-420:5] begin each item in lower case, end all but the last with semi-colon, remove the "and" at the end of the penultimate item. [420:9] "as follows:" -> "by the following events.". [421:45] ditto [423:5-15] begin each item in lower case, replace semicolons by commas [423:33-424:2] lowercase, replace commas at ends of items by semicolons, delete "or", make it a bullet list. [426:19-37] Delistify. Successive qualified definitions do not need to be in a list, they work perfectly well without. [427:19] Demistify. The text says it all, a 2-item list is foggy. [431:23-27] Demystify. [434:15-17] Replace with "Not being an array.". [434:20-23] replace intro "A <> is", begin each item in lower case [434:26-30] begin each item in lower case, end the first two items with a comma, end the third item with ", or", in the first item delete the useless incorrect nonsense "may designate" junk. [437:6-7] replace non-ISO-directive-conforming lie with "The following Fortran 90 features are not required by Fortran 95, Fortran 2003, or this part of ISO/IEC 1539.". ROFL thinking what part of ISO/IEC 1539 they are required by, but them's thar brakes. I'm not entirely satisfied by this sentence but at least it is now true *and* conformant with the ISO directives. BTW, surely "A similar result" should be "A better result that actually makes sense unlike the F77 definition"? on line 10-11. [437:34] replace colon with period [437:34+1-4] replace table with bulleted list, yay! [435:35] Fix dated ref to our own standard, which is not and has never been called the "Fortran 90 International Standard". [438:4] replace colon with period [466:32] replace colon with period [469:24] replace colon with period [484:14-20] delete colon from intro, begin each item in lower case, end the first two items with a comma, and end the third item with ", and". [ac:throughout] Replace "I/O" with "input/output". [499:4-6] begin each item in lower case, replace semicolons with commas. 4. Other changes to 008. None of these have as yet been done to the standard. Soon? - Consider changing "2.5 Fundamental terms" to conform to the ISO directives! - c04 "Types", 3rd paragraph "A derived type is one that is defined by a derived-type definition" is a lie. Fix. The paragraph following that one is a lie too. Fix that one too. - check every use of "may", as most of them are wrong. - Consider rewriting 2.3.4 Execution sequence so that all of the exceptions are in the list of exceptions, instead of only half of them. (RETURN, STOP and END are exceptions but called out in prose instead of being in the list; and worse, this makes the description hard to read.) - Rewrite item (1) of 2.5.5 Definition to make it true. - 3.1 Processor character set, why are "Control characters" and "Graphic characters" in bold (term definition font) when there is no definition? We are just using the terms from another standard - without reference... - Replace short outer-level enumerated lists with bullet lists, except when an individual list item is referred to elsewhere in the standard (this is obvious from the LaTeX source of the list). - Consider rewriting [217:11-26] and [217:29-45] into individual sentences. - Consider eliminating duplication between list-directed and namelist. - Consider changing "hold" to "apply" where it means the latter. - Rewrite the "elemental operator" nonsense in c14. There is no such thing. Furthermore, the module has to define (private) procedures in the generic sets - describe them. Ugh. - Rewrite the first sentence of 14.1 so that it is completely true instead of only partially. - Consider deleting 14.9.1 to 14.9.5 because they are unnecessarily duplicative and not formatted in accordance with ISO directives. - Consider deleting the tables in c13 that are both redundant and unnecessary. And not conformant with the ISO directives. - Consider rewriting [408:2-21] into several distinct paragraphs instead of one enormous structured sentence. - Replace I/O with input/output throughout. We decided on this already once, why are we still inconsistent? - Take a chainsaw to the glossary instead of a scalpel. ===END===