Date: 27-feb-2002 J2/02-148 To: J3 From: Subgroup C Subject: Misc issues in Sections 8-12 Edits to 02-007. 1) The sentence in [184:14-15] describes a process for applying rules without mentioning that the rules can be found in the following paragraphs. Edit: [184:14] The rules -> The following rules 2) In READ and WRITE statements the use for the IOMSG feature is optional. Currently it is not optional for DT i/o routines. It would seem reasonable to make the iomsg argument to the user supplied DT i/o routines optional. This would allow the i/o library to omit the corresponding actual argument if, for example, the parent i/o statement does not specify an iomsg variable. Edits: Add ,OPTIONAL to the attribute lists in [192:6,18,34] and [193:1]. [194:10] argument, -> argument, and if the iomsg argument is present, 3) The text in [220:17-23] sometimes does and sometimes does not require that the newline character be actually written into the stream file. Edits: (Needed) 4) In [221:7-11] the letter 'r' is suddenly used without an explanation of what it represents or how it is defined. Edit: [221:7] datum. -> datum, and r be the rounding value defined in the table below. 5) In three places we provide lists of characters that are unacceptable as part of input character sequences because they could be separators. These lists are not updated to include the new option of the ; as a input value separator. Edits: [226:26-27] slashes, blanks, or commas -> value separators [227:5] the value separators blank, comma, or slash -> value separators [231:35-36] slashes, blanks, equals, or commas -> equals or value separators 6) The first paragraph on page 237 lumps PROTECTED in with PUBLIC and PRIVATE as methods for controlling accessibility. This is not correct. PROTECTED does not affect accessibility. Also, the text "PUBLIC statement" is missing in line 3. Edits: [237:3] Replace "PRIVATE statement, the (5.2.1), the PROTECTED statement (5.2.11)," with "PRIVATE statement, the PUBLIC statement (5.2.1)," [237:5] Add "The PROTECTED statement (5.2.11) and the PROTECTED attribute (5.1.2.12) are used to control the definability of module entities outside the module." 7) In [238:29,32] the phrase "public accessibility" needs to be made more explicit to avoid confusion. Edits: [238:29] and public accessibility -> that has explicitly been given the PUBLIC attribute [238:32] with public accessibility -> that has explicitly been given the PUBLIC attribute 8) The import-stmt is introduced in [245:6] with no obvious indication of where it would appear in the interface body described on the previous page. The connection is specified on page 9. The connection should be clear in this sub-section. Edit: Copy [9:38-41] to [244:20+] and change the rule number to R1206. In [9:38] change R204 to R1206. 9) The constraint in [249:7] applies directly to abstract interface names. It should be moved to be after the rule for such names. Note: ignore this if 115r1 passes. Edit: move [249:7] to [250:16+] and insert (R1215) after the constraint number. 10) The sentence beginning in [255:12] discusses that two dummy arguments can be associated without noting that they must not be in the same program unit. Some clarification would help. Edit: [255:12] after "associated with" add " an actual argument that is" 11) The rule for a dummy-arg-name is [264:25]; it seems like this would be a good place to add a constraint that a name can appear only once. Edit: [264:26+] C1241 (R1226) A specific dummy-arg-name shall not appear more than once in the dummy-arg-name-list. 12) The final two sentences in Note 12.48 on 273 suggest that "it is anticipated that most library procedures...". Referencing global data is not dangerous if it will not be redefined. The new PROTECTED attribute provides a mechanism to control redefinition of global data. These sentences are less relevant now. Edit: Delete last two sentences in Note 12.48, page 273. ------ Comment without suggested edit: Note 12.40 is new in this draft. It represents what is possibly the worst algorithm for computing a cumulative sum. I know that teaching efficient programming technique is not the point of the Notes, but manifestly bad programming habits should be avoided. Should we be looking for a better example of a recursive function?