ISO/IEC JTC1/SC22/WG5 N2057 Editor's report for WG5/N2056 Bill Long, 19 May 2015 Document WG5/N2056 was prepared by applying edits to WG5/N2048 based on the Ballot Response document WG5/N2055. Additional edits are noted by the prefix "Ed:". Comments following edits are enclosed in { }. The edits are ordered here based on page and line number of WG5/N2048. Edits to WG5/N2048: =================== Edits for Clause 1 Scope ------------------------ (none) Edits for Clause 2 Normative References --------------------------------------- (none) Edits for Clause 3 Terms and definitions ---------------------------------------- [5:6] 3.1 active image: Change "An image" to "image". {Correct form of definition.} [5:9-10] 3.2 asynchronous progress: Replace definition with "ability of an image to reference or define a coarray on another image without waiting for that image to execute any particular statement or class of statement" {"require" is wrong, since that would entail a requirement being imposed by the standard, which is not what is meant here; and it should all be singular} [5:11-14] 3.3 collective subroutine: Delete term and definition. {This definition is useless and uninteresting.} [5:17] 3.4 established coarray: Replace definition by "(in a team) coarray that is accessible using a coindexed designator (5.1)". {Simplify wording of definition.} {Ed: changed "(in a team)" to "\termqual{in a team}"} [5:23-24] 3.5.1 current team: Replace definition with qualification and text as follows "\termqual{of an image} team specified by the most recently executed CHANGE TEAM statement of an active CHANGE TEAM construct, or initial team if no CHANGE TEAM construct is active (5.1)". {Avoid "innermost" in definition. Ed: Added cross-reference at end of edit.} [5:27] 3.5.2 initial team: Replace with the following: "team, consisting of all images, that began execution of the program (5.1)". {Avoid referring to "current team" in definition. Ed: Added cross-reference at end of edit.} [5:30] 3.5.3 parent team: Replace definition by "\termqual{of a team} current team during the execution of the CHANGE TEAM statement that established the team (5.1)" [5:32-33] 3.5.4 team identifier: Replace definition by "<> integer value identifying a team within its parent team (5.1)". {Clarify definition and change name to "team number".} [5:36-38] 3.6 failed image: Replace definition with "image that has ceased participating in program execution but has not initiated termination (6.1)". {Just say what we mean without going into the details of what the consequences are. Ed: Added cross-reference at end of edit.} [6:1] 3.7 stopped image: Change "an image" to "image". {Correct form of definition.} Edits for Clause 4 Compatibility -------------------------------- (none) Edits for Clause 5 Teams of images ---------------------------------- [9:2] 5.1 Introduction: Change subclause title "Introduction" to "Team concepts". {This is introductory matter explaining team concepts, so...} [9:8] 5.1 Introduction, p1: Replace "identifier" by "number". [9:10-11] 5.1 Introduction, p2: Replace whole paragraph with "During execution, each image has a current team, which is only changed by execution of CHANGE TEAM and END TEAM statements. Executing a CHANGE TEAM statement changes the current team to the team specified by the , and execution of the corresponding END TEAM statement restores the current team back to that immediately prior to execution of the CHANGE TEAM statement." [9:15] 5.1 Introduction, p3: Replace "associating coarray" by "coarray that is an associating entity in a of a CHANGE TEAM statement". {Ed: Also changed the preceding "An" to "A".} [11:6] 5.4 Image selectors:, [11:12] 5.4 Image selectors, p3:, [11:15] 5.4 Image selectors, p3: (twice) Replace "TEAM_ID" by "TEAM_NUMBER". [11:13] 5.4 Image selectors, p3: Replace "identifier" by "number". [11:16+] 5.4 Image selectors p3: Add two new paragraphs: "Execution of a statement containing an with a STAT= specifier causes the to become defined. If the designator is part of an operand that is evaluated, and the object designated is on a failed image, the is defined with the value STAT_FAILED_IMAGE; otherwise, it is defined with the value zero. The denotation of a in an shall not depend on the evaluation of any entity in the same statement. The value of an expression shall not depend on the value of any that appears in the same statement. The value of a in an shall not be affected by the execution of any part of the statement, other than by whether the image specified by the has failed." [11:16+] 5.4 Image selectors, in the above edit, insert after STAT_FAILED_IMAGE "in the intrinsic module ISO_FORTRAN_ENV". {Ed: Add qualification since this text is no longer in the same clause there STAT_FAILED_IMAGE is defined.} [11:16+1] 5.4 Image selectors, Note 5.2: Replace "team_id" by "team_number". [11:16++] 5.4 Image selectors: After Note 5.2 add a new Note: "NOTE The expression x[i,stat=is(f(n))], where is is an array and f(n) is a function that returns an integer value is an example of the denotation of a in an that depends on the evaluation of an entity in the same statement." [12:2, 4] 5.5 FORM TEAM statement: Replace "team-id" by "team-number" (twice). [12:8-10] 5.5 FORM TEAM statement, p1: Replace whole paragraph with: "The FORM TEAM statement creates one or more teams from the active images of the current team. The value of shall be positive and identifies the new team to which the executing image will belong. The team number of each new team within the current team is the value of the FORM TEAM statements executed by its images. Successful execution of a FORM TEAM statement assigns the on each participating image a value that specifies the new team that the image will belong to." [12:12, 13, 15] 5.5 FORM TEAM statement, p2: Replace "team-id" by "team-number" (thrice). [12:15] 5.5 Form TEAM statement, p2: After "positive" insert ", unique within the team,". Edits for Clause 6 Failed images -------------------------------- [15:4] 6.1 Introduction, p1: Replace the semicolon with a comma. {Ed: Overwritten by the following edit.} [15:3:5] 6.1 Introduction, p1: Replace "for which references ... collective subroutine." by "that has ceased participating in program execution but has not initiated termination.". {Ed: The definition of failed image in Clause 3 was replaced by an edit from a ballot comment. The corresponding change should be made here.} [16:5-7] 6.3 CRITICAL construct: Replace the sentence "In the CRITICAL ... execute the construct." by a new paragraph: "If the processor has the ability to detect that an image has failed, when an image completes execution of a CRITICAL statement that has a STAT= specifier and the previous image to have entered the construct failed while executing it, the specified variable becomes defined with the value STAT_FAILED_IMAGE in the intrinsic module ISO_FORTRAN_ENV. Otherwise, when an image completes execution of a CRITICAL statement that has a STAT= specifier, the specified variable becomes defined with the value zero. When an image completes execution of a CRITICAL statement that has an ERRMSG= specifier, if it assigns a nonzero value to the status variable of a STAT= specifier or would have done so if a STAT= specifier had appeared, the processor shall assign an explanatory message to the specified variable as if by intrinsic assignment; otherwise, the value of the specified variable shall not be changed." {Supply missing semantics for STAT= and ERRMSG= in a CRITICAL statement.} {Ed: Changed "from the intrinsic module" to "in the intrinsics module" for wording consistency.} [16:22] 6.4 STAT_FAILED_IMAGE, p2: After "STAT_UNLOCKED" insert "in that module". Edits for Clause 7 Events ------------------------- [17:13] 7.2 EVENT_TYPE, p2: Insert "of" before "type". [18:25+9 NOTE 7.5:2] Remove "of type EVENT_TYPE". {Specifying "Event variables of EVENT_TYPE" implies that there are event variables of other types, to which the note does not apply. Subclause 7.2 (at [17:8]) defines an event variable to be a variable of EVENT_TYPE.} Edits for Clause 8 Intrinsic procedures --------------------------------------- [19:6] 8.1 Intrinsic procedures/General, p1: Replace "TEAM_ID" by "TEAM_NUMBER". [28:5] 8.4.16 FAILED_IMAGES: Move the first sentence of Result Value "If TEAM ... current team" to the description of the TEAM argument. {It has nothing to do with the result value.} {Ed: Simply moving the sentence to the TEAM argument leads to awkward wording. Alternate edits used: In the TEAM argument, replace the sentence "Its value shall ... ancestor team" by "If TEAM is present its value shall represent the current or an ancestor team, and it specifies the team; otherwise, the team specified is the current team.", and delete "If TEAM ... current team" from the Result Value. This wording also avoids placing a requirement on the value of TEAM in the case where TEAM is not present.} [29:12] 8.4.18 IMAGE_STATUS: Move the first sentence of Result Value "If TEAM ... current team" to the description of the TEAM argument. {It has nothing to do with the result value.} {Ed: Simply moving the sentence to the TEAM argument leads to awkward wording. Alternate edits used: In the TEAM argument, replace the sentence "Its value shall ... ancestor team" by "If TEAM is present its value shall represent the current or an ancestor team, and it specifies the team; otherwise, the team specified is the current team.", and delete "If TEAM ... current team" from the Result Value. This wording also avoids placing a requirement on the value of TEAM in the case where TEAM is not present.} [29:29] 8.4.19 STOPPED_IMAGES: Move the first sentence of Result Value "If TEAM ... current team" to the description of the TEAM argument. {It has nothing to do with the result value.} {Ed: Simply moving the sentence to the TEAM argument leads to awkward wording. Alternate edits used: In the TEAM argument, replace the sentence "Its value shall ... ancestor team" by "If TEAM is present its value shall represent the current or an ancestor team, and it specifies the team; otherwise, the team specified is the current team.", and delete "If TEAM ... current team" from the Result Value. This wording also avoids placing a requirement on the value of TEAM in the case where TEAM is not present.} [29:39] 8.4.20 TEAM_ID: Replace "TEAM_ID" by "TEAM_NUMBER". [29:40] 8.4.20 TEAM_ID: Replace "identifier" by "number". [30:5] 8.4.20 TEAM_ID: Move the first sentence of Result Value "If TEAM ... current team" to the description of the TEAM argument. {It has nothing to do with the result value.} {Ed: Simply moving the sentence to the TEAM argument leads to awkward wording. Alternate edits used: In the TEAM argument, replace the sentence "Its value shall ... ancestor team" by "If TEAM is present its value shall represent the current or an ancestor team, and it specifies the team; otherwise, the team specified is the current team.", and delete "If TEAM ... current team" from the Result Value. This wording also avoids placing a requirement on the value of TEAM in the case where TEAM is not present.} [30:6-7] 8.4.20 TEAM_ID, Result Value: Replace "team identifier ... specified team" by "team number identifying the team of the invoking image within TEAM". {Ed: Changed end of the replacement text "within TEAM" to "within the specified team". TEAM does not work here because the TEAM argument is optional.} [30:8,14] 8.4.20 TEAM_ID, Example: Replace "TEAM_ID" by "TEAM_NUMBER" (twice). [30:26] 8.5.1 ATOMIC_REF and ATOMIC_DEFINE, p2, after "type integer" insert " with a decimal range of at least four". {Ed: While correct at [40:10], this qualification that applies to all STAT arguments was missing here.} [30:29,33] 8.5.2 IMAGE_INDEX, p1 and p3: Replace "TEAM_ID" by "TEAM_NUMBER" (twice). [30:34] 8.5.2 IMAGE_INDEX, p3: Replace "identifier" by "number". [31:27,31] 8.5.4 NUM_IMAGES, p1 and p3: Replace "TEAM_ID" by "TEAM_NUMBER" (twice). [31:32] 8.5.4 NUM_IMAGES, p3: Replace "identifier" by "number". Edits for Clause 9 Required editorial changes --------------------------------------------- [33:19] 9.2 Edits to Introduction: Replace "TEAM_ID" by "TEAM_NUMBER". [33:35-36] 9.3 Edits to clause 1, Replace definition of "asynchronous progress" by "ability of an image to reference or define a coarray on another image without waiting for that image to execute any particular statement or class of statement". [33:37-34:2] 9.3 Edits to clause 1: Delete term and definition: 1.3.30a collective subroutine. [34:5] 9.3 Edits to clause 1: Replace definition of "established coarray" by "(in a team) coarray that is accessible using a coindexed designator (8.1.4a)". {Ed: Changed (in a team) to \termqual{in a team}.} [34:8] 9.3 Edits to clause 1: In definition of "active image", change "an image" to "image". [34:11-13] 9.3 Edits to clause 1: Replace definition of "failed image" by "image that has ceased participating in program execution but has not initiated termination". {Just say what we mean without going into the details of what the consequences are.} {Ed: Added "(2.3.6)" reference at end of definition.} [34:16] 9.3 Edits to clause 1: In definition of "stopped image" change "an image" to "image". [34:22-23] 9.3 Edits to clause 1: Replace definition of "current team" with qualification and text as follows "\termqual{of an image} team specified by the most recently executed CHANGE TEAM statement of an active CHANGE TEAM construct, or initial team if no CHANGE TEAM construct is active". {Ed: Added "(2.3.4)" reference at end of definition.} [34:26] 9.3 Edits to clause 1: Replace definition of "initial team" by "team, consisting of all images, that began execution of the program". {Ed: Added "(2.3.4)" reference at end of definition.} [34:29] 9.3 Edits to clause 1: Replace definition of "parent team" by "\termqual{of a team} current team during the execution of the CHANGE TEAM statement that established the team (5.1)". {Ed: Replaced reference "(5.1)" by "(2.3.4)" at end of definition.} [34:31-32] 9.3 Edits to clause 1: Replace term and definition of "team identifier" by "<> integer value identifying a team within its parent team (2.3.4)". [35:28] 9.6 Edits to clause 6, first edit: In rule R624a replace "TEAM_ID" by "TEAM_NUMBER". [35:34] 9.6 Edits to clause 6, third edit, change "the two paragraphs" to "the four paragraphs". {Ed: Changes in this draft added two paragraphs in 5.4.} [37:4] 9.7 Edits to clause 8, third edit: Before "}" add 'After para 3, add a new para: "The effect of a STAT= or an ERRMSG= specifier in a CRITICAL statement is explained in 8.5.7."'. [38:16] 9.7 Edits to clause 8, first edit to 8.5.7, p1: Insert a new sentence at the beginning of paragraph: "If the STAT= specifier appears in a SYNC MEMORY statement and its execution is successful, the specified variable is assigned the value zero.". [38:17] 9.7 Edits to clause 8, first edit to 8.5.7, p1: Delete "SYNC MEMORY". [38:35] 9.7 Edits to clause 8, first edit to 8.5.7, p4: After "specifier" add "that is not a SYNC MEMORY statement". [38:40] 9.7 Edits to clause 8, second edit to 8.5.7, in the edit instructions: Before "}" add "the following paragraphs, then add the final paragraph of 6.3 CRITICAL construct of this Technical Specification.". [40:1-1] 9.9 Edits to clause 13, first edit to Table 13.1: Replace "TEAM_ID" by "TEAM_NUMBER". [40:1-1] 9.9 Edits to clause 13, first edit to Table 13.1: Replace "identifier" by "number". [40:3+5, 3+9] 9.9 Edits to clause 13, second edit to Table 13.1: Replace "TEAM_ID" by "TEAM_NUMBER" (twice). [41:6, 8, 14] 9.9 Edits to clause 13, in the three edits to 13.7.79 IMAGE_INDEX: Replace "TEAM_ID" by "TEAM_NUMBER" (thrice). [41:15] 9.9 Edits to clause 13, in the third edit to 13.7.79 IMAGE_INDEX: Replace "identifier" by "number". [41:30, 35] 9.9 Edits to clause 13, in the first and second edits to 13.7.126 NUM_IMAGES: Replace "TEAM_ID" by "TEAM_NUMBER" (twice). [41:36] 9.9 Edits to clause 13, in the second edit to 13.7.126 NUM_IMAGES: Replace "identifier" by "number". [43:3] 9.9 Edits to clause 13, in the edit adding STAT_FAILED_IMAGE, at the end of the instructions, after "Specification", insert ", but omitting the second paragraph". {Ed: The second paragraph of 6.4 is redundant with the new edit at the end of 9.9.} [44:20+] 9.11 Edits to Annex A, at the end of the third edit: Add bullet: "the value assigned to a STAT argument in a reference to an atomic or collective intrinsic procedure when there is an error condition (13.1).". Edits for Annex A ----------------- [45:30] A.1.1 Example using three teams: In the second SELECT CASE statement, replace "TEAM_ID" by "TEAM_NUMBER". [46:30] A.1.2 Accessing coarrays in sibling teams: In the SELECT CASE statement, replace "team_id" by "team_number". {Ed: Additional changes in this example: Make "team_number" at [46:30] uppercase, and also "any" in [46:15-18] to be consistent in making names of language intrinsics uppercase. Also, change the name of the variable "teamid" to "teamnum" to reflect the name change from team_id to team_number.} [46:33, 36] A.1.2 Accessing coarrays in sibling teams: In the assignments to b(:,10), replace "TEAM_ID" by "TEAM_NUMBER" (twice). [48:20-39] A.2.1 Example involving failed images: Indent executable statements by 2. [48:40] A.2.1 Example involving failed images: Indent by 4. [48:41] A.2.1 Example involving failed images: In the IF statement before "iter " DO", replace "TEAM_ID" by "TEAM_NUMBER". [52:37+] A.3.3 EVENTS example: before the EVENT WAIT statement: Add line " IF (NC(I) > 0) THEN" [52:38-39] A.3.3 EVENTS example: Indent new IF block body. [52:39+] A.3.3 EVENTS example: Add line " END IF" =============END============