CVS difference for ai22s/ai22-0033-1.html

Differences between 1.3 and version 1.4
Log of other versions for file ai22s/ai22-0033-1.html

--- ai22s/ai22-0033-1.html	2023/07/12 01:01:03	1.3
+++ ai22s/ai22-0033-1.html	2023/09/08 00:32:33	1.4
@@ -8,6 +8,9 @@
 P.text{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0; padding-top:0pt; color:#000000; font-size:11pt; padding-bottom:0pt; font-family:"Arial","Liberation Sans",sans-serif; line-height:1.15; text-align:left; font-weight:400; text-decoration:
none; vertical-align:baseline; font-style:normal}
 P.txts{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0; padding-top:0pt; color:#000000; font-size:11pt; padding-bottom:11pt; font-family:"Arial","Liberation Sans",sans-serif; line-height:1.15; text-align:left; font-weight:400; text-decoration
:none; vertical-align:baseline; font-style:normal}
 UL.blts{margin-bottom:0; margin-top:0; margin-left:12pt; margin-right:0; padding-top:0pt; color:#000000; font-size:11pt; padding-bottom:12pt; font-family:"Arial","Liberation Sans",sans-serif; line-height:1.15;text-align:left; font-weight:400; text-decorat
ion:none; vertical-align:baseline; font-style:normal; list-style: disc outside}
+P.from{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0; padding-top:0pt; color:#000000; font-size:10pt; padding-bottom:0pt; font-family:"Arial","Liberation Sans",sans-serif; line-height:1.15; orphans:2; widows:2; text-align:left; font-weight:
400; text-decoration:none; vertical-align:baseline; font-style:none}
+P.time{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0; padding-top:0pt; color:#000000; font-size:9pt; padding-bottom:9pt; font-family:"Arial","Liberation Sans",sans-serif; line-height:1.15; orphans:2; widows:2; text-align:left; font-weight:4
00; text-decoration:none; vertical-align:baseline; font-style:italic}
+SPAN.name{font-family:"Lucida Calligraphy",cursive; font-style:normal}
 P.l3h{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0;color:#000000;font-size:26pt;font-family:"Arial","Liberation Sans",sans-serif; padding-top:0pt; padding-bottom:3pt; line-height:1.15; page-break-after:avoid; orphans:2; widows:2; text-alig
n:left; font-weight:400; text-decoration:none; vertical-align:baseline; font-style:normal}
 </style>
 </head><body class="body"><p class="l3h">AI22-0033-1</p>
@@ -17,6 +20,7 @@
 <p class="head">!standard 1.3.3(1/5)</p>
 <p class="head">!class presentation 23-03-23</p>
 <p class="head">!status Corrigendum 1-2022 &nbsp;23-07-10</p>
+<p class="head">!status work item 23-07-14</p>
 <p class="head">!status ARG Approved &nbsp;9-0-0 &nbsp;23-06-12</p>
 <p class="head">!status work item 23-03-23</p>
 <p class="head">!status received 23-03-23</p>
@@ -33,8 +37,8 @@
 <h2 class="head">!wording</h2>
 <p class="text">Add after 1.3.1(6/5):</p>
 <p class="txts">allocator. &nbsp;expression
-that&nbsp;allocates<sup><a href="#cmnt1" name="cmnt_ref1">[a]</a></sup> and initializes an object
-and yields an access value that designates it.</p>
+that&nbsp;allocates<sup><a href="#cmnt1" name="cmnt_ref1">[a]</a></sup><sup><a href="#cmnt2" name="cmnt_ref2">[b]</a></sup>
+and initializes an object and yields an access value that designates it.</p>
 
 <p class="text">Add after 1.3.1(20/5):</p>
 <p class="txts">declarative region. &nbsp;portion of the program that includes the text of a
@@ -42,7 +46,7 @@
 
 <p class="text">Add after 1.3.1(21/5):</p>
 <p class="txts">denotes. &nbsp;identifies an object, subprogram, declared entity, or
-attribute&nbsp;thereof<sup><a href="#cmnt2" name="cmnt_ref2">[b]</a></sup>.</p>
+attribute&nbsp;thereof<sup><a href="#cmnt3" name="cmnt_ref3">[c]</a></sup><sup><a href="#cmnt4" name="cmnt_ref4">[d]</a></sup>.</p>
 
 <p class="txts">derivation class. &nbsp;set of a root type and all types derived from it.</p>
 
