To: J3 Members J3/17-144 From: Van Snyder Subject: Locality specs in DO CONCURRENT References: 17-007r1, 16-199, 16-248 Date: 2017 March 14 During the interval since meeting 210, an apparently persuasive argument has been advanced that facilities that can be provided by directives ought not to be incorporated as features of the language. A complementary argument was that features ought not to be added if the facilities they would provide can be gotten using extant features. A further supporting argument was that vendors already have too much on their plates, and the size of the present revision, and perhaps future ones as well, ought to be limited by not entertaining such features. Locality specifications are not simply in principle available as directives for some future hypothetical processor or preprocessor: they are already provided by OpenMP directives. If one prefers not to use those directives, their effect can be gotten by using object declarations and IMPORT statements within a BLOCK construct within a DO CONCURRENT construct. According to those arguments, and the apparent consensus of their advantages, locality specs ought to be deleted from the current revision. 2. Edits ======== [xviii intro under "Execution control"] Delete "The locality ... explicitly specified." [190:23 11.1.7.2 Form of the DO construct R1123] Delete "" from the right-hand side of R1123. [191:2-6 11.1.7.2 Form of the DO construct R1129-R1130] Delete syntax rules R1129 and R1130. [191:12-28 11.1.7.2 Form of the DO construct C1124-C1129] Delete constraints C1124, C1125, C1126, C1127, C1128, and C1129. [194:21-45 11.1.7.5 Additional semantics for DO CONCURRENT constucts] Delete 11.1.7.5p1-3 [195:1 11.1.7.5p4 Additional semantics for DO CONCURRENT constucts] Replace the introduction to the list with "If a variable appears within a DO CONCURRENT construct and" [195:2,5,8,11,13,15 11.1.7.5p4 Additional semantics for DO CONCURRENT constucts] Replace "if it" with "it" six times. [195:17+ 11.1.7.5p4+ Additional semantics for DO CONCURRENT constucts] Insert NOTE 11.9a: "NOTE 11.9a Variable declarations within a BLOCK construct within a DO CONCURRENT construct can specify explicitly which variables are not to be shared between iterations. IMPORT statements can specify explicitly which variables are imported into a BLOCK construct within a DO CONCURRENT construct and shared between iterations, or that none are imported." [516:11-12 19.4p1 Statement and construct entities] Delete "A variable that has LOCAL or LOCAL_INIT locality in a DO CONCURRENT construct is a construct entity." [516:36-37 19.4p6 Statement and construct entities]] Delete 19.4p6, viz. "A variable that has LOCAL or LOCAL_INIT locality in a DO CONCURRENT construct has the scope of that construct. Its attributes are specified in 11.1.7.5." [523:22-23 19.5.2.5p1(13) Events that cause the association status of pointers to become undefined] Delete list item (13), viz. "An iteration of a DO CONCURRENT construct completes and the pointer is associated with a variable of that construct that has LOCAL or LOCAL_INIT locality." [529:35-36 19.6.5p1(26) Events that cause variables to become defined] Delete list item (26), viz. "In a DO CONCURRENT construct, a variable with LOCAL_INIT locality becomes defined at the beginning of each iteration." [531:30-31 19.6.6p1(18) Events that cause variables to become undefined] Delete list item (18), viz. "When execution of an iteration of a DO CONCURRENT construct completes, a construct entity of that construct which has LOCAL or LOCAL_INIT locality becomes undefined."