To: J3 J3/13-323r1 From: Dan Nagle Subject: UK-10.2f Obsolescenting forall Date: 2013 October 14 Reference: N1975, N1982 Specification: The forall statement and forall block are made obsolescent. Syntax: no change, obsolescence only These edits do three things. (1) They obsolesce FORALL. (2) They move the <> BNF to the DO CONCURRENT subclause. (3) They rename <> to <>, <> to <>, <> to <>, and <> to <>. Edits: {add a comment in the Intro} [Intro] add to the new features list "FOARLL has not been as effective as had been hoped and so has been specified to be obsolescent." {rename <> to <>} [163:30] change "<>" to "<>" [164:26] change "<>" to "<>" [167:7] change "<>" to "<>" [168:7] change "<>" to "<>" [174:11] change "<>" to "<>" [442:32} change "<>" to "<>" {rename <> to <>} [163:26] change "<>" to "<>" [163:31] change "<>" to "<>" [164:1] change "<>" to "<>" [164:20-21] change "<>" to "<>" twice [165:3] change "<>" to "<>" [166:7] change "<>" to "<>" {rename <> to <>} [139:7] change "<>" to "<>" [164:1] change "<>" to "<>" twice [164:2] change "<>" to "<>" [165:3] change "<>" to "<>" [165:6-7] change "<>" to "<>" twice [166:6] change "<>" to "<>" {rename <> to <>} [139:7] change "<>" to "<>" [164:1] change "<>" to "<>" [164:3] change "<>" to "<>" [165:3] change "<>" to "<>" [165:7-9] change "<>" to "<>" twice [166:6] change "<>" to "<>" {now, move the renamed <> and friends to the do concurrent section} [163:31-164:3] move to [174:28+] and renumber as needed [164:15-21] move to [174:28++] and renumber as needed {finally, obsolescent forall} [4:38] set in obs font "<>" [29:20] set in obs font "<>" [29:40] set in obs font "<>" [46:1-] in the table, set in obs font "END FORALL" [139:7] set in obs font "a FORALL statement (7.2.4)" [163:23-168:8] set in obs font section 7.2.4 [176:21] set in obs font "FORALL construct (7.2.4.2.2 and 7.2.4.2.3)". [187:6] set in obs font "a <>," [313:9+] set in obs font in Note 12.49 "FORALL <>" and much later "FORALL statements" [313:9+] set in obs font in Note 12.50 "<>s" [442:13-14] set in obs font "FORALL statement" and "FORALL or". [442:30] Change "FORALL statement or FORALL or" to "\obs{FORALL statement, FORALL construct, or}". [442:34-35] set in obs font "FORALL or" twice and "FORALL statement or" once [442:37-40] set in obs font "FORALL statement, FORALL construct, or" twice. [442:41] set in obs font "FORALL or" [453:14-15] set in obs font "or FORALL assignment statement" [453:16] set in obs font "or FORALL assignment statement" [454:38] set in obs font "FORALL or" {add to list of obsolescent features in B.2} {note that several features may be added to the obsolescent list it is the editor's choice which order they appear} [465:26+] add "B2.9+ FORALL construct and statement The FORALL construct and statement were added to the language in the expectation that they would enable highly efficient execution, especially on parallel processors. However, experience indicates that they are too complex and have too many restrictions for compilers to take advantage of them. They are redundant with the DO CONCURRENT loop, and many of the manipulations for which they might be used can be done more effectively using pointers, especially using pointer rank remapping."