CVS difference for ais/ai-00305.txt

Differences between 1.2 and version 1.3
Log of other versions for file ais/ai-00305.txt

--- ais/ai-00305.txt	2002/10/01 03:08:54	1.2
+++ ais/ai-00305.txt	2002/10/29 20:24:57	1.3
@@ -1,5 +1,10 @@
-!standard D.7 (00)                                   02-09-02  AI95-00305/02
+!standard D.7 (10)                                   02-10-23  AI95-00305/03
+!standard D.7 (15)
+!standard D.7 (19)
+!standard H.5 (01)
 !class amendment 02-07-17
+!status Amendment 200Y 02-10-23
+!status ARG approved 10-0-1  02-10-11
 !status work item 02-07-17
 !status received 02-07-17
 !priority High
@@ -54,17 +59,17 @@
 	Delay_relative statements are not allowed.
 
 No_Requeue_Statements
-	Requeue statements are not allowed.
+	There are no requeue_statements.
 
 No_Select_Statements
-	Select_statements are not allowed.
+	There are no select_statements.
 
 No_Task_Attributes_Package
 	There are no semantic dependencies on package Ada.Task_Attributes.
 
 Simple_Barriers
 	The Boolean expression in an entry barrier shall be either a
-	Boolean literal value or the value of a Boolean component
+	static Boolean expression or the value of a Boolean component
 	of the enclosing protected object.
 
 
@@ -72,7 +77,7 @@
 replaces D.7(15/1):
 
 No_Task_Termination
-	All tasks are non-terminating. An implementation must define what
+	All tasks are non-terminating. It is implementation-defined what
 	happens if a task attempts to terminate.
 
 
@@ -100,14 +105,14 @@
 Static Semantics
 The pragma is a configuration pragma.
 
-Post-Compilation Rules
+Dynamic Semantics
 An implementation is required to detect a potentially blocking
 operation within a protected operation, and to raise Program_Error
-as required under 9.5.1(17).
+(see 9.5.1).
 
-Implementation Permissions
+Notes
 An operation that causes a task to be blocked within a foreign language
-domain is not defined to be potentially blocking, and may not be detected.
+domain is not defined to be potentially blocking, and need not be detected.
 
 !example
 
@@ -133,6 +138,98 @@
 H.4. For reasons of minimum change it is not proposed to move them.
 
 !ACATS test
+
+ACATS tests should be constructed for these features.
+
+!corrigendum D.7(10)
+
+@dinsa
+@xhang<@xterm<No_Asynchronous_Control>
+There are no semantic dependences on the package Asynchronous_Task_Control.>
+@dinss
+@xhang<@xterm<No_Calendar>
+There are no semantic dependencies on package Ada.Calendar.>
+
+@xhang<@xterm<No_Dynamic_Attachment>
+There is no call to any of the operations defined in package
+Ada.Interrupts (Is_Reserved, Is_Attached, Current_Handler,
+Attach_Handler, Exchange_Handler, Detach_Handler, Reference).>
+
+@xhang<@xterm<No_Local_Protected_Objects>
+All protected objects are created via library-level declarations.>
+
+@xhang<@xterm<No_Protected_Type_Allocators>
+There are no allocators for protected types or types containing
+protected type components.>
+
+@xhang<@xterm<No_Relative_Delay>
+There are no @fa<delay_relative_statement>s.>
+
+@xhang<@xterm<No_Requeue_Statements>
+There are no @fa<requeue_statement>s.>
+
+@xhang<@xterm<No_Select_Statements>
+There are no @fa<select_statement>s.>
+
+@xhang<@xterm<No_Task_Attributes_Package>
+There are no semantic dependencies on package Ada.Task_Attributes.>
+
+@xhang<@xterm<Simple_Barriers>
+The Boolean expression in an entry barrier shall be either a
+static Boolean expression or the value of a Boolean component
+of the enclosing protected object.>
+
+!corrigendum D.7(15)
+
+@drepl
+@i<This paragraph was deleted>
+@dby
+@xhang<@xterm<No_Task_Termination>
+All tasks are non-terminating. It is implementation-defined what
+happens if a task attempts to terminate.>
+
+!corrigendum D.7(19)
+
+@dinsa
+@xhang<@xterm<Max_Tasks>
+Specifies the maximum number of task creations that may be executed over the
+lifetime of a partition, not counting the creation of the environment task.
+A value of zero prevents any task creation and, if a program contains a task
+creation, it is illegal. If an implementation chooses to detect a violation
+of this restriction, Storage_Error should be raised; otherwise, the behavior
+is implementation defined.>
+@dinst
+@xhang<@xterm<Max_Entry_Queue_Length>
+Max_Entry_Queue_Length defines the maximum number of calls
+that are queued on an entry. Violation of this restriction
+results in the raising of Program_Error exception at the point
+of the call.>
+
+!corrigendum H.5(1)
+
+@dinsc
+
+The following pragma forces an implementation to detect potentially
+blocking operations within a protected operation.
+
+@i<@s8<Syntax>>
+
+The form of a pragma Detect_Blocking is as follows:
+@xindent<@b<pragma> Detect_Blocking;>
+
+@i<@s8<Static Semantics>>
+
+The pragma is a configuration pragma.
+
+@i<@s8<Dynamic Semantics>>
+
+An implementation is required to detect a potentially blocking
+operation within a protected operation, and to raise Program_Error
+(see 9.5.1).
+
+@xindent<@i<@s8<NOTES>>@hr
+10 An operation that causes a task to be blocked within a foreign language
+domain is not defined to be potentially blocking, and need not be detected.>
 
 !appendix
 

Questions? Ask the ACAA Technical Agent