J3/14-121r1 To: J3 From: Van Snyder Subject: Additional or revised edits arising from 14-117 Date: 2014 February 12 1. Introduction =============== Edits are proposed here for issues raised in 14-117r1. 2. Edits ======== [14-007:201:3-4] {Revised from 14-117} 9.3.2 File existence, p3, change "An INQUIRE ... also may refer" to "A CLOSE, ENDFILE, FLUSH, INQUIRE, OPEN, PRINT, REWIND, or WRITE statement is permitted to refer". [14-007:201:6] At the end of the paragraph, append "No other statement shall refer to a file that does not exist." [14-007:207:21-22] Replace "may" by "are permitted to" twice. [14-007:207:22] At the end of the paragraph, append "No other statement shall refer to a unit that does not exist." [14-007:208:27] Before "If" insert "Before any effect on changeable modes, a wait operation is performed for any pending asynchronous data transfer operations for the specified unit." [14-007:213:1] A CLOSE statement is allowed to refer to a file that does not exist, but no semantics are specified for this case. After "exist" insert ", exists but is connected to a file that does not exist," 3. Problems for which no edits are provided =========================================== We leave it to the editor's discretion which if any of these become UTIs. [14-007:208:32-33] says "The ERR=, IOSTAT=, and IOMSG= specifiers from an OPEN statement have no effect on any subsequent OPEN statement." There is nothing similar for any other statement. This is apparently because the first sentence of 9.5.6.1p6 says "only the specifiers for changeable modes (9.5.2) may have values different from those of the existing connection." The existing sentence is an inscrutably opaque way to address this. Should we (a) delete it, (b) add ERR= etc. to the list of specifiers that can have "different values" (whatever that means), (c) replace it with a note to the effect that ERR= etc. do not specify "values for a connection", or (d) do something else? A WAIT statement is not allowed to refer to a unit that is connected to a file that does not exist, but this is allowed for a FLUSH statement. A WAIT statement is allowed to refer to a unit that does not exist or is not connected to a file, but this is not allowed for a FLUSH statement. How consistent should these statements be? [14-007:236:6-7] says "All specifier value assignments are performed according to the rules for assignment statements." There is nothing similar for any other statement. If this is necessary it should be specified for every statement that has specifiers for variables to which values might be assigned (not just I/O statements). If intrinsic assignment is expected, it should be specified. The INQUIRE statement is allowed to refer to a unit that does not exist, a unit that is not connected, or a unit that exists but is connected to a file that does not exist. With a few exceptions (EXIST= etc.) no semantics are specified for these cases (e.g POS=).