CVS difference for ai12s/ai12-0164-1.txt

Differences between 1.6 and version 1.7
Log of other versions for file ai12s/ai12-0164-1.txt

--- ai12s/ai12-0164-1.txt	2016/07/12 01:33:42	1.6
+++ ai12s/ai12-0164-1.txt	2016/11/15 03:46:13	1.7
@@ -1,5 +1,7 @@
-!standard D.4(16)                                  15-10-17  AI12-0164-1/03
+!standard D.4(16)                                  15-11-14  AI12-0164-1/04
 !class Amendment 15-06-04
+!status Amendment 1-2012 16-11-14
+!status ARG Approved 8-0-1  16-10-09
 !status work item 15-06-04
 !status received 15-04-24
 !priority Low
@@ -17,7 +19,7 @@
 
 !proposal
 
-Max_Entry_Queue_Length for a entry declaration specifies the maximum
+Max_Entry_Queue_Length for an entry declaration specifies the maximum
 number of callers allowed on that entry. Violation of this restriction results
 in the raising of Program_Error at the point of the call or requeue.
 The value specified for the Max_Entry_Queue_Length
@@ -27,50 +29,42 @@
 
 !wording
 
-[Editor's note: I believe this is intended to be an Annex D capability, so I
-put it there. I put it under D.4 as that's the closest match for it, but
-perhaps it should have its own clause somewhere??]
-
 Add after D.4(16):
 
 Static Semantics
 
-For a task type (including the anonymous type of a single_task_declaration) or
-protected type (including the anonymous type of a single_protected_declaration),
-the following language-defined representation aspect may be specified:
+For an entry_declaration, a task type (including the anonymous type of a
+single_task_declaration), or protected type (including the anonymous type of a
+single_protected_declaration), the following language-defined representation
+aspect may be specified:
 
 Max_Entry_Queue_Length
 
 The type of aspect Max_Entry_Queue_Length is Integer. 
-
-If directly specified, the aspect_definition shall be a static expression. If 
-not specified, the aspect has value -1 (representing an unspecified queue
-length). 
 
-For an entry_declaration, the following language-defined representation aspect
-may be specified:
-
-The type of aspect Max_Entry_Queue_Length is Integer. 
+If directly specified, the aspect_definition shall be a static expression no
+less than -1. If not specified, the aspect has value -1 (representing no
+additional restriction on queue length).
 
-If directly specified, the aspect_definition shall be a static expression. If 
-not specified, the aspect has value -1 (representing an unspecified queue
-length). 
-
 Legality Rules
+
+If the Max_Entry_Queue_Length aspect for a type has a nonnegative value, 
+the Max_Entry_Queue_Length aspect for every individual entry of that type shall
+not be greater than the value of the aspect for the type. The
+Max_Entry_Queue_Length aspect of a type is nonoverridable.
 
-If aspect Max_Entry_Queue_Length for a type has a nonconfirming value, 
-aspect Max_Entry_Queue_Length for an individual entry of that type shall be
-less than or equal to the value of the aspect for the type. 
+[Editor's note -- the term "nonoverridable" must be generalized to allow for its
+usage with a numeric-valued aspect; AI12-0206-1 does this.]
 
 AARM Ramification: Aspect Max_Entry_Queue_Length can specify less than the
 partition-wide or type-wide default, but it can't expand the length of a queue.
 
 Post-Compilation Rules
 
-If a restriction Max_Entry_Queue_Length applies to the partition, a
-nonconfirming value of an aspect Max_Entry_Queue_Length (for a type or
-individual entry) shall be less than or equal to the value of the
-restriction.  
+If a restriction Max_Entry_Queue_Length applies to a partition, any value
+specified for the Max_Entry_Queue_Length aspect specified for the declaration
+of a type or entry in the partition shall not be greater than the value of the
+restriction. 
 
 AARM Ramification: 13.12(6) says that the restriction value has to be static,
 so this is statically checkable. But the restriction does not have to be in the
@@ -110,6 +104,52 @@
 
 These aspects would be very useful for restricted tasking profiles more general
 than Ravenscar. IRTAW has at least one such proposal for a new profile.
+
+!corrigendum D.4(16)
+
+@dinsa
+The implementation should use names that end with “_Queuing” for
+implementation-defined queuing policies.
+@dinss
+@s8<@i<Static Semantics>>
+
+For a task type (including the anonymous type of a
+@fa<single_task_declaration>), protected type (including the anonymous type of
+a @fa<single_protected_declaration>), or an @fa<entry_declaration>, the
+following language-defined representation aspect may be specified:
+
+@xhang<@xterm<Max_Entry_Queue_Length>
+The type of aspect Max_Entry_Queue_Length is Integer.>
+
+@xindent<If directly specified, the aspect_definition shall be a static expression no
+less than -1. If not specified, the aspect has value -1 (representing no
+additional restriction on queue length).>
+
+@s8<@i<Legality Rules>>
+
+If the Max_Entry_Queue_Length aspect for a type has a nonnegative value, 
+the Max_Entry_Queue_Length aspect for every individual entry of that type shall
+not be greater than the value of the aspect for the type. The
+Max_Entry_Queue_Length aspect of a type is nonoverridable.
+
+@s8<@i<Post-Compilation Rules>>
+
+If a restriction Max_Entry_Queue_Length applies to a partition, any value
+specified for the Max_Entry_Queue_Length aspect specified for the declaration
+of a type or entry in the partition shall not be greater than the value of the
+restriction. 
+
+@s8<@i<Dynamic Semantics>>
+
+If a nonconfirming value is specified for Max_Entry_Queue_Length for a type, and
+an entry call or requeue would cause the queue for any entry of the type to 
+become longer than the specified value, then Program_Error is raised at the
+point of the call or requeue. 
+
+If a nonconfirming value is specified for Max_Entry_Queue_Length for an entry,
+and an entry call or requeue would cause the queue for an entry to become longer 
+than the specified value, then Program_Error is raised at the point of the call
+or requeue. 
 
 !ASIS
 

Questions? Ask the ACAA Technical Agent