CVS difference for ai12s/ai12-0073-1.txt
--- ai12s/ai12-0073-1.txt 2013/06/11 01:01:49 1.2
+++ ai12s/ai12-0073-1.txt 2013/07/06 04:34:16 1.3
@@ -1,5 +1,7 @@
-!standard A.18.10(157/3) 13-06-08 AI12-0073-1/01
+!standard A.18.10(157/3) 13-07-05 AI12-0073-1/02
!class binding interpretation 13-06-08
+!status Amendment 202x 13-07-05
+!status ARG Approved 9-0-0 13-06-14
!status work item 13-06-08
!status received 13-05-03
!priority Low
@@ -31,7 +33,7 @@
!wording
In D.13(6/3), add "No_Dependence => Ada.Synchronous_Barriers," to the list
-of restrictions after "No_Depenence => Ada.Execution_Time.Timers,".
+of restrictions after "No_Dependence => Ada.Execution_Time.Timers,".
!discussion
@@ -62,21 +64,67 @@
adopt some other solution should it prove necessary. Other options do not
provide this flexiblity.
-Other options were considered:
+!corrigendum D.13(6/3)
-* Doing nothing, which would leave a significant portability problem in
- Ravenscar. Barriers would work on some implementations and not on others. This
- is precisely the sort of problem that Ada in general and the Ravenscar profile
- specifically is supposed prevent, so this option was rejected.
-
-* Mandating that implementations *not* use protected types to implement
- barriers. However, this would require a substantial change in Ada runtimes
- that do not have target support for barriers - a simple implementation would
- not be allowed (even when the Ravenscar profile is not in used).
-
-* Restrict barriers to a single task if declared at library-level with a new
- restriction for Ravenscar programs. This would eliminate the portability
- problem, but at the cost of most of the value of the feature.
+@drepl
+@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_Budgets,
+ No_Dependence =@> Ada.Execution_Time.Timers,
+ No_Dependence =@> Ada.Task_Attributes,
+ No_Dependence =@> System.Multiprocessors.Dispatching_Domains);>
+@dby
+@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_Budgets,
+ No_Dependence =@> Ada.Execution_Time.Timers,
+ No_Dependence =@> Ada.Synchronous_Barriers,
+ No_Dependence =@> Ada.Task_Attributes,
+ No_Dependence =@> System.Multiprocessors.Dispatching_Domains);>
!ACATS Test
Questions? Ask the ACAA Technical Agent