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

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

--- ai22s/ai22-0058-1.html	2023/01/21 09:32:06	1.3
+++ ai22s/ai22-0058-1.html	2023/04/28 02:30:03	1.4
@@ -1,34 +1,30 @@
-<html><head><meta content="text/html; charset=UTF-8" http-equiv="content-type"><title>AI22-0058-1/02</title>
+<html><head><meta content="text/html; charset=UTF-8" http-equiv="content-type"><title>AI22-0058-1/03</title>
 <style type="text/css">
 table td,table th{padding:0}
-.c22{border-right-style:solid;padding:5pt 5pt 5pt 5pt;border-bottom-color:#000000;border-top-width:0pt;border-right-width:0pt;border-left-color:#000000;vertical-align:top;border-right-color:#000000;border-left-width:0pt;border-top-style:solid;background-c
olor:#f0f0f0;border-left-style:solid;border-bottom-width:0pt;width:432pt;border-top-color:#000000;border-bottom-style:solid}
-.c13{margin-left:36pt;border-spacing:0;border-collapse:collapse;margin-right:auto}
-.c9{background-color:#ffffff;max-width:468pt;padding:72pt 72pt 72pt 72pt}
-.c11{height:0pt}
+BODY.body{background-color:#ffffff; max-width:468pt; padding:72pt 72pt 72pt 72pt}
 P.head{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0; padding-top:0pt; color:#000000; font-size:14pt; 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:normal}
 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.codt{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:"Courier New",monospace; line-height:1.15; text-align:left; background-color:#f0f0f0; font-weight:400; tex
t-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}
+P.cbin{margin-bottom:0; margin-top:0; margin-left:36pt; margin-right:0; padding-left:4pt; padding-top:4pt; color:#000000; font-size:10pt; padding-bottom:4pt; font-family:"Courier New",monospace; line-height:1.15; text-align:left; background-color:#f0f0f0;
 font-weight:400; 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}
-P.inds{margin-bottom:0; margin-top:0; margin-left:24pt; 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-decorat
ion:none; vertical-align:baseline; font-style:normal}
-SPAN.del{color:#880000}
-P.a0{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-align
:left; font-weight:400; text-decoration:none; vertical-align:baseline; font-style:normal}
-SPAN.a12{font-weight:700; font-family:"Courier New",monospace}
-SPAN.a15{font-family:"Courier New",monospace}
+SPAN.del{color:#cc8888}
+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}
+SPAN.ujv{font-weight:700; font-family:"Courier New",monospace}
+SPAN.yvf{font-family:"Courier New",monospace}
 </style>
-</head><body class="c9 doc-content"><p class="a0">AI22-0058-1</p>
-<p class="head">!standard C.7.1(4/3) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
-&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;23-01-20
-&nbsp;AI22-0058-1/02</p>
-<p class="head">!standard D.2.6(9/5)</p>
+</head><body class="body"><p class="l3h">AI22-0058-1</p>
+<p class="head">!standard D.2.6(9/5) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;23-04-26
+&nbsp;AI22-0058-1/03</p>
 <p class="head">!standard D.2.6(29/2)</p>
 <p class="head">!standard D.5.1(4)</p>
 <p class="head">!standard D.5.1(5)</p>
 <p class="head">!standard D.5.1(9)</p>
 <p class="head">!standard D.11(3/5)</p>
-<p class="head">!standard D.11(9)</p>
+<p class="head">!standard D.11(8)</p>
 <p class="head">!standard D.14(5/2)</p>
 <p class="head">!standard D.14(17/2)</p>
 <p class="head">!class Binding Interpretation 22-01-11</p>
@@ -41,13 +37,13 @@
 <p class="head">!qualifier Clarification</p>
 <p class="head">!subject Preconditions for checking Task_Ids</p>
 <h2 class="head">!summary</h2>
-<p class="text">Preconditions, rather than wording, are used to check Task_Ids in various</p>
-<p class="text">Annex D subprograms.</p>
+<p class="text">Preconditions, rather than wording, are used to check Task_Ids in various Annex D
+subprograms.</p>
 <h2 class="head">!issue</h2>
 <p class="txts">Ada 2022 attempts to use preconditions and postconditions as much as possible. The
 following rule appears in a number of places in Annex D:</p>
 
-<p class="inds">For all the operations defined in &lt;&lt;some package&gt;&gt;, Tasking_Error is
+<p class="wrds">For all the operations defined in &lt;&lt;some package&gt;&gt;, Tasking_Error is
 raised if the task identified by T has terminated. Program_Error is raised if the value of T is
 Null_Task_Id.</p>
 
@@ -57,18 +53,17 @@
 
 <h2 class="head">!wording</h2>
 <p class="inst">Add:</p>
-<a id="t.fa23d2fc502e59e9c26cb8ab1f8ff9712fa4fefe"></a><a id="t.0"></a><table class="c13"><tr class="c11"><td class="c22">
-<p class="codt"><b>with</b> Pre =&gt; (T /= Null_Task_Id or else raise Program_Error)</p>
-<p class="codt">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;and then</p>
-<p class="codt">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (<b>not </b>Is_Terminated (T)<br>
- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; or else <b>raise</b> Tasking_Error));</p>
-</td></tr></table><p class="word">to Set_Deadline, Get_Deadline, Set_Relative_Deadline,
-Get_Relative_Deadline, Get_Last_Release_Time in D.2.6(9/5); to Set_Priority in D.5.1(4); to
-Get_Priority in D.5.1(5); to Hold, Continue, and Is_Held in D.11(3/5); and to Clock in
-D.14(5/2).</p>
-<p class="inst">Add <span class="a12">use</span><span class="a15">&nbsp;Ada.Task_Identification;
+<p class="cbin"><b>with</b> Pre =&gt; (T /= Null_Task_Id <b>or else</b> raise Program_Error)<br>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <b>and then<br>
+</b>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (<b>not </b>Is_Terminated (T)<br>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <b>or else</b> <b>raise</b>
+Tasking_Error));</p>
+<p class="word">to Set_Deadline, Get_Deadline, Set_Relative_Deadline, Get_Relative_Deadline,
+Get_Last_Release_Time in D.2.6(9/5); to Set_Priority in D.5.1(4); to Get_Priority in D.5.1(5); to
+Hold, Continue, and Is_Held in D.11(3/5); and to Clock in D.14(5/2).</p>
+<p class="inst">Add <span class="ujv">use</span><span class="yvf">&nbsp;Ada.Task_Identification;
 </span>&nbsp;on each of the above packages immediately after
-<span class="a12">with</span><span class="a15">&nbsp;Ada.Task_Identification;</span></p>
+<span class="ujv">with</span><span class="yvf">&nbsp;Ada.Task_Identification;</span></p>
 <p class="inst">In AARM D.5.1(12.a):</p>
 <p class="word">Replace &nbsp;&quot;the above rule saying&quot; with &quot;the
 precondition&quot;.</p>
@@ -79,19 +74,19 @@
 T<span class="del">[; Tasking_Error is raised if that task has terminated; Program_Error is raised
 if the value of T is Task_Identification.Null_Task_Id]</span>.</p>
 <h2 class="head">!discussion</h2>
-<p class="txts">The original English-language rule is backwards - one has to check for Null_Task_Id
-before checking whether a task is terminated.</p>
+<p class="txts">The original English-language rule is backwards &ndash; one has to check for
+Null_Task_Id before checking whether a task is terminated.</p>
 
 <p class="txts">Ada.Task_Identification.Is_Terminated is defined to raise Program_Error when passed
-a Null_Task_Id, so we do not need to handle that case explicitly. As such, this makes no semantic
-change (assuming a sensible reading of the original text).</p>
+a Null_Task_Id (see C.7.1), so we would not need to handle that case explicitly. We did so anyway
+to make the function of the precondition as clear as possible. Thus, this makes no semantic change
+(assuming a sensible reading of the original text).</p>
 
 <p class="text">[Editor&#39;s note: Since this makes no semantic change, it is classified as a
 Binding Interpretation. It could even be considered a presentation change, except that this does
 open the possibility of Suppressing the precondition check. Note, however, that there is no check
 name defined for the packages defined in the various annexes (that seems to be an omission, but one
-that should be</p>
-<p class="text">considered on its own merits in a separate AI).]</p>
+that should be considered on its own merits in a separate AI).]</p>
 <h2 class="head">!ACATS test</h2>
 
 <p class="txts">No semantic change is intended, so existing tests (if they exist) should cover this

Questions? Ask the ACAA Technical Agent