@@ -129,7 +133,7 @@
 </ul>
 
 <p class="txts">Other important terms that probably ought to be defined
-include:<sup><a href="#cmnt3" name="cmnt_ref3">[c]</a></sup><sup><a href="#cmnt4" name="cmnt_ref4">[d]</a></sup></p>
+include:<sup><a href="#cmnt5" name="cmnt_ref5">[e]</a></sup><sup><a href="#cmnt6" name="cmnt_ref6">[f]</a></sup></p>
 
 <ul class="blts"><li>child unit</li>
 <li>operative constituent</li>
@@ -140,7 +144,7 @@
 <p class="txts">and a number of visibility terms:</p>
 
 <ul class="blts"><li>denotes</li>
-<li>statically denotes</li>
+<li>statically denotes<sup><a href="#cmnt7" name="cmnt_ref7">[g]</a></sup></li>
 <li>statically names</li>
 <li>homograph</li>
 <li>overloaded (we have &quot;overriding operation&quot;)</li>
@@ -154,17 +158,176 @@
 <h2 class="head">!ACATS test</h2>
 <p class="text">This is purely additional informative material, so no tests are needed.</p>
 <h2 class="head">!appendix</h2>
+<p class="from">From:<span class="name"> Randy Brukardt</span></p>
+<p class="time">Sent: Friday, July 14, 2023 &nbsp;4:19 AM</p>
 
