Minutes of Electronic ARG Meeting 62K
3 June 2021
Attendees: Steve Baird, John Barnes, Randy Brukardt, Arnaud Charlet, Jeff Cousins, Gary Dismukes, Claire Dross, Bob Duff, Brad Moore (off the call between 11:40 and 12:28 for a COVID shot), Jean-Pierre Rosen, Ed Schonberg, Justin Squirek, Tucker Taft, Tullio Vardanega, Richard Wai.
Observers: None.
The meeting convened on Thursday, 3 June 2021 at 10:36 hours EST and adjourned at 12:35 hours EDT. The meeting was held using Google Meet. The meeting covered the entire agenda other than optional items.
Steve welcomes everyone.
No one sent apologies.
There were no comments on the minutes: Approve minutes: 15-0-0.
We do not have a meeting proposed at this time. We need to determine our next steps first.
Randy summaries the WG 9 review. There were 179 comments received (after splitting a few comments); some of these covered multiple items. [This was about 3 times the expected amount – Editor.] 42 comments were judged to require no action. 21 comments were deferred. Most of the deferred comments were improvements (not corrections) for wording unchanged since the original Ada 2012. These were judged out of bounds at this time as any fix can introduce a bug, and making changes where not necessary adds more risk than gain at this last stage. The remainder were unlikely scenarios without obvious answers (for instance, Steve raised a question about the accessibility of the loop parameter of a reduction expression).
All of the remaining 116 comments were addressed. A few were white space changes that are not generally recorded (like bad line breaks or the layout of parameters in a language-defined subprogram). Many were able to be applied as Editorial Review changes on existing AIs that are not yet WG 9 approved (all such changes do not change the intent of the wording and most have no semantic effect). Remaining comments on AARM notes are recorded in AI12-0005-1. And the rest of the comments were turned into AIs for this meeting to discuss and approve. For these, the original comments are recorded in the !appendix of the AI.
After all of the AIs were discussed, we took a vote to approve this result.
The additional AIs will be incorporated into the RM, and then the RM will be formally given to WG 9 for its approval.
Vote to approve RM and submit to WG 9: 15-0-0.
We give ourselves a round of applause for completing Ada 202x. We give an additional round of applause for our editor, for his efforts in processing a mountain of comments in a short period of time.
There are two unfinished action items (Steve Baird, AI12-0016-1; Tucker Taft: OpenMP Technical Report). We did not discuss these.
The combined unfinished old action items and new action items from the meeting are shown below.
The minutes cover detailed review of Ada 2012 AIs (AI12s). The AI12s are presented in numeric order, which is not necessarily the order in which they were discussed. Votes are recorded as “for”-“against”-“abstentions”. For instance, a vote of 6-1-2 would have had six votes for, one vote against, and two abstentions.
If a paragraph number is identified as coming from the working Ada 202x AARM, the number refers to the text in draft 30 of the Ada 202x AARM. Paragraph numbers in other drafts may vary. Other paragraph numbers come from the final consolidated Ada 2012 AARM; again the paragraph numbers in the many drafts may vary.
The discussion of AI12-0432-1 noted that this AI should have been classified as a Binding Interpretion – we don't want Ada 2012 implementations doing predicate checks differently from Ada 202x implementations.
Change classification of AI to Binding Interpretation: 14-0-0.
These were last minute things found just before publishing Draft 29 (the one reviewed by WG 9). These should not change any semantics.
Approve AI: 15-0-0.
Typo: “refernece” in the !wording section.
Approve AI with changes: 15-0-0.
Confusing in !problem (10). “Tucker notes... language bug {because}[in that] code...”
(14) Tucker suggests adding a chunk_specification to parallel blocks. Wording is proposed at the end of the !appendix.
After discussion, we agree to replace (14) with Tucker’s proposal.
(17) “statically denotes” → “statically names”. Replace the round quotes as they don’t display properly on some systems.
In !problem (17): “we now [has]{have}...”
Brad: typo in problem (1): “type{s} do not have names...”. “The RM [we] doesn’t ...”
Approve AI with changes: 14-0-1. Arnaud abstains.
Tucker wonders if other aspects have this problem.
Tucker finds Default_Iterator has the same problem. The editor will add corresponding wording to that.
Approve AI with changes: 13-0-2 Ed, John abstain.
This AI was missing from the agenda and indexes, [The header of this AI was missing all status lines which prevented the tools from including it in any index or report.- Editor.] Steve asks if there is any objection to voting on this AI; none was voiced.
Tucker explains the AI; he is making the presentation of the examples consistent throughout the RM.
Approve AI: 13-0-2. Claire, Arnaud abstain.
Approve AI: 15-0-0.
This is only in the case where the predicate is statically True. We don’t try to solve the problem for a predicate that is confirming for a subtype.
Approve AI: 12-0-2. Randy, Claire abstain.
For 3.2.4(31/5) use Randy’s simplifications.
Gary wonders why we treat target names differently in these rules. We want the semantics of @ to match as closely as possible the semantics of writing the name explicitly. If you write T(X) in an expression, certainly the predicates of T will be checked. So we want to do that for @ as well if it represents T(X).
Randy notes that this is an Amendment as it depends on AI12-0333-1 which was an Amendment. It seems like this should apply to Ada 2012 as well. Agreed, change these to Binding Interpretations.
Approve AI with changes: 14-0-0.
Approve AI: 14-0-0.
Choose (3): change “predefined” to “primitive”.
Approve AI with changes: 14-0-0.
(1) A null extension would become a record aggregate.
(2) This redundant with AI12-0427-1 (1). Tucker suggests dropping the one from 427 (the part about add after 4.10(4/5)) as this wording includes item (3) here. The other part of (1) remains. Randy notes that the rule was early so that it goes with the aspect; this is fairly late. That seems OK.
(3) This just added “nonabstract” to the previous rule.
(4) Tucker proposes replacing this with:
Approve AI with change: 12-0-2. Jeff, Gary abstain.
Richard agrees that we should allow the handlers here. He thinks that they are likely to be needed here, and it is great that Ada doesn’t require an extra nesting level to include a handler.
Bob views this as a control flow construct, and we don’t allow handlers in if or case statements.
Arnaud asks how Richard would indent this; he would use a blank line before and, with exception and and at the same level.
Straw poll: Should have handlers?
Tucker suggests removing them now and considering adding them later if it seems important to usage.
Approve AI: 8-1-5. Richard opposed. Tucker, Ed, Arnaud, John, Tullio abstain.
[Note: Jeff e-mailed a typo in this AI: “convinience” should be “convenience” in the discussion.]