J3/07-236 To: J3 From: Malcolm Cohen Subject: Editor's report for 07-007r2 Date: 2007 June 05 *************************************************************************** 1. Introduction This is the editor's report for 07-007r2 production arising from meeting 180. It is divided into 4 sections: 2. Hyperlinking changes 3. Other editorial changes made during editorial review of 07-007r1 4. Papers passed at meeting 180 5. Editorial changes arising from the Terms and definitions conversion. 6. UTI's added as a result of editorial review *************************************************************************** 2. Hyperlinking changes I say hyperlinking, but actually my approach has been to use a macro which (a) creates the hyperlink (b) indexes the item Below, when I say "all", I mean all except in large code fragments. As it happens, one cannot hyperlink inside an "alltt" environment; well, it might be possible, but it's not straightforward. I don't consider this slight defect to be a problem. (1) I hyperlinked all the attribute references I found to the attribute definition clause. These are mostly in c05 except for the type attributes, some of which are in c04 (e.g. ABSTRACT, DEFERRED, SEQUENCE). BIND was really annoying since it appears in *three* separate places; these should probably be merged into the main one in c05. (2) I hyperlinked all the intrinsic procedure uses I found to the specification subclause in c13. This has also resulted in index entries. (3) I hyperlinked many of the defined terms. I did this by going through the whole document and changing occurrences of a defined term to use a hyperlinking macro. Reading all of those gave rise to a considerable number of editorial changes throughout the document! (4) Some defined terms appear both as "X Y" and "Y!X" in the index. For those, I used different macros which indexed every occurrence under both entries. Since all of the above use macros they are fairly easy to change if some aspect of their behaviour is considered unwarranted. For example, maybe some of the indexing behaviour is unwanted (though on balance, I think this is the start of a considerable improvement in the index!). As you can imagine, it's a fair amount of work reading through all the occurrences of X and deciding whether it is a use of the defined term X and should therefore be hyperlinked and/or indexed. For that reason I have done a "representative sample", not the whole set. I have attempted to do the whole set within c02 itself. For 07-007r2 ONLY, hyperlink colouring has been turned back on - they are now a darkish blue colour. This is to help evaluation of the effects of hyperlinking. It might seem strange to some to hyperlink, for example, every occurrence of "derived type" when it appears several times within a paragraph (especially with the blue colouration). However, the benefit of hyperlinking is to let the user click on *any* occurrence of a defined term (or attribute, or procedure name, etc.) and not have to guess which one by waving the mouse around. *************************************************************************** 3. Other editorial changes made during editorial review of 07-007r1 - Modified 007.tex for WG5 document production - Turned off paragraph numbers temporarily. I'll try to remember to turn these back on later. - [7:1.8.3p3] Fixed typo "obscolescent". - [9:2.1p1] "This clause"->"This subclause". - [12:2.2.1p1] "may be"->"is", twice. [These are not permission.] - [14:24-25] "a file"->"an external file", "any image"->"all images", "specific image"->"subset of the images". - [17:p3] "exeuction"->"execution". - [17:somewhere] indexed "completion step" myself. - [18:2.4p1] Deleted paragraph of witter. - [24:12] "in an actual argument list"->"as an actual argument", because it is equally true of procedure references in other contexts (defined assignment, operations, i/o). - [37:Note 3.11] "times"->"multiplied by". - [39:24] Inserted "macro" before "actual argument" (we got this right everywhere else: a "macro actual argument" is not a plain "actual argument", we reserve that term for procedure references). - [39:28] Inserted "a" before "zero-length". - [42:Note 3.15] "I,"->"i,". - [47:2] "corresponding actual argument"->"effective argument": that's what it assumes the type parameter value from. - [47:9] Deleted "may". It definitely has other attributes, and this is not about permission. Turned the sentence into the singular. - [47:19] 4.3.1.1 "General"->"Type specifier syntax" [47:20] Replaced whole paragraph "A type is specified by a \tdef{type specifier}." with "A type specifier specifies a type and type parameter values. It is either a \si{type-spec} or a \si{declaration-type-spec}." - [49:2-3] "associated actual argument"->"effective argument". - [49:29] Deleted "inquiry". One line down we refer to RANGE without mentioning it is an inquiry function, so we should be consistent here. Mostly we just say "intrinsic function X" when we are talking about X specifically, so that's what we'll say. Ditto in a couple of other places. - [55:1,4] "associated actual argument"->"effective argument", twice. - [59:4.5.1p3] Indexed "component!ultimate". Changed the attribute ordering so it is the same in both halves of the sentence. - [59:4.5.1p5] Indexed "component!direct". - [59:Note 4.19] Singularised the sentence about ultimate components. Added a sentence saying what the direct components are. Moved to the end of the subclause (4 paragraphs down). - [75:p8] "associated with"->"corresponding to". - [91:C518] Inserted "type," before "or". - [94:5.3.7.2p1] "a named"->"an". Regardless of what happens to the interp, I want to have the right semantics in F2008! - [94:5.3.7.3p1,p3] "the associated actual argument array"-> "its effective argument", thrice (3rd on page 95). - [95:17] "actual"->"effective". - [95:23] "actual"->"effective" (note: NOT the one on line 22, which is correct). - [95:27-28] "an associated actual"->"its effective". - [95:28] "actual and dummy arrays"->"effective and dummy arguments", [95:29] "actual array"->"effective argument", "dummy array"->"dummy argument". [95:38] "actual argument"->effective argument", [95:39] "actual array"->"effective argument". Eliminate use of nowhere-defined and nowhere-else-used term "actual array". - [95:33] "argument"->"object". We have the term "dummy data object", not "dummy data argument". - [96:1] "associated with"->"corresponding to". This one *is* talking about the actual argument not the effective argument. - [97:20,21] "array"->"co-array", twice. "subscript"->"co-subscript", once. - [98:17] "becomes associated with"->"corresponds to". - [98:20,22,23] "associated with"->"that corresponds to", thrice. [98:Note 5.13] ditto, once. - [98:26] "the argument associated entity"->"its effective argument". - [99:Note 5.16,last para,penultimate line] Inserted "actual" before "argument" (we don't usually use a bare "argument" and force the user to guess which one we mean). - [100:1] "be associated with an"->"have a corresponding" - [100:Note 5.17] "is associated with an"->"has a corresponding". - [105:1] Deleted "A variable ... program.". This is a verbatim copy of a sentence from the section that was cross-referenced immediately beforehand. - [119:entirety] Reworded and restructured. - [123:6.2p1] Deleted paragraph of witter. - [127:6.3.1p1] Unemboldened "ALLOCATE statement". - [129:6.3.1p7-] Inserted heading "6.3.1.2 Execution of an ALLOCATE statement". - [130:p1] "allocation transfer procedure" ->"intrinsic subroutine MOVE_ALLOC". - [131:6.3.3p1] Unemboldened "DEALLOCATE statement". - [132:22,24] "associated with"->"corresponding to", twice. - [156:8-14] This used lots of undefined terms like "character inquiry function", and made one look elsewhere to merge multiple lists. Replaced with the list of functions. - [157:7.1.12,item 7] Unhelp xref "(14)"->"(14.10.17)". - [178:31] Deleted stray comma. - [197:p6] "co-variable"->"co-array" (twice), "co-array variable"->"co-array" (6 times) - [197:22] "argument associated entity"->"effective argument" - [199:8.5.3p1+4] "function FORM_TEAM"->"subroutine FORM_TEAM". - [208:Note 9.4] "image number"->"image index". - [217:9.4.5p8+] Inserted heading "9.4.5.2 Syntax". - [222:9.4.6:R908-] Inserted heading "9.4.6.2 Syntax". - [222;9.4.6p9] Moved paragraph 9 to precede paragraph 6. - [222:15-16] Deleted "during the completion step of termination of execution" as it is unpleasantly repetitive and redundant (I complained about this in a UTI but subgroup couldn't find it, so I'm just deleting it.) - [257:10.1p2] "R914"->"", twice. - [272:10.8p1] Deleted paragraph of witter. - [296:21-23] Deleted redundant last 2 sentences, which are not only redundant but in fact completely irrelevant to the topic at hand. Inserted sentence "This morning I had toast and tea for breakfast." which is, I think, more relevant. - [314:20] "be associated only with"->"correspond only to". - [315:17] "the associated actual"->"its effective". - [317:16] "associated"->"corresponding". - [317:21] "the associated actual"->"its effective". Otherwise we cannot pass procedure pointers as actual arguments to nonpointer dummy procedures. Maybe this should be an interp, but I cannot believe we didn't intend that! - [318:7] "the associated actual"->"its effective", "pure actual"->"pure effective". [318:8] "actual"->"effective". More fixes... we are supposed to have gotten rid of "associated actual argument", the thing that is associated is now the effective argument. Alternatively I could have changed "may be associated" to "may correspond". - [318:17] "associated"->"corresponding". - [319:20] "at least one subobject selector"-> "one or more subobject selectors". Saying "at least one" reads oddly in the context of a "shall not". - [321:Note 12.38 1st sentence] "actual"->"effective", "associated with"->"of". - [321:Note 12.40] "the associated actual"->"its effective", twice. - [324:9] "actual"->"effective". - [325:8] Ditto. - [334:19] "associated with"->"corresponding to". - [335:C1291] Expanded the forward reference into the list of intrinsic functions intended. - [336:11,13] "associated with"->"corresponding to", twice. - [337:13.1p4] Rewrote the definition of collective subroutine to describe it (like we do for <>) instead of pointing to a list. There is no need for a separate list of collective subroutines any more than there is a need for a separate list of elemental functions. - [338:4,21] "associated with"->"corresponding to", twice. - [339:13.4p7,last sentence] The existing text was vague and useless, and didn't make good use of its forward references. Rewrote to be even more vague, but without the references (the referenced sections weren't exclusively about this anyway). If it's no longer of any use, just delete it since it's entirely redundant anyway. - [353:13.7.17,heading] Deleted "The result is the principal value of the argument of the nonzero complex number (X, Y)." The <> clause specifies this more accurately, I think it is unnecessary here. (If it gets reinstated, remember to put it into the summary table too!) - [358:13.7.29p1] "its argument"->"A". The function has two arguments. - [369:13.7.53p1] "of the model representing numbers of the same type and kind type parameter as the argument"->"of a numeric model". Why? Just as informative, and much shorter. - [372:13.7.60p1] Deleted "of the model representing numbers of the same type and kind type parameter as the argument" (unnecessary detail). - [374:13.7.64p1] The second sentence of the <> is a requirement on the processor, not a description of the procedure. Moved to be a separate paragraph before paragraph 4. - [375:13.6.78 heading] Removed two spurious commas, inserted missing blank before first MASK. - [376:p5 case(iii)] Remove extra comma after "DIM=1". - [377:13.7.69p1] "its argument"->"A". This function now has more than one argument! - [380:13.7.76p1] "number of the model representing numbers of the same type and kind type parameter as the argument"->"model number". - [381:13.7.79 heading,382:13.7.81 heading,387:13.7.91 heading] Move comma inside the optional brackets (thrice). - [383:13.7.82p1] "Argument with specified bit"->"I with bit POS". There isn't a single argument, there are two. Similarly at [384:13.7.84p1]. - [386:13.7.89p1] "Convert"->"Conversion". All the other conversion functions say "Conversion to ...". - [390:13.7.101p1] Deleted "of the character argument" and "counting"; these words just don't seem to add anything useful. - [396:13.7.5p1] "the model representing numbers of the same type and kind type parameter as the argument"->"a real model". [399:13.7.121] ditto. - [409:13.7.137p1] "Bitwise parity"->"Parity expressed as 0 or 1". - [409:13.7.138p1] "the model representing real numbers with the same kind type parameter as the argument"->"a real model". - [410:13.7.141p1] "the model representing numbers of the same type and kind type parameter as the argument"->"a numeric model". - [413:13.7.147] "Array of a specified shape constructed from the elements of a given array"->"Construct an array of an arbitrary specified shape". The previous text is wrong (sometimes the elements of two arrays are used, viz the PAD argument) and its extra details don't elucidate. - [425:13.7.175p1] "number of the model representing numbers of the same type and kind type parameter as the argument"->"model number". - [467:Note 15.13] "data objects"->"data entities". - [469:Note 15.20,2nd para] "be associated with"->"correspond to". - [479:39] "reference establishes an association between an actual argument and its corresponding dummy" -> "reference establishes a correspondance between each dummy argument and an actual argument and thus an association between each dummy argument and its effective" Picky I know, and it makes the sentence harder to read, but the association is between the dummy and the effective, not the dummy and the actual; the latter is a mere correspondance. - [479:41,480:1] "associated actual"->"effective", twice. - [480:Note 16.6] "actual"->"effective", inserted "the result of evaluating" before "an expression". - [480:5] "actual"->"effective". A pity no-one looked at every occurrence of "actual" when we introduced the term "effective argument". - [483-485] Uplevelled the subheadings of 16.5.2.2. - [489:16.5.5p2] Rewrote whole paragraph into one simple sentence using the "effective argument" concept. - [491:item (6),(7)] "corresponding actual"->"effective", twice. - [492:29,30] "actual"->"effective", twice. - [493:item 11] Fixed cross-reference to be more useful. - [493:item 14a] "is not associated with an"->"has no corresponding", [493:item 14c] "associated with"->"corresponding to", [493:item 14d] "actual"->"effective". - [516:33] Delete "inquiry". SELECTED_REAL_KIND isn't an inquiry function. - [555:C.10.3] Deleted entire subclause "C.10.3 Procedure interfaces". This is uninteresting historical guff comparing Fortran 90 to Fortran 77. It is also incorrect - for a start, it uses incorrect phrasing about actual arguments. Rather than waste time fixing it, in the absence of it having any redeeming social qualities, I'm giving it the boot, along with its cross-reference Note 12.1. - [558:C.10.5] Deleted entire subclause "C.10.5 Argument association and evaluation". This is more turgid uninteresting historical guff comparing F90 to F77. It also uses now-bad phrasing about actual arguments. Furthermore, paragraph 4 seems to be completely irrelevant to the topic at hand. Rather than waste time fixing it, I'm deleting it along with its cross-reference in Note 12.28. - [558:43] "associated"->"corresponding". - [566:C.11.1] Deleted this subclause, as it seemed to be entirely worthless witter. And untrue to boot. - [568:C.12.2-C.12.2.1] Deleted first heading which had dodgy capitalisation, deleted paragraph of witter, uplevelled the second heading. - [569p13,15] Changed "intrinsic function C_LOC" to "function C_LOC from the intrinsic module ISO_C_BINDING", twice. - [569:C.12.2.2] Uplevelled heading. - [570:26,37] "actual C parameter"->"C actual argument", twice. [570:29,33] "actual parameter in the C calling sequence"-> "C actual argument",twice. There is no such thing as an "actual C parameter", and in C the term "actual parameter" is deprecated in favour of "actual argument" or just plain "argument" (and just "parameter" means "formal parameter"). So we should simply use "C actual argument" consistently. - [571:C.12.2.3,C.12.2.4] Uplevelled headings. - [574:C.14.1p1] Deleted paragraph of purposeless witter. - [575:C.14.2p1] Deleted paragraph of advertising witter. - [581:C.14.4-C.14.6] Downlevelled the headings. - [587:14] Fixed typo. - Inserted extra headings after: [13:2.2.4], [27:3.1], [28:3.2], [31:3.3], [45:4.1], [123:6.2], [123:6.2.2], [127:6.3.1], [131:6.3.3], [153:7.1.9], [194:8.2], [207:9.], [207:9.1], [208:9.2], [209:9.2.2], [211:9.2.3], [214:9.4], [216:9.4.5], [222:9.4.6], [233:9.5.4.4], [235:9.5.4.7], [247:9.9.2], [253:9.10], [280:10.11.3], [284:10.11.4], [297:12.4.2], [433:14.], [512:B.2], [577:C.14.2.3], [580:C.14.3] *************************************************************************** 4. Papers passed at meeting 180 07-182. - Did the edits I said I would: the 2nd, a fixed-up 3rd, and the 4th. Done. 07-183r2 - Used "determined" instead of "defined", i.e. preserved the existing wording of the second sentence. - The edit to [7:9] makes me think it should just say "In text" not "In descriptive text", since it is the case in prescriptive text too. Done. 07-184r2 - Actually replaced "supplied as procedure definitions", since the specified text didn't occur anywhere. - When inserting cross-references, it would have been a great help to the editor to give the title of the referenced subclause. Done. 07-185r2 - Sorry, I'm not going to waste my time changing exactly half of the occurrences of the (correct) "occur" to appearances of the equally correct "appear". REJECTED all "occur"->"appear" edits. - I inserted (5.3.2) as instructed, but it should perhaps have been (5.3). (5.3.2) is a hostage to fortune waiting to be taken. - In the edit for [36:17], instead I replaced the last half of the sentence "shall not be a macro dummy argument" with "shall be of type integer". - There's nothing I can see wrong with the LaTeX sources with [37:4], so the only way of deleting the blank line is to change the name of the syntax term to make the line length different. Or install a newer version of LaTeX and hope it fixes the bug. DEFERRED the above, hopefully I will look at it again later. - "loop_over_temp%i" needed an extra underscore as well as an extra %. 07-187r1 - At [61:3-5], also changed the syntax rule reference in the joined constraint to be the second one (R430) not the first (R439). R439 would make the second part of the joined constraint ineffective. Done. 07-188r1 - Also did the change at [105:22] at [106:19] qua capitalisation. - Didn't insert a comma at [110:21,23]; in fact I didn't do anything at [110:23] which seems irrelevant to the edit. Done. 07-189r2 - I didn't hyphenate "variable definition context" incorrectly (as the paper requested), which is to say, at all. Done. 07-190r3 - DEFERRED [142:11-22]. This completely changes what the various kinds of intrinsic operator are. I'll probably end up rejecting it. - [142:23] Ditto. - [153:6-8] REJECTED. This edit doesn't make sense (the phrase doesn't occur twice). The existing text is correct as is anyway, so I'm not even going to try to wordsmith the edit into correctness. - [156:18] REJECTED. Ungrammatical. Done. 07-192r1 Done. 07-193r1 Done. 07-194r1 Done. 07-195r1. - used "macro definition" everywhere instead of "". This is slightly more restrictive for the user, but simpler. Done. 07-197 - Instead, replaced ", which shall be greater than or equal to zero" with "; this ... integer". The fact that all kind type parameter values of all intrinsic types are nonnegative is already enforced by two constraints, we don't need special text for BITS. Deleted UTI 109. 07-198r3 - [184:2] and [184:13] made it break the ISO rules even more. Uplevelled the headings at [184:17] and [185:4] to fix. - [187:36] Didn't insert the duplicate "to". - [188:21] Instead, changed it to "an association status of undefined". - [192:29] SELECT TYPE does not have multiple selectors. Reworded accordingly. - [485:1] "was changed" instead of just "changed". 07-199r1 Deleted UTI 111. 07-200r1 Deleted UTI 092. Done. 07-201r1 - Ignored extraneous "; IEEE_INVALID signals" in the second edit. Deleted UTI 093. Done. 07-202r2 Done. 07-203r1 - [339:13.3p6] Also changed "An" to "The", since we know what function we are talking about. - [375:13.7.66p5+1] Did not delete the reference, but moved it to the end of the phrase. Done. 07-204 Done. 07-205r1 Deleted UTI 110. Done. 07-206r1 - Did with minor wording changes. - Also edited the sentence before the insertion, which was (a) ungrammatical - disagreement in number and (b) incorrect (all length type parameters had to be the same). I hope I got this one right. - Further edited that sentence: it seems the coarray group think it's ok to have kind type parameters differing between images but not length type parameters! Deleted UTI 114. Done. 07-207r2 - [208:14] Also deleted an indefinite article. - [222:13] Also indexed "completion step" here. Deleted UTI 116. Done. 07-208r1 - [377:17-19] Rewrote into positive form "An error condition occurs if...", instead of the negative "unless", inverting each condition; split the middle condition into its two parts (why have A, B and C, and D?). - [377:28-29] Rewrote to use "occurs if". Simplified the second sentence to "If no error condition occurs, ...". Deleted UTI 086. Done. 07-209r1 - Did the edit. Left the UTI until I can think about the edit a bit more. I am not sure it actually resolves the issue. [REVIEW] 07-210 - [360:38] Inserted new sentence "It may be a scalar or an array.". If it's necessary for CO_MAXLOC et al, it's necessary here. Deleted UTI 113. Done. 07-211 opt1 Done. 07-212r3 - [468:3] Also reversed to be ALLOCATABLE ... POINTER. - [494:7+] "any" -> "a", twice. "target"->"TARGET". Unfortunately, although the situation is substantially improved, there are still problems with C_PTR. Modified UTI 102 accordingly. [UPDATE THE 011] Done. 07-214 - [vii] REJECTED. The table of contents is automatically produced. - [99:2-3] "It may be a generic procedure" ->"The procedure name may be a generic name" and "specific procedure"->"specific name". - [161:...] Wordsmithed. - [162:...] Ditto. - [303:...] Inserted "references" instead of "names". - [305:24] "the"->"its" - [337:20-21] REJECTED. This replaces loose text (but correct apart from the sloppy terminology) with correct terminology but incorrect meaning. - [340:4] REJECTED. This does not contain a list of all intrinsic procedure names, just the generic ones. - [346:9] Before "result type", "as the"->"that the". - [347:2-3] REJECTED. This isn't an improvement. - [406:15] Instead, "to a generic procedure"->"in a generic procedure reference" - [561:37] Deleted "or generic binding reference". They are all generic procedure references. 07-215 - Converted the subclauses into a single table. - Changed the few references to subclause numbers to list or accurately describe the relevant procedures. (This was mostly in c07.) - The descriptions in the table were all copied from those in the specifications. Some of these are CLEARLY bad - for example, CSHIFT and EOSHIFT give absolutely ridiculous and unnecessary amounts of detail. Left as is for now (they are just as ridiculous in the specs as in the summary table). - In fact, now that the table has the descriptions all next to one another it is much easier to compare them, so this is a good basis for doing a complete revision of the descriptions. Done. 07-216 Deleted UTI 091. Done. 07-217 Deleted UTI 100. Done. 07-218 Deleted UTI 108. Done. 07-219 - This example still doesn't show anything it claims. It's trivial to generate vector gather/scatter code, unroll or parallelise A(IND(:M)) = [ (I,I=1,M) ] potentially improving performance. We should delete the advertising or provide an example that is not trivial. Done. 07-220 opt2 Done. 07-221r1 Done. 07-222 - [88:37] Also deleted immediately following Note 5.1. - [93:C528] Further wordsmithing. - [101:26] "variables"->"entities" (procedure pointers aren't variables). - [484:31] Deleted "that has the SAVE attribute or"; COMMON with SAVE already confers SAVE on all its constituents ([101:26]). - [490:12-14] Another example of "saved or ...": reworded. - [492:40-41] Deleted "or the common block is declared in a module or submodule" Done. 07-223 Deleted UTI 115. Done. 07-224 - [178:20+] "R804"->"R805", "A "->"", inserted at 22+ instead. - [179:5] Deleted "associated". Sentence 1 already established that. - [192:3+] Omitted. [ADD UTI ABOUT BREAKING TYPE SELECTION.] Done. 07-225 Done. 07-226 Deleted UTI 094. Done. 07-227 - [68:31] Didn't insert an extra indefinite article. - [69:Note 4.37] REJECTED. The point of this clause is about later overriding of one default initialization by another. Without this clause, the sentence basically says "Default initialization of a component may be overridden by default initialization", to which the only reply is going to be "huh?". - [105:2] Didn't delete "has". - [484:2-3] This edit was garbage. Rewrote from scratch. I hope I got it right! - NEW EDIT [484:15-17] Rewrote this paragraph to look like an earlier one. - NEW EDIT [485:3-4] Rewrote this item. Inevitably I will have gotten at least one of these three wrong - though maybe they were wrong before too - so I've inserted a UTI. - [501:5] REJECTED. This is an unnecessary detail. Done. 07-228 Done. 07-229 - [22:15-20] Rewrote first sentence into a statement of fact rather than the giving of permission (which was wrong). - [22:23+] "neither ... nor" -> "not ... or" (grammar, consistency with wording for pointers). Done. 07-230 - [120:3] REJECTED. All the preceding sentences in this paragraph use literal constant and/or named constant without cross-references so I'm not putting them in here. And the first sentence already says a constant is either a literal or a named constant so this appears to add nothing. Done. *************************************************************************** 5. Editorial changes arising from the Terms and definitions conversion I converted all the defined terms in c02 to the ISO format for a terms and definitions subclause. In doing so I revised the original placement of the definition, often by deleting it altogether (basically, unless it said more than just giving the definition, it got deleted). In my opinion the remaining text could use further heavy-handed editing, so that more of the terms only remain in c02 as definitions with pointers to the subclause later in the document where they are fully described. I also converted many terms from elsewhere in the document, especially c03 and c04. I "untermified" a number of defined terms, especially if they were only being used locally or were the normal meaning of those words (or the normal meaning of a combination of one defined term and another word), or both. I think I should probably have gone further here - there are lots of terms for "elemental XYZ" which when it comes to it should probably be left to be handled by the normal meaning one gets by combining "elemental" with "XYZ". When creating the new term definitions, I also checked the glossary to see if it had better wording (sometimes it did, or inspired better wording). I noticed many problems in the glossary (unnecessary entries, incorrect entries, missing entries, ...), but have mostly refrained from fixing them since it should be deleted anyway as being duplicative and unnecessary. I ran out of time to convert as many of the defined terms as I would have liked; that will have to wait until next meeting. - changed a few "X intrinsic function" to "intrinsic function X". - untermified "iteration count"; we are using it in a normal English sense. - unindexed "type!concept". - deleted term "defined elemental operation", moving the definition into its only use. - deleted term "elemental operation", since it is the ordinary result of using the adjective-term "elemental" with the word "operation". - changed the way we describe elemental procedure references; previously we said the reference was only elemental "if all array arguments have the same shape" (thus ending up with an invalid nonelemental reference if they don't have the same shape). It seems frankly ridiculous not to know whether a reference is elemental or not at compile time, so I've changed it to do that and made the "same shape" thing a requirement. - deleted term "co-size", since it was only ever used in a note (about a hundred pages away from its definition). - deleted the note about why coarrays are not allowed in common/equivalence since it is a lie. - I took the definition of actual argument directly from the normative text instead of the glossary version, although the glossary one is also correct (it lists the possibilities for actual arguments - something I think is better done by a simple BNF cross-reference). - Deleted term "base type"; it was only used trivially in c04. - Turned the SEQUENCE property into the SEQUENCE attribute (it fits the definition, so why use a different word?). Got rid of "sequence derived type" - it's supposed to be just "sequence type", and in most cases reads better using the attribute form anyway. - Changed many uses of "object" to "data object" in the definitions; yes, the latter is a synonym, but at least in the other definitions we should use the primary term. - Untermified "subobject of a constant", since it has the obvious meaning. Also deleted indexing of it as "constant subobject", which was definitely misleading. - Untermified "expression". It is being used with its normal meaning. - Added term "definable". Maybe unnecessary. - Untermified "allocated" and "unallocated". These are just the past participles of the ordinary verb "allocate"; we didn't make that a defined term, so we don't need these to be ones either. - Untermified "type specifier", since it is only used within clause 4. Elsewhere we use one of its BNF constituents. I left it as an indexed term though. - Moved "Definition of objects and pointers" from "Fundamental concepts" into "Data concepts", since it is undeniably a data concept. Also moved "Reference" into the same section: that one is more arguable, but since function references are in "Data concepts"... - Deleted 2.whatever "Scalar" entirely. The useful normative bit is in the definition; the bit about rank is in the definition of rank; the bit about shape is in the definition of shape; and the bit about a scalar structure "having a single value that consists of ..." is factually incorrect (wrong for pointer components and allocatable components). That only left the note about a structure being scalar ... which is in the definition of structure! Maybe it seems a bit strange to launch into talking about arrays without even mentioning scalars, but there isn't anything to say... - Deleted the term "type incompatible". It was defined in c04, and used exactly one in the whole standard, in c12. Rewrote the use in c12 to use the heavy-handed "distinguishable" term instead of trying to spell out what the exact limitation is in this case. - Changed a large number of "allocatables" to "allocatable variables". I believe I got this one right, unless some of them were meant to be "entities"; these all just appeared to be laziness in c13. - Untermified "implied-shape array", but left it indexed. The term was only ever used in its own subclause, so did not need to be a document- wide term. - Deleted pointless indexing of "constant!named". It should either be indexed only as "named constant" everywhere, or as both everywhere, not some bizarre mixture. *************************************************************************** 6. UTI's added as a result of editorial review I guess it's inevitable that when one spends a couple of solid weeks full time reading, revising and reviewing the 007, one will find all sorts of bad things crawling out of the woodwork. Sorry about that. Yes, I could probably have fixed some of these myself, but sometimes one just runs out of energy to do that. - In the error termination discussion in c02, the list of i/o errors is both inadequately specified and misleading: UTI 117. - the final list item is both outwith the scope of the standard and so poorly specified as to be completely meaningless: UTI 118. - furthermore, the whole list is redundant (virtually all of this is specified elsewhere in the standard), useless as is (no references to where it is actually specified properly), and contradictory anyway (I just looked at a couple of items - apart from the i/o ones which are definitely contradictory - and they didn't seem to be explained the same way, but didn't waste any further time checking on the correctness of this useless redundancy). This is still UTI 118. - In the collective subroutine example in Annex C, it astonishly claims that these subroutines "return an array". That is a lie - subroutines don't return *ANYTHING*. It wouldn't seem difficult to convert this to a correct statement. UTI 119. (If the bad wording occurs elsewhere, it should be fixed there too - but I didn't do a thorough check.) - Note 8.33, second sentence, makes an astonishing claim about initial values of coarrays. Or maybe about references. I see no normative support for this claim. UTI 120. - There seems to be, have been, or will possibly be, some serious disagreement over the intent and meaning of the purported VOLATILE licence for coarray parallelism. In particular, over the meaning of "scalar" (which in context meant nothing). UTI 121. No, I do not believe this is a simple wording issue. - We seem to have inconsistent rules on which inquiry functions can be used in a specification expression. In particular, every inquiry function can be used trivially (if tediously) by a simplistic specification function wrapper. This has "we wrote this list in F95 and never looked at it again" written all over it. UTI 122. - UTI 123 is the one I added while processing 07-227 (see above). - The example in Annex C of Fortran calling C is full of nonsense and meaningless junk. It was never correct. If it still has explanatory power it needs to be rewritten (and probably from scratch, not just patched); otherwise it should be deleted. I say "still has explanatory power" but since it was mostly meaningless junk I don't think it was in any sense explanatory or powerful. UTI 124. - The c02 "definition" of a coarray seems to be incorrect. That or I have a misunderstanding. UTI 125. I also rewrote some complicated text to simplify it - I believe I got this right, but that should be checked. - In the c02 discussion of allocatable variables, it says "If [it] is an array, the rank is declared, but ...". There is no corresponding text saying "If [it] is a co-array, the co-rank is declared, but ...". Should there not be? If not, should the existing text not be deleted? UTI 126. ===END===