+<p class="txts">I believe that AI22-0033-1 as approved is incomplete and several of the proposed
+definitions are problematic. My original idea was to treat the corrections as editorial reviews,
+but since some of the definitions ought to be reworded in my opinion, that is probably too much of
+a leap (especially with an AI for which there is no rush to complete, as it does not change
+anything that a compiler or user would do).</p>
+
+<p class="txts">I&#39;m asking here since Tucker&#39;s original reaction to my initial comments
+(see the AI in the Google Docs) was to essentially say that there is nothing wrong. As such, I
+don&#39;t know if there is enough support to reopen and thus am asking here.</p>
+
+<p class="txts">Note that our formal procedure to reopen an AI is to ask for a letter ballot on the
+AI. I&#39;d rather avoid that as there is significant administrative work with doing that (but
+I&#39;m prepared to follow the procedure if people want that).</p>
+
+<p class="txts">Anyway, following are my detailed objections to the AI as approved:</p>
+
+<p class="txts">(1) The original intent was that this AI would remain open until we had defined all
+of the terms that seem important. Tucker had suggested several additional terms that he felt we
+should define, and I don&#39;t understand why those were dropped on the floor. At a minimum we
+should be making a conscious decision to not define suggested terms (and if that occurred, then
+remove the suggestions from the AI).</p>
+
+<p class="txts">(2) The definition of &quot;allocator&quot; says that it &quot;allocates&quot; an
+object. That&#39;s not a very helpful statement by itself, as it is similar to saying that a
+&quot;driver&quot; &quot;drives&quot;. During the meeting, my understanding was that the wording
+was going to be updated to say something about the object being allocated from a storage pool. (My
+notes and thus the minutes say that is the case.) Had I realized that that had not happened, I
+would have objected to approving the AI (I couldn&#39;t see the actual wording changes during the
+meeting, as my laptop was open to my meeting notes and having Zoom usefully open is
+impractical).</p>
+
+<p class="text">Tucker objected to my suggestion to use the defined term of &quot;storage pool
+object&quot;, referencing a definition somewhere in Chapter 13. But the T&amp;D clause has to be
+self-contained, it cannot use definitions from the main body of the Standard. The only term defined
+in the T&amp;D is &quot;storage pool object&quot;, and thus we either have to use that in the
+wording (I suggested a rewrite that would make that work) or we have to add a term &quot;storage
+pool&quot;</p>
+<p class="txts">to the T&amp;D. If Tucker wants to do that latter, then we certainly have to reopen
+the AI, and otherwise we need to redo the definition more on the lines I suggested. The way it
+currently reads does not help a reader.</p>
+
+<p class="text">(3) The definition for &quot;denotes&quot; is &quot;identifies an object,
+subprogram, declared entity, or attribute thereof&quot;. I objected to the &quot;thereof&quot;,
+since I have no idea what the &quot;thereof&quot; is supposed to refer to. Tucker replied that it
+had something to do with the attribute, which I truly do not understand</p>
+<p class="txts">-- I surely have never heard of an &quot;attribute thereof&quot; in any
+context.</p>
+
+<p class="txts">More generally, I don&#39;t believe that this definition is helping any reader
+whatsoever. The intent of the T&amp;D clause (as we&#39;re interpreting it, since the requirements
+on definitions prevent them from being used in a formal way for any programming language -- the ban
+on recursion, the requirement of a single sentence, and the impossibility of using any terms
+defined elsewhere prevent any formal definitions as we understand them) is that the definitions are
+to help comprehension of RM text. I fail to see how this definition improves on the plain English
+meaning of the word (especially as we&#39;re not trying to have formal definitions here).</p>
+
+<p class="text">Finally, every definition is supposed to be substitutable for the term in question.
+The proposed definition does not work that way, certainly not in common uses such as the Legality
+Rule:</p>
+<p class="text">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;A foobar shall denote an object.</p>
+<p class="text">Substituting the above definition gives:</p>
+<p class="text">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;A foobar shall identify an object, subprogram,
+declared entity, or attribute thereof an object.</p>
+<p class="text">which is unreadable nonsense. We need a very different form of definition for verbs
+than we have generally used (and one which escapes me,</p>
+<p class="text">unfortunately) in order to meet the JTC1 requirements for these definitions.</p>
+<p class="txts">(This problem most likely occurs for other existing definitions as well, not sure
+just how seriously to take that requirement.)</p>
+
+<p class="txts">For all of these reasons, I believe that we need to reopen the AI and properly
+wordsmith these definitions. (This AI is exhibit A as to why we shouldn&#39;t spend more than a
+minute or two wordsmithing at a meeting - any wording subject to the Directives needs more careful
+thought than occurs in a hurry. Changing a verb, reordering some of the text, or similar simple
+changes make sense, anything more complex is as likely to have omitted something important.)</p>
+
+<hr><p class="txts">&nbsp;</p>
+
+<p class="from">From:<span class="name"> Tucker Taft</span></p>
+<p class="time">Sent: Friday, July 14, 2023 &nbsp;7:05 AM</p>
+
+<p class="txts">I am fine with reopening the AI. &nbsp;Creating a relatively complete and concise
+set of definitions that are consistent with the ISO rules will probably continue for a long period
+of time, so I suggest we create a spreadsheet or equivalent with words probably worth including,
+and then create a continuing series of AIs where each includes a group of definitions we have
+approved, leaving out any problematic ones for some future AI in the series. &nbsp;If someone
+objects to a particular definition, we should just but it on the backlog and then approve the
+uncontroversial ones. &nbsp;This way at least we will make some progress.</p>
+
+<hr><p class="txts">&nbsp;</p>
+
+<p class="from">From:<span class="name"> Jeff Cousins</span></p>
+<p class="time">Sent: Friday, July 14, 2023 &nbsp;4:06 PM</p>
+
+<p class="txts">I&rsquo;d be happy to re-open, I don&rsquo;t think we had time to fully consider
+all of the updated definitions. &nbsp;Though re 1), I thought that the mood at the meeting was that
+0033 would just be the first of a number of AIs to add definitions.</p>
+
+<hr><p class="txts">&nbsp;</p>
+
+<p class="from">From:<span class="name"> Edward Fish</span></p>
+<p class="time">Sent: Sunday, July 16, 2023 &nbsp;6:21 PM</p>
+
+<p class="text">&gt; (3) The definition for &quot;denotes&quot; is &quot;identifies an object,
+subprogram,</p>
+<p class="text">&gt; declared entity, or attribute thereof&quot;. I objected to the
+&quot;thereof&quot;, since I</p>
+<p class="text">&gt; have no idea what the &quot;thereof&quot; is supposed to refer to. Tucker
+replied that</p>
+<p class="text">&gt; it had something to do with the attribute, which I truly do not understand</p>
+<p class="txts">&gt; -- I surely have never heard of an &quot;attribute thereof&quot; in any
+context.</p>
+
+<p class="txts">I would read that &quot;or attributes thereof&quot; as referring to attributes of
+the object/subprogram/declared-entity. (Thus you could say that Add&#39;Address is identifying the
+attribute &quot;address&quot; of the subprogram Add, thereby denoting it.)</p>
 
