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

Differences between 1.1 and version 1.2
Log of other versions for file ai22s/ai22-0098-1.html

--- ai22s/ai22-0098-1.html	2024/03/09 09:58:11	1.1
+++ ai22s/ai22-0098-1.html	2024/03/16 09:17:05	1.2
@@ -1,4 +1,4 @@
-<html><head><meta content="text/html; charset=UTF-8" http-equiv="content-type"><title>AI22-0098-1/01</title>
+<html><head><meta content="text/html; charset=UTF-8" http-equiv="content-type"><title>AI22-0098-1/02</title>
 <style type="text/css">
 table td,table th{padding:0}
 BODY.body{background-color:#ffffff; max-width:540pt; padding:36pt 36pt 36pt 36pt}
@@ -7,7 +7,9 @@
 H2.head{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0; padding-top:12pt; color:#000000; font-size:14pt; padding-bottom:6pt; font-family:"Arial","Liberation Sans",sans-serif; line-height:1.15; page-break-after:avoid; orphans:2; widows:2; tex
t-align:left; font-weight:400; text-decoration:none; vertical-align:baseline; font-style:normal}
 P.inst{margin-bottom:0; margin-top:0; margin-left:18pt; margin-right:0; padding-top:9pt; color:#000000; font-size:12pt; padding-bottom:6pt; font-family:"Arial","Liberation Sans",sans-serif;line-height:1.15; orphans:2; widows:2; text-align:left; font-weigh
t:400; text-decoration:none; vertical-align:baseline; font-style:normal}
 P.word{margin-bottom:0; margin-top:0; margin-left:36pt; margin-right:0; padding-top:0pt; color:#000000; font-size:11pt; padding-bottom:3pt; font-family:"Times New Roman","Times",serif; line-height:1.15; orphans:2; widows:2; text-align:left; font-weight:40
0; text-decoration:none; vertical-align:baseline; font-style:normal}
+P.wrds{margin-bottom:0; margin-top:0; margin-left:36pt; margin-right:0; padding-top:0pt; color:#000000; font-size:11pt; padding-bottom:12pt; font-family:"Times New Roman","Times",serif; line-height:1.15; orphans:2; widows:2; text-align:left; font-weight:4
00; text-decoration:none; vertical-align:baseline; font-style:normal}
 UL.wbl{margin-bottom:0; margin-top:0; margin-left:42pt; margin-right:0; padding-top:0pt; color:#000000; font-size:11pt; padding-bottom:3pt; font-family:"Times New Roman","Times",serif; line-height:1.15; orphans:2; widows:2; text-align:left; font-weight:40
0; text-decoration:none; vertical-align:baseline; font-style:normal; list-style: disc outside}
+P.wins{margin-bottom:0; margin-top:0; margin-left:60pt; margin-right:0; padding-top:0pt; color:#000000; font-size:11pt; padding-bottom:12pt; font-family:"Times New Roman","Times",serif; line-height:1.15; orphans:2; widows:2; text-align:left; font-weight:4
00; text-decoration:none; vertical-align:baseline; font-style:normal}
 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}
 SPAN.ins{color:#007700}
@@ -15,8 +17,9 @@
 </style>
 </head><body class="body"><p class="anum">AI22-0098-1</p>
 <p class="head">!standard 4.5.2(9.8/6) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
-&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;24-03-04
-&nbsp;AI22-0098-1/01</p>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;24-03-15
+&nbsp;AI22-0098-1/02</p>
+<p class="head">!standard 7.6.1(12/2)</p>
 <p class="head">!standard 10.2.1(18/6)</p>
 <p class="head">!class presentation 24-03-04</p>
 <p class="head">!status Corrigendum 1-2022 &nbsp;24-03-04</p>
@@ -33,9 +36,14 @@
 sentences describes a different prohibition. Should the boilerplate be given in the plural form?
 (Yes.)</p>
 
-<p class="text">(2) 10.2.1(18/3) was broken into bullets by AI22-0023-1 to improve its readability.
+<p class="txts">(2) 10.2.1(18/3) was broken into bullets by AI22-0023-1 to improve its readability.
 But when that was done, the last sentence of 10.2.1(18/3) was omitted. Should this sentence still
 be in the RM? (Yes.)</p>
+
+<p class="text">(3) AI22-0062-1 adds a new paragraph about a specific case of assignment. The AI
+puts the new paragraph after 7.6.1(11/3), which is about the general definition of finalization.
+7.6.1(12/2) is specifically about assignment, the new paragraph fits naturally after it. Should we
+put the paragraph there instead? (Yes.)</p>
 <h2 class="head">!recommendation</h2>
 <p class="txts">[Editor&rsquo;s note: These fixes have been applied to Draft 2 of the Ada 202y RM,
 as they are simple and noticed during the creation of that draft. Editorials are generally applied
@@ -43,11 +51,13 @@
 update.]</p>
 
 <p class="txts">(1) Give the boilerplate in the plural form.</p>
+
+<p class="txts">(2) Restore the missing sentence.</p>
 
-<p class="text">(2) Restore the missing sentence.</p>
+<p class="text">(3) Put the paragraph in the more natural place.</p>
 <h2 class="head">!wording</h2>
 <p class="inst">Modify 4.5.2(9.8/6):</p>
-<p class="word">If the profile of an explicitly declared primitive equality operator of an untagged
+<p class="wrds">If the profile of an explicitly declared primitive equality operator of an untagged
 record type is type conformant with that of the corresponding predefined equality operator, the
 declaration shall occur before the type is frozen. In addition, no type shall have been derived
 from the untagged record type before the declaration of the primitive equality operator. If the
@@ -56,7 +66,24 @@
 package, the operator shall be subtype conformant with the predefined or inherited operator that it
 overrides. In addition to the places where Legality Rules normally apply (see 12.3),
 <span class="ins">{these rules}</span><span class="del">[this rule applies]</span> also
-<span class="ins">{apply }</span>in the private part of an instance of a generic unit. </p>
+<span class="ins">{apply }</span>in the private part of an instance of a generic unit.</p>
+
+<p class="inst">Add nothing after 7.6.1(11/3).</p>
+<p class="inst">Add after 7.6.1(12/2):</p>
+<p class="wrds">When an assignment changes the value of at least one discriminant of a target
+object, every discriminant-dependent component of the previous value ceases to exist, and every
+discriminant-dependent component of the new value of the object is newly created.</p>
+
+<p class="wins">AARM Ramification: Access to a component is erroneous after it ceases to exist.
+That means that any effect is allowed, which of course includes working as expected. Thus, this
+rule does not require an implementation to do anything.</p>
+
+<p class="wins">If an assignment does not change the value of any discriminant, then any
+discriminant-dependent components continue to exist. If an implementation chooses to reallocate
+memory for such components upon assignment, it has to take care that no such reallocation occurs
+when no discriminants change. End AARM Ramification.</p>
+
+<p class="word">[Editor&rsquo;s note: This text is unchanged from AI22-0062-1, just moved.]</p>
 <p class="inst">Modify 10.2.1(18/6):</p>
 <p class="word">If a library unit is declared pure, then the implementation is permitted to omit a
 call on a library-level subprogram of the library unit if the results are not needed after the
@@ -75,10 +102,13 @@
 We also move the &ldquo;also&rdquo;; the boilerplate does appear in the RM both as &ldquo;also
 applies&rdquo; and &ldquo;applies also&rdquo;; the former seems more natural to the editor.</p>
 
-<p class="text">(2) It appears to be an oversight that the last, redundant, sentence was omitted.
+<p class="txts">(2) It appears to be an oversight that the last, redundant, sentence was omitted.
 If it was important enough to state explicitly in Ada 95 (and Ada 2022), it probably still is. An
 alternative would be to make it a note or usage advice, but we opt for the least change and just
 replace it after the bullets.</p>
+
+<p class="text">(3) It&rsquo;s possible that the paragraph reference was just botched in the
+original AI. Moving the paragraph also avoids renumbering 7.61(11.1-11.5).</p>
 <h2 class="head">!example</h2>
 <p class="text">None needed for presentation issues.</p>
 <h2 class="head">!corrigendum 4.5.2(9.8/6)</h2>
@@ -102,6 +132,14 @@
 package, the operator shall be subtype conformant with the predefined or inherited operator that it
 overrides. In addition to the places where Legality Rules normally apply (see 12.3), these rules
 also apply in the private part of an instance of a generic unit. </p>
+<h2 class="head">!corrigendum 7.6.1(12/2)</h2>
+<p class="text">@dinsa</p>
+<p class="text">The target of an @fa{assignment_statement} is finalized before copying in the new
+value, as explained in 7.6.</p>
+<p class="text">@dinst</p>
+<p class="text">When an assignment changes the value of at least one discriminant of a target
+object, every discriminant-dependent component of the previous value ceases to exist, and every
+discriminant-dependent component of the new value of the object is newly created.</p>
 <h2 class="head">!corrigendum 10.2.1(18/6)</h2>
 <p class="text">@drepl</p>
 <p class="text">If a library unit is declared pure, then the implementation is permitted to omit a

Questions? Ask the ACAA Technical Agent