CVS difference for ai05s/ai05-0246-1.txt

Differences between 1.4 and version 1.5
Log of other versions for file ai05s/ai05-0246-1.txt

--- ai05s/ai05-0246-1.txt	2011/04/30 07:28:36	1.4
+++ ai05s/ai05-0246-1.txt	2011/05/03 06:32:08	1.5
@@ -1,9 +1,15 @@
-!standard  13.12(1)                              11-04-19    AI05-0246-1/02
-!standard  13.12(11)
-!standard  13.12.1(3/2)
+!standard  13.12(1)                              11-05-02    AI05-0246-1/03
+!standard  13.12(9.2/1)
+!standard  13.12.1(2/2)
 !standard  13.12.1(8/2)
-!standard  D.13.1(1/2)
+!standard  D.13(1/2)
+!standard  D.13(2/2)
+!standard  D.13(3/2)
+!standard  D.13(4/2)
+!standard  D.13(5/2)
+!standard  D.13(6/2)
 !class Amendment 11-03-16
+!status Amendment 2012 11-05-02
 !status ARG Approved  8-0-0  11-04-07
 !status work item 11-02-19
 !status received 11-02-19
@@ -53,7 +59,7 @@
   policies.}  [This]{These} may facilitate the construction of simpler
   run-time environments.]
 
-Move content of D.13 to after 13.12(11):
+Move content of D.13 to after 13.12(9.2/1):
 
   Syntax
 
@@ -81,7 +87,7 @@
 Change name of "13.12.1 Language-Defined Restrictions" to
   "13.2.1 Language-Defined Restrictions and Profiles"
 
-Add after 13.12.1(3/2):
+Add after 13.12.1(2/2):
 
   No_Implementation_Identifiers
 
@@ -168,7 +174,197 @@
 
     pragma Profile(No_Implementation_Extensions);
 
