CVS difference for ai05s/ai05-0092-1.txt
--- ai05s/ai05-0092-1.txt 2009/07/11 03:06:22 1.7
+++ ai05s/ai05-0092-1.txt 2009/10/23 06:06:31 1.8
@@ -1,4 +1,4 @@
-!standard 3.3.1(20.4/2) 09-07-06 AI05-0092-1/06
+!standard 3.3.1(20.4/2) 09-10-22 AI05-0092-1/07
!standard 3.9(25.1/2)
!standard 6.3.1(21.1/2)
!standard 9.6(22)
@@ -14,6 +14,7 @@
!standard A.18.13(2/2)
!standard A.18.14(2/2)
!standard A.18.15(2/2)
+!standard D.5.1(18)
!standard G.2.2(11)
!class presentation 08-03-05
!status work item 06-03-05
@@ -54,6 +55,8 @@
12) The existing indefinite container forms have differences in contents and in
semantics.
+13) Correct the note D.5.1(18).
+
!question
1) Generally, "must" shall not be used in normative rules of the standard. However,
@@ -89,6 +92,9 @@
of package Indefinite_Vectors differs from the contents of package Vectors, but the
semantics is changed in various ways as well. Should the wording reflect this? (Yes.)
+13) The Note D.5.1(18) talks about when Tasking_Error is raised by Set_Priority. But
+Tasking_Error is never raised by Set_Priority, so this note is confusing.
+
[Other questions here.]
!recommendation
@@ -124,6 +130,14 @@
12) Add "and semantics" after "contents" in A.18.10(2/2), A.18.11(2/2), A.18.12(2/2),
A.18.13(2/2), A.18.14(2/2), and A.18.15(2/2).
+13) Modify the Note D.5.1(18):
+
+32 The rule for when Tasking_Error is raised for Set_Priority or Get_Priority is
+different from the rule for when Tasking_Error is raised on an entry call (see 9.5.3).
+In particular, [setting or ]querying the priority of a completed or an abnormal task is
+allowed, so long as the task is not yet terminated{, and setting the priority of a task
+is allowed for any task state (including for terminated tasks)}.
+
!discussion
1) 3.3.1(20.4/2) uses "must precede", while 3.3.1(20.1-3/2) use "is preceded by".
@@ -167,6 +181,8 @@
forms. For instance, A.18.10(8/2) is not referring to the contents of the package.
It is best if the wording reflects that.
+13) The note is technically correct, but it is misleading. The rewrite makes it
+clearer that Set_Priority is always allowed.
!corrigendum 3.3.1(20.4/2)
@@ -392,6 +408,20 @@
The declaration of the generic library package Containers.Indefinite_Ordered_Sets has
the same contents and semantics as Containers.Ordereds except:
+!corrigendum D.5.1(18)
+
+@drepl
+@xindent<@s9<32 The rule for when Tasking_Error is raised for Set_Priority or Get_Priority is
+different from the rule for when Tasking_Error is raised on an entry call (see 9.5.3).
+In particular, setting or querying the priority of a completed or an abnormal task is
+allowed, so long as the task is not yet terminated.>>
+@dby
+@xindent<@s9<32 The rule for when Tasking_Error is raised for Set_Priority or Get_Priority is
+different from the rule for when Tasking_Error is raised on an entry call (see 9.5.3).
+In particular, querying the priority of a completed or an abnormal task is
+allowed, so long as the task is not yet terminated, and setting the priority of a task
+is allowed for any task state (including for terminated tasks).>>
+
!corrigendum G.2.2(11)
@drepl
@@ -767,5 +797,18 @@
The last sentence was intended to cover all of the *existing* indefinite forms as well
as the new ones.
+
+****************************************************************
+
+From: Bob Duff
+Sent: Wednesday, August 19, 2009 3:34 PM
+
+The NOTE at D.5.1(18) is misleading. Seems to imply that Set_Priority might raise
+Tasking_Error for a terminated task. But D.5.1(7) says it's ignored.
+
+Found by a customer of AdaCore, by the way. GNAT seems to incorrectly raise T_E.
+Probably a "maintenance error". I guess some earlier version of the RM required T_E,
+but wiser heads prevailed, but forgot to update the NOTE. And this part of the
+GNAT runtimes was probably written according to the earlier spec.
****************************************************************
Questions? Ask the ACAA Technical Agent