CVS difference for ais/ai-00265.txt

Differences between 1.6 and version 1.7
Log of other versions for file ais/ai-00265.txt

--- ais/ai-00265.txt	2003/02/19 00:50:44	1.6
+++ ais/ai-00265.txt	2003/03/04 04:56:22	1.7
@@ -1,6 +1,7 @@
-!standard D.2.2 (5)                                03-02-09  AI95-00265/06
-!standard D.7 (00)
+!standard H.6 (00)                                    03-02-18  AI95-00265/07
 !class amendment 01-05-10
+!status Amendment 200Y 03-02-18
+!status ARG Approved 8-0-0  03-02-09
 !status work item 01-05-10
 !status received 01-05-10
 !priority High
@@ -52,19 +53,19 @@
 
 Syntax
 The form of a pragma Partition_Elaboration_Policy is as follows:
-pragma Partition_Elaboration_Policy ( <policy_identifier> );
+pragma Partition_Elaboration_Policy ( policy_identifier );
 
 The policy_identifier shall be either Sequential, Concurrent or an
 implementation-defined identifier.
 
 Post-Compilation Rules
+The pragma is a configuration pragma. It applies to all compilation
+units in a partition.
+
 If the Sequential policy is specified for a
 partition then pragma Restrictions (No_Task_Hierarchy) shall
 also be specified for the partition.
 
-The pragma is a configuration pragma. It applies to all compilation
-units in a partition.
-
 Dynamic Semantics
 
 Notwithstanding what this International Standard says elsewhere, this
@@ -74,29 +75,29 @@
 defined for the partition, then the rules defined elsewhere in this
 Standard apply.
 
-If the policy_identifier is Sequential, all task activation for library-level
-tasks, and all interrupt handler attachment for library-level interrupt
-handlers is deferred. The deferred task activation and handler attachment
-occurs after the elaboration of all library_items prior to calling the main
-subprogram. At this point the Environment task is suspended until all deferred
-task activation and handler attachment is complete.
+If the partition elaboration policy is Sequential, all task activation for
+library-level tasks and all interrupt handler attachment for library-level
+interrupt handlers is deferred. The deferred task activation and handler
+attachment occurs after the elaboration of all library_items prior to calling
+the main subprogram. At this point the Environment task is suspended until all
+deferred task activation and handler attachment is complete.
 
-If any deferred task activation fails, then Tasking_Error is raised
+If any deferred task activation fails, Tasking_Error is raised
 in the Environment task. The Environment task and all tasks whose
 activations fail are terminated. If a number of dynamic interrupt
 handler attachments for the same interrupt are deferred then the
-most recently call of Attach_Handler or Exchange_Handler determines
+most recent call of Attach_Handler or Exchange_Handler determines
 which handler is attached.
 
 Implementation Advice
 
-If the Policy_Identifier is Sequential and the Environment task
-becomes permanently blocked then the partition is deadlocked
-and it is recommended that it be immediately terminated.
+If the partition elaboration policy is Sequential and the Environment task
+becomes permanently blocked during elaboration then the partition is
+deadlocked and it is recommended that it be immediately terminated.
 
 Implementation Permission
 
-If the Policy_Identifier is Sequential and any task activation
+If the partition elaboration policy is Sequential and any task activation
 fails then an implementation may immediately terminate the active
 partition to mitigate the hazard posed by continuing to execute
 with a subset of the tasks being active.
@@ -107,8 +108,68 @@
 
 The Restriction No_Task_Hierarchy is needed to prevent deadlock.
 
+!corrigendum H.06(01)
+
+@dinsc
+This clause defines a @fa<pragma> for user control over elaboration policy.
+
+@i<@s8<Syntax>>
+
+The form of a @fa<pragma> Partition_Elaboration_Policy is as follows:
+
+@xindent<@b<pragma> Partition_Elaboration_Policy (@i<policy_>@fa<identifier>);>
+
+The @i<policy_>@fa<identifier> shall be either Sequential, Concurrent or an
+implementation-defined identifier.
+
+@i<@s8<Post-Compilation Rules>>
+
+The @fa<pragma> is a configuration pragma. It applies to all compilation
+units in a partition.
+
+If the Sequential policy is specified for a partition then pragma Restrictions
+(No_Task_Hierarchy) shall also be specified for the partition.
+
+@i<@s8<Dynamic Semantics>>
+
+Notwithstanding what this International Standard says elsewhere, this
+@fa<pragma> allows partition elaboration rules concerning task activation
+and interrupt attachment to be changed. If the @fa<policy_identifier>
+is Concurrent, or if there is no pragma Partition_Elaboration_Policy
+defined for the partition, then the rules defined elsewhere in this
+Standard apply.
+
+If the partition elaboration policy is Sequential, all task activation for
+library-level tasks and all interrupt handler attachment for library-level
+interrupt handlers is deferred. The deferred task activation and handler
+attachment occurs after the elaboration of all @fa<library_item>s prior to
+calling the main subprogram. At this point the Environment task is suspended
+until all deferred task activation and handler attachment is complete.
+
+If any deferred task activation fails, Tasking_Error is raised
+in the Environment task. The Environment task and all tasks whose
+activations fail are terminated. If a number of dynamic interrupt
+handler attachments for the same interrupt are deferred then the
+most recent call of Attach_Handler or Exchange_Handler determines
+which handler is attached.
+
+@i<@s8<Implementation Advice>>
+
+If the partition elaboration policy is Sequential and the Environment task
+becomes permanently blocked during elaboration then the partition is deadlocked
+and it is recommended that it be immediately terminated.
+
+@i<@s8<Implementation Permission>>
+
+If the partition elaboration policy is Sequential and any task activation
+fails then an implementation may immediately terminate the active
+partition to mitigate the hazard posed by continuing to execute
+with a subset of the tasks being active.
+
 !ACATS test
 
+An ACATS C-Test and L-Test should be constructed for this pragma.
+
 !appendix
 
 [Editor's note: This originally was part of the Ravenscar proposal,
@@ -127,6 +188,29 @@
 be caught). My recollection is that we were more
 concerned about saying what the env task could do
 or could not do.
+
+****************************************************************
+
+From: Randy Brukardt
+Sent: Tuesday, February 18, 2003  7:08 PM
+
+The wording of version /06 in several places says:
+"If the @i<policy_>@fa<identifier> is Sequential,"
+This is weird, because we're talking about the partition's policy, not
+some instance of the pragma. It seems to imply that there is only one
+instance of the pragma in some well-known place, but that is not
+required by configuration pragmas. So, the syntax reference is inappropriate.
+
+The wording would be better if it said something like:
+"If the partition elaboration policy is Sequential,"
+
+I've made this change in version /07.
+
+It might be preferable if the term "partition elaboration policy" was
+defined somewhere. I don't much like the idea of a nameless policy, people
+are going to call it something. It seems likely that it will be referred to
+as "partition elaboration policy" whether we officially name it that or not,
+because that's the name of the pragma.
 
 ****************************************************************
 

Questions? Ask the ACAA Technical Agent