J3/15-226r1 To: J3 Members From: Van Snyder & Philip Sharp Subject: Clause 9 Date: 2015 October 13 1. Edits accepted by subgroup ==================== [201:16 9.3.3.2p2] Replace "When" with "While". [201:29 9.3.3.3p2] Replace "When" with "While". [202:13 9.3.3.4p2] Replace "When" with "While". [202:22 9.3.3.4p4] Replace "When" with "While". [208:10 9.5.6.1p2] Replace "once" with "while". [208:32 9.5.6.1p8] Replace "on" with "for". [211:42+ 9.5.6.14p1+] Insert a note: "NOTE 9.19a An INQUIRE by output list statement (9.10.3) can be used to determine the record length that would be appropriate for a particular output list." {"concatenation" is not defined in cl 1, so concatenation has its ordinary English meaning. Hence, clarity is improved by this} [216:6 9.6.2.2p6] After "concatenated" insert "as if by the intrinsic character operation (7.1.2.5, 7.1.5.3)". [218:13 9.6.2.12p1] Replace "an data" with "a data". [229:1,3,6 9.6.4.8.3p20,21,22] Replace "When" with "While" thrice. [235:13-15 p.9p13] Delete "The IOSTAT= variable ... specified." because this belongs in 9.11.5. [235:25-26 9.10.1p1] Replace "or" with a comma. After "particular unit" insert ", or the number of file storage units required for an output list". [235:28 9.10.1p1] Replace "specifier value assignments" with "assignments to specifier variables". [244:13 9.11.5p1] Delete "or". [244:16 9.11.5p1] Replace the full stop with ", or" and insert a list item: " o a processor-dependent negative integer value different from IOSTAT_EOR or IOSTAT_END if the IOSTAT= specifier appears in a FLUSH statement and the processor does not support the flush operation for the specified unit." ***{Does the part of this that says "different from IOSTAT_EOR or IOSTAT_END require an interp?} >>> Malcolm and I will discuss ***[242:11-12 9.10.3p1] Replace "when there are" with "and data will be read from or written to the file using". Replace "the same" with "an". After "output list" append "that specifies transfer of a sequence of objects having the same types, type parameters, and extents, in the same order." >>> looks like: The value shall be suitable as a RECL= specifier in an OPEN statement that connects a file for unformatted direct access when there are data transfer statements with the same input/output list. becomes: The value shall be suitable as a RECL= specifier in an OPEN statement that connects a file for unformatted direct access and data will be read from or written to the file using data transfer statements with an input/output list that specifies transfer of a sequence of objects having the same types, type parameters, and extents, in the same order. Wordy but ok! [245:3 9.12p5] Replace "values" with "value". [503:25+ A.2] Insert a list item " o The value assigned to the variable in the ID= specifier in an asynchronous data transfer statement when execution of the statement is successfully completed (9.6.2.9)." [504:13,14 A.2] Replace "9.11" with "9.11.1" twice. 1.5 Proposed edits not accepted =============================== [114:2 5.8p1] Replace "referred to" with "referenced". We usually use the term "referred to" in the discussion of terminology for a thing, not references to it. [199:12 9.1p12] Replace "to" with "of". [199:29 9.2.2p1] Insert "also" before "depend". [205:0+3 NOTE 9.12] Alignments are not required. In fact, alignment restrictions are prohibited by 9.3.5p2. Replace "alignment requirements" with "prohibitions against alignment restrictions". [205:0+6 NOTE 9.12] Alignments are not required. In fact, alignment restrictions are prohibited by 9.3.5p2. Replace "data alignment requirements" with "prohibitions against data alignment restrictions". [209:904 C904 and 208:27 C906] Replace "If ... specified; if" with "Either a shall be specified, or a NEWUNIT= specifier shall appear, but not both; if NEWUNIT does not appear and". Then delete C906 at [208:27]. [211:18 9.5.6.12p2] Delete "previous". [213:1-3+3 9.5.7.1p6 and NOTE 9.22] Why describe CLOSE again? After "are closed" insert "as if by a CLOSE statement without a STATUS= specifier (9.5.7.3)" Then delete "Each unit ... DELETE." and NOTE 9.22. [216:8 9.6.2.3] Replace "NML= specifier" with "Namelist group name" because the NML= part is optional. [216:9 9.6.2.3p1] Replace "NML= specifier supplies" with "namelist group name is specified by" because the NML= part is optional. Replace "This name" with "It". [217:5 9.6.2.5p4] After "attribute" insert "(5.5.4)". [219:11+1-3 NOTE 9.30] Delete NOTE 9.30. The things about which it remarks are not admitted by R916, so it doesn't add anything. [219:17 9.6.3p6] Replace "is in" with "is within". [220:20+3 NOTE 9.35] Replace "9.6.3" by "this subclause". [221:21 9.6.4.1p2(10)] Replace "occurred" with "occurs during execution of the statement". Otherwise, if the condition occurred during execution of a different statement, perhaps referring to a different unit, execution could nevertheless proceed as described in 9.11. [221:46 9.6.4.1p3(11)] Replace "occurred" with "occurs during execution of the statement or any of the wait operations". Otherwise, if the condition occurred during execution of a different statement, perhaps referring to a different unit, execution could nevertheless proceed as described in 9.11. [222:2 p.6.4.1p4] "Replace "anywhere between" with "at any time between these executions". {The question is when, not where data transfers occur.} [222:10 p.6.4.1p7] After "operation" insert "but not both". [222:24 9.6.4.3p1] Replace "a UNIT= specifier" with "an " because UNIT= is optional. [228:4 9.6.4.8.3p12] Replace "access" with "be an access to". {This is a description, not a prescription.} [228:16 9.6.4.8.3p16] After "descriptor" insert "(10.3.2)". [228:27 9.6.4.8.3p18] Replace "return" with "assign" and replace "in" with "to". {Subroutines do not "return" values.} [233:16-19 9.8.1p1] Replace "referred to" with "referenced" thrice. We usually use the term "referred to" in the discussion of terminology for a thing, not references to it. [242:21-22 9.11.1p2] Replace "unless the file ... instead)" with "unless an end-of-file condition occurs during execution of a stream input statement". [504:5-7 A.1] Replace ", whether" with "and whether". Delete ", and the negative ... specified unit". [504:16+ A.2] Insert a list item: " o the negative integer value assigned to the variable in an IOSTAT= specifier if a processor does not support the flush operation for the specified unit (9.11.5)." 2. Questions and comments without edits ======================================= [202:31-32 9.3.3.4p4] Should the fifth list item, concerning positioning, also be in the list in 9.3.3.4p3? [205:24 9.4p2] Do we need the last item in the list? According to R905, R909 and R931, it is impossible for the UNIT= specifier to be an internal file. Is this to prohibit a unit number in a defined I/O from being a processor's internal unit number for an internal file? [207:13 9.5.3p2, 212:30 9.5.7.1p4, 233:5 9.7.2p4] Why are CLOSE and WAIT statements allowed to refer to units that do not exist? [207:24-25 9.5.4p4 and 208:32 9.5.6.1p8] 9.5.4p4 says it is processor dependent whether a file can be connected to more than one unit at the same time. 9.5.6.1p8 prevents it. Which one is it? If it is allowed, how do asynchronous and nonadvancing I/O work? Does this need an interp? [217:32 9.6.2.9p3] It would be better to ignore an ID= specifier in a child data transfer statement. [220:5, 220:12 9.6.3p7] Why are allocatable components prohibited if a derived-type list item is treated as a list of its components? Allocatable list items are allowed directly in input and output lists, and the requirements concerning them are described in 9.6.3p4. Why not simply require that they be allocated? [225:14 9.6.4.7p2] Why are allocatable components prohibited? Why not simply require that they be allocated, as in 9.6.3p4? [228:26-28 9.6.4.8.3p18] What if there is no IOMSG= specifier in the parent data transfer statement? Does the processor provide a (zero-length?) actual argument corresponding to the iomsg dummy argument? [229:7+ 9.6.4.8.3p22+ 229:19-21 9.6.4.8.3p28] Is input (via an input list) permitted to the parent data transfer statement's internal file? Is output (via an internal file) permitted to the parent data transfer statement's internal file? 9.6.4.8.3p28 does not address these questions. Does this need an interp? [232:10-12 9.7.1p3] If the input operation completed successfully, does the variable in the SIZE= specifier become defined? Does this need an interp? [233:16-19 9.8.1p1] Is it permitted to reference a unit that is not connected? Does this need an interp? [236:1-29.10.1p3] What value is assigned to, e.g., POS= or SIZE= if INQUIRE is executed while asynchronous I/O is in progress? Should INQUIRE be a wait operation in this case? Does this need an interp? [238:33-35 9.10.2.14] An ID= specifier is prohibited in a child data transfer statement. What happens if an ID= specifier is appears in an INQUIRE statement and the unit is the "unit" argument of a defined I/O subroutine? [239:9-15 9.10.2.17] A REC= specifier is prohibited in a child data transfer statement. What happens if a NEXTREC= specifier is appears in an INQUIRE statement and the unit is the "unit" argument of a defined I/O subroutine? [240:10-15 9.10.2.22] A POS= specifier is prohibited in a child data transfer statement. What happens if a POS= specifier is appears in an INQUIRE statement and the unit is the "unit" argument of a defined I/O subroutine? [239:15 9.10.2.17] Is the order of completion of the pending data transfers important to determining the value assigned to the variable in a NEXTREC= specifier? Does this need an interp? [239:18 9.10.2.18] What value is assigned to the variable in the NUMBER= specifier if several units are attached to the file? Does this need an interp? [243:35-37 9.11.14p1(1)] To which list item does this description apply? All of the ones for which input has not yet occurred? Does this need an interp?