13-294 From: Bill Long To: J3 Date: 30 June 2013 Subject: Changes from N1967 -> 13-293 Description: ============ Following are the changes made to the initial TS 18508 draft to create 13-293. Changes are from papers passed at the joint WG5 / PL22.3 meeting 201 in Delft, 24-28 June 2013. Notation used in the change section below: - Page and line numbers in [ ] are relative to N1967. - Meeting 201 paper numbers are enclosed in { }. - Minor editorial changes have an edit citation of {Editor}. - Editorial remarks begin with "Remark n : " where n is an integer. Changes: ======== Introduction ------------ [iv:para2] {13-276r1} Add missing failed image capability. [iv:para3] {13-276r1} Say we are providing that capability. Clause 3 Terms and definitions ------------------------------ [5:3] {13-263r1} Add a sentence to say ISO_FORTRAN_ENV is extended. [5:8-14] {13-265r1} Move defs for team variable and event variable to be after team distance. [5:10] {13-273r2} Delete LOCAL_EVENT_TYPE from event variable def. Clause 5 Teams of images ------------------------ [9:4-5] {13-289r1} Replace sentence saying access outside the team is impossible. Remark 1 : The following sentence, "Except for a SYNC TEAM statement, synchronization is possible only with other images if the team." is no longer true. This needs correction. [9:21+] {13-264r3} Add two constraints on the type TEAM_TYPE. Remark 2 : The reason for disallowing the POINTER attribute for a variable with a subobject of type TEAM_TYPE should be documented, with explanation of why it is not a requirement for a variable of type TEAM_TYPE. Remark 3 : We now have very similar sets of constraints for variables of type LOCK_TYPE, TEAM_TYPE, and EVENT_TYPE. The basic reason is the same in all cases - the desire to restrict definition of such variables to a limited set of statements. Perhaps constraints for a new concept, such as "restricted type" or "restricted-use type" could be written once and then referenced for the three cases. [9:32+] {13-258r2} Add two constraints on CHANGE TEAM construct. [10:11-16] {13-288r1} Replace last paragraph of CHANGE TEAM to allow for separate synchronization. [10:17-] {13-289r1} Add new section on modified image selectors. Remark 4 : This new syntax needs illustrative examples. A Note at the end of the new section would be good; at least an example in the Annex. [10:18] {13-291r1} Modify R505 to allow choice of the new image index. Remark 5 : This new syntax needs illustrative examples. A Note at the end of the new section would be good; at least an example in the Annex. [10:19] {13-291r1} "integer" -> "int" in syntax term. (Fix wrong name.} [10:19+] {13-291r1} Add syntax term , and constraint. [10:20] {Editor} Add a sentence saying FORM SUBTEAM is an image control statement. {Edits were supplied for some cases, but this one was missed.} [10:22+] {13-291r1} Add a new paragraph about image index selection. [10:22+] {13-264r3} Add a new paragraph on execution of FORM SUBTEAMS. [10:22+] (13-279) Add a new paragraph on synchronization for FORM TEAM statements. {Editor : Removed the (8.5.2) reference, as this is only relevant to 007 and not the TS. It can be added back during integration.} [10:26] {Editor} Add a sentence saying SYNC TEAM is an image control statement. {Edits were supplied for some cases, but this one was missed.} [10:26-27] {13-264r3} Replace the first sentence after R507. [11:2-12] {13-276r1} Replace the text of 5.6 STAT_FAILED_IMAGE. Remark 6 : Would it be useful to have another Note that says failure of image 1 of the initial team of images is particularly problematic because of the lost connection to standard input? Clause 6 Events --------------- [13:6] {13-273r2} Delete LOCAL_EVENT_TYPE in subclause title. [13:7-13] {13-273r2} Replace first two paragraphs of 6.2. [13:14-15] {13-273r2} Delete LOCAL_EVENT_TYPE in C601 twice. [13:21] {13-273r2} Delete LOCAL_EVENT_TYPE in C603. [13:22] {13-273r2} Change "context," to "except". [13:24+] {13-273r2} Replace text of Note 6.1. [13:24+] {Editor} Move the new Note 6.1 to [14:11+]. {The old Note was intended to contrast the restriction on variables of type LOCAL_EVENT_TYPE with the lack of restriction for EVENT_TYPE. That is no longer relevant. However, the Note does add explanation of C605 in 6.4. So, the Note was moved to 6.4.} [13:26] {13-273r2} Add sentence saying EVENT POST is an image control statement. [13:29-30] {13-273r2} Modify C604. {Editor: The paper edit limited the restriction on to "in an ". That quoted text was removed from the edit. The restriction is on any , not only ones in EVENT POST statements.} [14:2] {13-273r2} Add sentence saying EVENT WAIT is an image control statement. [14:4] {13-273r2} Modify C605 to disallow coindexed event variable in EVENT WAIT. [14:5] {Editor} Change "image shall wait until" to "image waits until". {This is a statement of how EVENT WAIT works, not a requirement on the program.} [14:6] {13-273r2} Change "shall" to "do". [14:7-11] {13-290r1} Modify paragraph to fix description of segment ordering by EVENT POST/WAIT. [14:11+] {13-290r1} Add a Note explaining EVENT segement ordering. Clause 7 Intrinsic procedures ----------------------------- [15:9+] {13-272r1} Add subclause "Atomic subroutines". Remark 7 : In the case of an optional OLD argument to an atomic subroutine, the code generated is different depending on whether OLD is present or not. This is a side effect of economizing on subroutine names by using the same name for two operations. If the user writes an OLD argument into the call, it will almost always be the case that it will be referenced soon after the call. We should probably say that and optional OLD argument that appears shall be present. [15:9++] {13-280} Append a sentence to the Atomic subroutines subclause. [15:14] {13-287r1} "calls to" -> "invocations of" [15:19] {13-287r1} Add sentence requiring STAT on all calls. {Editor: Changed "the present team" to "the current team" to use correct term, and to avoid confusion over "present" when discussing subroutine calls.} [15:22-29] {13-276r1} Replace 7.2 para 5 about the STAT argument. [15:24] {Editor} The replacement 7.2 paragraph 5 has a mixture of "becomes defined with" and "is assigned" to describe the process of STAT getting a value. Changed all cases to "is assigned". Remark 8 : The first sentence of the new paragraph says that a failed execution of a collective is the same as SYNC MEMORY which has the effect of making it an image control statement. But a successful execution is not an image control statement. This is not consistent. The end of the sentence "and the effect...SYNC MEMORY statement" should be deleted. Remark 9 : The last sentence of the same paragraph as above says "..an image had failed..". It is unclear what image counts here. Any one from the initial team, or just ones in the current team (and hence involved with the call)? Probably intend the current team, but it should be clarified. [15:32] {13-287r1} Add sentence about what happens when error condition occurs and no STAT argument. {Editor: Moved to be a separate paragraph after [15:29], similar to style of 8.5.7.} [16:7] {13-272r1} In the OLD argument description change "becomes" to "is". [16:11] {Editor} Change "ORIG becomes defined" to "ORIG is defined". {For consistency with edit at [16:7].} [16:21] {13-272r1} In the OLD argument description change "becomes" to "is". [16:23] {Editor} Change "to become defined" to "to be defined". {For consistency with the edit at [16:21].} [16:35] {13-272r1} In the OLD argument description change "becomes" to "is". [16:40] {Editor} Change "OLD to become defined" to "OLD to be defined". {For consistency with edit at [16:35].} [17:10] {13-272r1} In the OLD argument description change "becomes" to "is". [17:11] {Editor} Change "ATOMIC_XOR" to "ATOMIC_OR. {The Example is for ATOMIC_OR.} [17:12] {Editor} Change "to become defined" to "to be defined". {For consistency with the edit at [17:10].} [17:23] {13-272r1} In the OLD argument description change "becomes" to "is". [17:26] {Editor} Change "to become defined" to "to be defined". {For consistency with the edit at [17:23].} [17:27] {Editor} Change "exclusive XOR operation" to "exclusive OR operation". {The X is redundant with exclusive.} Remark 10 : In the description of the OPERATOR argument to CO_REDUCE we say that the operation is commutative, but fail to say is is associative. That should be added. [20:38] {13-273r2} Delete "or LOCAL_EVENT_TYPE". [21:9+] {13-273r2} Add Note 7.1. Clause 8 Required editorial changes to ISO/IEC 1539-1:2010(E) ------------------------------------------------------------- [25:32] {13-273r2} Delete "or LOCAL_EVENT_TYPE". [25:30-26:3] {13-265r1} Move defs for team variable and event variable to be after team distance. Remark 11 : In Note 4.48 in 4.5.6.2 The finalization process, we might need to add "in the current team" at the end and consider rewording to avoid the word "event". [26:28] {13-289r1} Modify the current edit to allow a team variable in an image selector. Remark 12 : The following sentence, "Except for a SYNC TEAM statement, synchronization is possible only with other images if the team." is no longer true. This needs correction. {Same issue as in TS clause 5.} [26:40+] {13-289r1} Insert edits to the change in the syntax for image selectors. [26:40++] {13-281} Added changes for "all images" -> "images in the current team" for ALLOCATE and DEALLOCATE. {Editor : Converted the edits to use the strike-out/insert style used elsewhere in clause 8.} Remark 13 : We need an edit for the STAT= description in 6.7.4 similar to the changes made in 8.5.7 below to account for "current team" and also STAT_FAILED_IMAGE". Remark 14 : Does a CRITICAL section apply to all images of the initial team of images, or just the current team? Probably the initial set (because it is usually use to protect a global resource), but that should be clarified. [27:12+] {13-282r1} Add exemption from segment ordering for events. {Editor: Modified the edit instructions to avoid repeating the first sentence.} [27:18+] {13-288r1} Added change for "all images" -> "images in the current team" for SYNC IMAGES. {Editor: changed "of the current team" to "in the current team" to match the wording of the similar edits for ALLOCATE/DEALLOCATE.} [27:18++] {13-281} Add changes for "all images" -> "images in the current team" for SYNC ALL. {Editor: Converted edits to use the strike-out/insert style used elsewhere in clause 8.} [27:27-35] {13-276r1} Replace para on STAT= specifier. Remark 15 : The new text in the edits for 8.5.7 includes the case of a STAT= specifier appearing on an END TEAM statement, but there is no syntax for that. In both the replacements for paragraphs 1 and 2, and paragraphs 4 and 5. Note that the text for paragraph 1 contains the "as an appearance both there and in the corresponding END TEAM" which has various ambiguities and needs to be fixed. Remark 16 : For the same sets of edits above, there is no mention of EVENT POST or EVENT WAIT. Both of these statements have optional STAT=. [28:9+] {13-272r1} Add new sentence for OLD arguments to atomic subroutine paragraph. [28:9++] {13-280} Add new sentence for INTENT(IN) arguments to atomic subroutine paragraph. [28:22-29] {13-272r1} Replace para on STAT argument. Remark 17 : In the table entries for intrinsics on page 19 we refer to "all images" 5 times in reference to collectives. This needs the "current team" fix. Or just say "across images". [30:12] {13-273r2} Delete "and LOCAL_EVENT_TYPE". [30:17+] {13-271} Add cases of variable definition contexts for team variable and team variable. {Editor: Modified edit by changing "add a new entry" to "add two new entries" since there are two.} [32:1] {Editor} Change "LOCAL_EVENT_TYPE" to "EVENT_TYPE" in code example. {LOCAL_EVENT_TYPE was renamed EVEN_TYPE in the TS.} [33:5-11] {13-263r1} Replace the section of code. [33:21] {13-263r1} Replace the line containing MERGE. ==END==