Minutes of Electronic ARG Meeting 62P
5 May 2022
Attendees: Raphael Amaird, Steve Baird, John Barnes (left at 12:35), Randy Brukardt, Jeff Cousins (arrived at 10:36), Gary Dismukes, Claire Dross, Bob Duff, Brad Moore, Jean-Pierre Rosen, Ed Schonberg, Justin Squirek, Tucker Taft, Tullio Vardanega.
Observers: None.
The meeting convened on Thursday, 5 May 2022 at 10:32 hours EDT and adjourned at 13:31 hours EDT. The meeting was held using Zoom. The meeting covered much of the agenda.
Steve welcomes everyone.
Arnaud Charlet has a family conflict. Richard Wai was bringing home his wife and brand-new daughter (born Tuesday). Jeff Cousins has a chest infection and has lost his voice (he joined anyway and participated primarily via the chat).
There were no comments on the minutes: Approve minutes: 14-0-0.
Randy proposes Thursday, June 23, 2022 for our next meeting. There being no objections, we adopt that date.
We’re just starting to use the new formats and procedures set up by the User Community Input process. Because the FDIS has a rapidly approaching deadline, the editor has not had time to update the tools and convert all of the existing AI22s to the new formats. We also still have to set up AIs at Github.
The basic approach will be that AIs are created and edited on the Google Drive at arg.adaic.org. Snapshots will be taken for version control, indexing, documents, and long-term access purposes at least before each meeting (and possibly more often when that makes sense). There will be direct HTML versions available on Ada-Auth.org (from the snapshots).
We’re just starting this process now, and the snapshots are still being processed by hand, most of the tools and scripts have yet to be updated or created. So it’s currently a mess. Each AI for this meeting has an indication in the agenda where it can be found.
Steve and Tucker ask whether the ARG site should host a SPARK Language Study Group. AdaCore would like to use the ARG process and sites to evolve SPARK. Tucker notes that SPARK and Ada are somewhat interrelated and features have and could migrate in both directions. So it seems natural to let them use the ARG process and sites.
No one voices an objection to this.
Since Richard could not make the meeting, we skip his report.
As noted in the agenda, we have received a number of comments from ISO about the state of the Ada Standard. These will need to be corrected in the FDIS document, due by May 30th. The largest is the use of language, some of which is not compliant with the Directives, Part 2.
Randy notes that we don’t have to make any language changes to the Ada Reference Manual. (We previously decided that we would not renumber the clauses, keeping the current organization of the Ada Reference Manual.) But it would be easier for future maintenance to keep the Ada Reference Manual and ISO Standard as close as possible. So he believes we should make changes to the Ada Reference Manual as well as the ISO Standard as much as possible. Tucker concurs. No one voices any objections to this plan.
Someone asks if we have a summary of the rules for future use. Randy notes that there is such a summary in the discussion of several of the new AIs. It is suggested that these rules be integrated into the (new) AI style guide. Randy will take an action item to do that.
At the end of the meeting, Ed Schonberg asks if the meeting will be dated “Can 5th”, since ISO will not let us use “May”. After a bit of confusion, everyone laughs.
The editor notes that one of the hits for “may” in non-normative text was an enumeration type example using months of the year. He almost changed that to “Can”.
There are a few unfinished action items (Tucker Taft: OpenMP Technical Report; AI22-0034-1; Edward Fish: AI22-0022-1). We did not discuss these. Additionally, three people still owe ACATS Tests: Ed Schonberg, Justin Squirek, and Tucker Taft.
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) and Ada 2022 AIs (AI22s). The AI12s and AI22s 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 32 of the Ada 202x AARM (the submission draft). 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.
Introduction 6/2: “{are}[need] not [be]”. And change “ought to” to “is” (“is visible”).
Typos will or have been e-mailed.
Approve AI with changes: 14-0-0.
We decide not to look at typos during the meeting. Gary and Brad will send typos, Jeff already has.
No one has any substantive comments on this AI.
Approve AI with changes: 14-0-0.
3.9.4(27/2) is missing “may” to “can”.
Typos will or have been e-mailed.
Approve AI with changes: 14-0-0.
Gary notes that comment #3 does not match the directives. Randy checks and that is the exact wording as found in the comments file. We should add a note somewhere in the AI that the comment seems incorrect.
Typos will or have been e-mailed.
Approve AI with changes: 14-0-0.
Brad does not like “is allowed to” in 5.5.3(21/5) and 5.5.3(27/5). He thinks it is too weak. This is official wording for a permission, and ISO wants to stamp out nuance as they claim it confuses non-native English speakers. Randy notes these are normative wording paragraphs and thus are in the wrong AI, they should be in AI12-0445-1.
Typos will or have been e-mailed.
Approve AI with changes: 14-0-0.
Tucker notes that “default initial condition” is written wrong. The “a default initial condition is” part should be deleted.
Gary does not like the wording of “record extension”. “...extends another type [by adding]{optionally with} additional components”
Typos will or have been e-mailed.
Approve AI with changes: 14-0-0.
Gary: In 13.3(30/2) both “which” should be “that”. Same in 13.3(30.1/2).
Typos will or have been e-mailed.
Approve AI with changes: 14-0-0.
Move those two paragraphs from AI12-0442-1.
Surprisingly, no one had any typos for this AI.
Approve AI with changes: 14-0-0.
Randy notes that we have some relatively complicated freezing rules for aspect specifications, and we did not want to duplicate those.
There are some font errors in the wording.
Ed notes that “evaluated” is spelled wrong in the discussion.
Jeff is confused by “causes freezing upon the freezing of”. Various rewording are proposed, but none really work well. Tucker will try to reword. We’re out of time for today’s meeting, so he’ll do that off-line.
Approve intent of AI: 13-0-0.
Tucker’s last name is misspelled in the !appendix.
Ed notes that in the !summary, “checked” should be “evaluated” or maybe “applied”.
Tucker rewrites the summary in the Google Doc. Some wordsmithing ensues, but eventually everyone is happy.
Approve AI with changes: 13-0-1. John abstains.
Jean-Pierre Rosen suggests using a list (instead of “if not”):
Is “declared” is the right word in paragraph 75.1? Steve wonders if a type that ceases to exist (because the subprogram was left) still can cause this failure.
Randy notes that we have intended to allow two different implementations here: a fully static implementation with bind-time construction of an external tag table, and a runtime scheme where the elaboration of a type registers the external tag with a manager in the runtime. We want this rule to be compatible with both implementations.
Steve notes that we now have two points that we’re talking about which is weird.
And then add an Implementation Permission to raise Program_Error if both are part of the same partition statically. Obviously, this latter part is not a formal proposal.
Tucker will take this AI.
Approve Intent: 14-0-0.
Approve AI: 13-0-0.
Tucker also has an alternative (AI22-0035-2), where he changes the type rather than all of the uses.
Claire notes that adding “not null” to the type would cause any existing objects declared of the type but that are not initialized to raise Constraint_Error. That’s a pretty bad incompatibility (the RM would call it an “inconsistency”, since it occurs only at runtime). Tucker notes that a common use case would be to declare an object, and then initialize to a mapping function with some complex code, and then use it. Such a use fails with the change suggested in the alterative. So we abandon the alternative.
Approve AI: 13-0-0.
No action: 13-0-0.
Tucker thinks this got a little wordy. Steve suggests dropping the “on any objects”.
The last sentence should be a note; Steve says it is isn’t true when there are globals. Jeff notes that it isn’t true for default initialization.
Randy notes that you get enforcement inside the package when an object is default initialized. Steve notes that it also gets checks when you call a visible operation inside of the package. So drop the entire part about “but not enforced”.
The wording “every object” should be “objects”, since there are unlikely cases not checked.
Is ‘every type” OK? “any type covered by the class-wide type”.
There is too much change here, Tucker will take this back.
Approve Intent: 13-0-0.
Gary notes that there should not be a hyphen in “non-overridable”. It’s odd that there is a hyphen in the second use but not the first identical rule.
Approve AI with change: 13-0-0.