+<p class="txts">---</p>
+
+<p class="from">From:<span class="name"> Jeff Cousins</span></p>
+<p class="time">Sent: Monday, July 17, 2023 12:01 PM</p>
+
+<p class="txts">That&rsquo;s what I would have assumed, I was wondering whether Randy was concerned
+about not all &ldquo;entities&rdquo; having attributes, though &ldquo;entity&rdquo; seems too vague
+term for this to matter.</p>
+
+<hr><p class="txts">&nbsp;</p>
+
+<p class="from">From:<span class="name"> Randy Brukardt</span></p>
+<p class="time">Sent: Monday, July 17, 2023 &nbsp;2:05 PM</p>
+
+<p class="text">I didn&#39;t understand why one would want to say more than that it might identify
+an attribute -- this is not a formal definition and too much detail is more distracting than
+helpful. And I never made the connection that the &quot;thereof&quot; is supposed to associate with
+the other items in this list. It would have seemed that &quot;attribute of a declared entity&quot;
+would have worked as well if we wanted that level of detail (the prefix of an attribute cannot be
+anonynous).</p>
+<p class="text">&nbsp;</p>
+<p class="txts">But as I noted elsewhere, this definition doesn&#39;t work as a substitution, so we
+probably ought to reconsider the form anyway. Which makes this moot.</p>
+
+<hr><p class="txts">&nbsp;</p>
+
+<p class="from">From:<span class="name"> Jeff Cousins</span></p>
+<p class="time">Sent: Tuesday, July 18, 2023 &nbsp;11:51 AM</p>
+
+<p class="txts">The definition of &ldquo;statically names&rdquo; sticks out like a sore thumb as
+being too long to readily be substitutable. &nbsp;But I&rsquo;m afraid I haven&rsquo;t any
+suggestion for anything shorter that is still technically correct.</p>
+
+<hr><p class="txts">&nbsp;</p>
+
+
 <p class="btxt"><a href="#cmnt_ref1" name="cmnt1">[a]</a>Editorial review: The minutes say that
 Tucker wants this to &quot;allocate from a storage pool&quot;. So where is the storage pool in this
 definition?? &quot;Storage pool object&quot; is a defined term. I think this should say
 &quot;allocates from a storage pool object&quot;, or maybe something like &quot;expression that
 creates an object by allocating it from a storage pool object, initializing it, and then yields an
 access value the designates the new object&quot;.</p>
-<p class="btxt"><a href="#cmnt_ref2" name="cmnt2">[b]</a>Editorial review: Is this word necessary?
+<p class="btxt"><a href="#cmnt_ref2" name="cmnt2">[b]</a>&quot;Storage pool&quot; is defined in
+13.11(1, 2/2).&nbsp; &quot;Storage pool object&quot; is an awkward term, in my view.&nbsp; Nowhere
+does the RM use the phrase &quot;allocate from a storage pool object&quot; as far as I know.</p>
+<p class="btxt"><a href="#cmnt_ref3" name="cmnt3">[c]</a>Editorial review: Is this word necessary?
 The definition is supposed to be substitutable for the term, and this word would make any such text
 clunky. And it doesn&#39;t really seem to add anything.</p>
-<p class="btxt"><a href="#cmnt_ref3" name="cmnt3">[c]</a>Root type of a class-wide type</p>
-<p class="btxt"><a href="#cmnt_ref4" name="cmnt4">[d]</a>subtype predicate?</p>
+<p class="btxt"><a href="#cmnt_ref4" name="cmnt4">[d]</a>The term &quot;thereof&quot; is
+appropriate because a name denotes an attribute *of something*.</p>
+<p class="btxt"><a href="#cmnt_ref5" name="cmnt5">[e]</a>Root type of a class-wide type</p>
+<p class="btxt"><a href="#cmnt_ref6" name="cmnt6">[f]</a>subtype predicate?</p>
+<p class="btxt"><a href="#cmnt_ref7" name="cmnt7">[g]</a>completion?</p>
 </body></html> 

Questions? Ask the ACAA Technical Agent