To: J3 Members J3/16-253r1 From: Van Snyder & Lorri Menard Subject: Comments on Clause 5 Date: 2016 October 11 References: 16-007r2 The edits were edited to reflect HPC's views and to make them conform to the editor's requirements. Edits declined are moved to section 1a. Questions that HPC was able to answer are at the end. 1. Edits -------- [35:4+2 5.1 "High level syntax" NOTE 5.1] Replace "R2" with "R5", preferably using \label on the clause heading and \ref here. == [38:25 5.2.1 "Program units and scoping units" p2] Replace "contains definitions" with "can contain definitions, declarations and specifications". [39:5 5.2.4 "Module" p1] Replace "contains" with "can contain"; after "definitions" insert ", declarations and specifications". {Above were modified from original paper to use the phrase found in [293:19 14.2.1 "Module syntax and semantics"]. } {It isn't necessary for it to contain either one, and it can contain declarations and/or specifications.} [39:6 5.2.4 "Module" p1] Delete first occurance of "definitions". == [40:19-20 5.3.4 "Program execution" p1] After "range one to the number of images" insert "in the initial team". This now reads: The image index that identifies an image is an integer value in the range one to the number of images in a team. {Modified from original paper because the image index will always be in this range} == [43:5 5.4.1.2 "Derived type" p1] After "Derived types" replace "may be parameterized" with "may have components and type-bound procedures, and may have <>" == [43:33 5.4.3.2 "Data object" p5(3)] Before "complex object" insert "scalar or array" for consistency with the other list items. == [43:35 5.4.3.2.1 "Variable" p1] Replace "and redefined" with ", redefined, or become undefined". {Modified from original paper to match phrase used in other places of the standard} 1a: Edits not recommended: -------------------------- [41:4+ 5.3.4 "Program execution" p2+] Insert a new paragraph: "The image index that identifies an image is an integer value in the range one to the number of images in the team." {Reason: This was covered in one of the recommended edits} == [41:15-16 5.3.5 "Execution sequence" p2] After "invoked" insert "or a BLOCK (11.1.4) begins execution". Replace "the" with "its". Delete "of the invoked procedure". [41:18 5.3.5"Execution sequence" p2] After "entry point" insert ", or of the of the BLOCK construct, respectively". [41:26 5.3.5"Execution sequence" p2(3)] Delete the list item "A Block ... this construct." {Because it doesn't say that expressions within the are evaluated in processor-dependent order.} {Reason not recommended: This block (so to speak) of edits should not be made because this section is quite specific to procedures, not block constructs. The further edits do not do enough to address block vs procedures. To repair that is a duplicate of what can be found in 11.1.4 "Block construct" which is referenced at [40:26] } == [44:20-21 5.4.4 "Definition of objects and pointers" p1] Replace "does ... undefined" with "undefined it does not have a predictable value". {The cause-and-effect relationship is backward here because we don't specify events in Clause 19 that cause variables to have unpredictable values; rather, we specify events that cause their values to become undefined.} [44:23 5.4.4 "Definition of objects and pointers" p2] Replace "not ... undefined" with "is undefined its pointer association status is not predictable". {The cause-and-effect relationship is backward here because we don't specify events in Clause 19 that cause pointers to have unpredictable association status; rather, we specify events that cause their association status to become undefined.} {Reason rejected: This is unnecessary because an undefined variable cannot be referenced [129:18 9.2 Variable p2]} == [47:17+3 5.5.3 "Other keywords" NOTE 5.13] After "facilitates" insert "program modification, and". {Reason rejected: This has no effect on whether programs can be modified or not. } == [48:8+5 5.5.7 "Companion processors" NOTE 5.124] Replace "For example, a" with "A" because this isn't an example of anything described in the previous paragraph. {Reason rejected: Yes, it is an example of what is described in the previous paragraph} 2. Questions without edits -------------------------- [42:9 5.3.7 "Termination of execution" p1] Should "all images" be "all nonfailed images"? {Answer: No, because failed images never have normal termination by virtue of the fact that they are failed images. } == I don't know if this is precisely correct, but the existing text does not contemplate the possibility that a corresponding coarray might exist on an image that is not a member of the same team: [45:24-25 5.4.7 "Coarray" p2] Replace "corresponding coarray with " by ", and there may be corresponding coarrays on images that are not members of the same team. Each corresponding coarray has". Replace "that is in the same team" with "on which it exists". {Answer: No, what is important in this section is the fact that all images in a team *must* have corresponding coarrays. It is possible that images in other teams do have corresponding coarrays, but it is also possible that unrelated programs also have corresponding coarrays, with the same level of relevance.}