---!corrigendum 13.12.1(3/2)
+!corrigendum 13.12(1)
+
+@drepl
+A pragma Restrictions expresses the user's intent to abide
+by certain restrictions. This may facilitate the construction of simpler
+run-time environments.
+@dby
+A pragma Restrictions expresses the user's intent to abide
+by certain restrictions. A pragma Profile expresses the user's intent
+to abide by a set of Restrictions or other specified run-time
+policies. These may facilitate the construction of simpler
+run-time environments.
+
+!corrigendum 13.12(9.2/1)
+
+@dinsa
+Whenever enforcement of a restriction is not required prior to
+execution, an implementation may nevertheless enforce the restriction prior to
+execution of a partition to which the restriction applies, provided
+that every execution of the partition would violate the restriction.
+@dinss
+@i<@s8<Syntax>>
+
+@xindent<The form of a @fa<pragma> Profile is as follows:>
+
+@xindent<@b<pragma> Profile (@i<profile_>@fa<identifier> {, @i<profile_>@fa<pragma_argument_association>});>
+
+@i<@s8<Legality Rules>>
+
+The @i<profile_>@fa<identifier> shall be the name of a usage profile.
+The semantics of any @i<profile_>@fa<pragma_argument_association>s are
+defined by the usage profile specified by the @i<profile_>@fa<identifier>.
+
+@i<@s8<Static Semantics>>
+
+A profile is equivalent to the set of configuration pragmas that is
+defined for each usage profile.
+
+@i<@s8<Post-Compilation Rules>>
+
+A @fa<pragma> Profile is a configuration pragma. There may be more than one
+@fa<pragma> Profile for a partition.
+
+!corrigendum 13.12.1(2/2)
+
+@dinsa
+@xhang<@xterm<No_Implementation_Attributes>
+There are no implementation-defined attributes. This restriction applies only
+to the current compilation or environment, not the entire partition.>
+@dinss
+@xhang<@xterm<No_Implementation_Identifiers>
+There are no usage names that denote declarations with
+implementation-defined identifiers that occur within language-defined packages.
+Such identifiers can arise as follows:>
+
+@xbullet<The following language-defined packages allow implementation-defined
+identifiers:>
+@xinbull<package System (see 13.7);>
+@xinbull<package Standard (see A.1);>
+@xinbull<package Ada.Command_Line (see A.15).>
+
+@xbullet<The following language-defined packages contain only implementation-defined
+identifiers:>
+@xinbull<package System.Machine_Code (see 13.8);>
+@xinbull<package Ada.Directories.Information (see A.16);>
+@xinbull<nested Implementation packages of the Queue containers (see A.18.28-31);>
+@xinbull<package Interfaces (B.2);>
+@xinbull<package Ada.Interrupts.Names (see C.3.2).>
+
+@xindent<For package Standard, Standard.Long_Integer and Standard.Long_Float are
+considered language-defined identifiers, but identifiers such as
+Standard.Short_Short_Integer are considered implementation-defined.>
+
+
+!corrigendum 13.12.1(8/2)
+
+@dinsa
+No compilation unit included in the partition shall depend semantically
+on the library unit identified by the @fa<name>.
+@dinss
+@i<@s8<Static Semantics>>
+
+The following @i<profile_>@fa<identifier> is language-defined:
+
+@xhang<@xterm<No_Implementation_Extensions>>
+
+For usage profile No_Implementation_Extensions, there shall be no
+@i<profile_>@fa<pragma_argument_association>s.
+
+The No_Implementation_Extensions usage profile is equivalent to the
+following restrictions:
+
+@xcode<No_Implementation_Aspect_Specifications,
+No_Implementation_Attributes,
+No_Implementation_Identifiers,
+No_Implementation_Pragmas,
+No_Implementation_Units.>
+
+!corrigendum D.13(1/2)
+
+@drepl
+This clause specifies a mechanism for defining run-time profiles.
+@dby
+This clause defines the Ravenscar profile.
+
+!corrigendum D.13(2/2)
+
+@ddel
+@xindent<The form of a @fa<pragma> Profile is as follows:>
+
+!corrigendum D.13(3/2)
+
+@ddel
+@xindent<@b<pragma> Profile (@i<profile_>@fa<identifier> {, @i<profile_>@fa<pragma_argument_association>});>
+
+!corrigendum D.13(4/2)
+
+@drepl
+The @i<profile_>@fa<identifier> shall be the name of a run-time profile.
+The semantics of any @i<profile_>@fa<pragma_argument_association>s are
+defined by the run-time profile specified by the @i<profile_>@fa<identifier>.
+@dby
+The @i<profile_>@fa<identifier> Ravenscar is a usage profile (see 13.12).
+For usage profile Ravenscar, there shall be no
+@i<profile_>@fa<pragma_argument_association>s.
+
+!corrigendum D.13(5/2)
+
+@drepl
+A profile is equivalent to the set of configuration pragmas that is
+defined for each run-time profile.
+@dby
+The usage profile Ravenscar
+is equivalent to the following set of pragmas:
+
+@xcode<@b<pragma> Task_Dispatching_Policy (FIFO_Within_Priorities);
+@b<pragma> Locking_Policy (Ceiling_Locking);
+@b<pragma> Detect_Blocking;
+@b<pragma> Restrictions (
+                No_Abort_Statements,
+                No_Dynamic_Attachment,
+                No_Dynamic_Priorities,
+                No_Implicit_Heap_Allocations,
+                No_Local_Protected_Objects,
+                No_Local_Timing_Events,
+                No_Protected_Type_Allocators,
+                No_Relative_Delay,
+                No_Requeue_Statements,
+                No_Select_Statements,
+                No_Specific_Termination_Handlers,
+                No_Task_Allocators,
+                No_Task_Hierarchy,
+                No_Task_Termination,
+                Simple_Barriers,
+                Max_Entry_Queue_Length =@> 1,
+                Max_Protected_Entries =@> 1,
+                Max_Task_Entries =@> 0,
+                No_Dependence =@> Ada.Asynchronous_Task_Control,
+                No_Dependence =@> Ada.Calendar,
+                No_Dependence =@> Ada.Execution_Time.Group_Budget,
+                No_Dependence =@> Ada.Execution_Time.Timers,
+                No_Dependence =@> Ada.Task_Attributes,
+                No_Dependence =@> System.Multiprocessors.Dispatching_Domains);>
+
+@s8<@i<Implementation Requirements>>
+
+A task shall only be on the ready queues of one processor, and the
+processor to which a task belongs shall be defined statically.
+Whenever a task running on a processor reaches a task dispatching point,
+it goes back to the ready queues of the same processor. A task with
+a CPU value of Not_A_Specific_CPU will execute on an implementation
+defined processor. A task without a CPU pragma will activate and execute
+on the same processor as its activating task.
+
+@s8<@i<Implementation Advice>>
+
+On a multiprocessor system, an implementation should support a fully
+partitioned approach. Each processor should have separate and disjoint
+ready queues.
+
+!corrigendum D.13(6/2)
+
+@drepl
+A @fa<pragma> Profile is a configuration pragma. There may be more than one
+@fa<pragma> Profile for a partition.
+@dby
+@xindent<@s9<NOTES@hr
+37 The effect of the Max_Entry_Queue_Length =@> 1 restriction applies
+only to protected entry queues due to the accompanying restriction of
+Max_Task_Entries =@> 0.>>
+
 
 !ACATS test
 

Questions? Ask the ACAA Technical Agent