CVS difference for ais/ai-00345.txt

Differences between 1.4 and version 1.5
Log of other versions for file ais/ai-00345.txt

--- ais/ai-00345.txt	2003/12/07 05:00:33	1.4
+++ ais/ai-00345.txt	2004/01/08 04:16:39	1.5
@@ -1,4 +1,4 @@
-!standard  3.04.03    (00)                             03-09-28  AI95-00345/01
+!standard  3.04.03    (00)                             03-12-14  AI95-00345/02
 !class amendment 03-08-07
 !status work item 03-09-28
 !status received 03-06-12
@@ -25,26 +25,94 @@
 
 !proposal
 
-Augment the syntax for tasks and protected type declarations
-to allow task and protected interfaces, as follows:
+Add after 6.3.1(24):
+    Two subprograms or entries are type conformant (respectively mode
+    conformant, subtype conformant, or fully conformant) if their profiles are
+    type conformant (respectively mode conformant, subtype conformant, or fully
+    conformant).
+
+    Two entry families are subtype conformant if their profiles are subtype
+    conformant and their entry index subtypes match statically.
+
+Add to the end of 9.1(1):
+
+	A task_interface_declaration declares a task interface type, specifying
+	entries or entry families that must be provided by any task type derived
+	from the interface.
 
+Change 9.1(2) to:
+
+  task_type_declaration ::=
+    TASK TYPE defining_identifier [known_discriminant_part] [IS
+      [NEW task_interface_subtype_mark {AND task_interface_subtype_mark} WITH]
+      task_definition];
+
+Add after 9.1(5/1) to:
+
   task_interface_declaration ::=
     TASK INTERFACE defining_identifier IS
-      [NEW task_interface_name {AND task_interface_name} WITH] task_interface_definition;
+      [NEW task_interface_subtype_mark {AND task_interface_subtype_mark} WITH]
+      task_interface_definition;
 
-  task_interface_definition ::= {abstract_entry_declaration} END [task_identifier]
+  task_interface_definition ::=
+      {abstract_entry_declaration}
+    END [task_identifier]
 
-  task_type_declaration ::=
-    TASK TYPE defining_identifier [known_discriminant_part] [IS
-      [NEW task_interface_name {AND task_interface_name} WITH] task_definition];
+Change 9.1(7) to:
+
+	If a task_identifier appears at the end of a task_definition{,
+	task_interface_definition,} or task_body, it shall repeat the
+	defining_identifier.
+
+Add after 9.1(8):
+
+    A task_interface_subtype_mark shall denote a task interface type.
+
+    If a task_type_declaration includes one or more
+    task_interface_subtype_marks, then each abstract entry (or entry
+    family) inherited by the task type shall be overridden with a subtype
+    conformant entry_declaration in the visible part of the task_type_declaration.
 
+    If a task_interface_declaration includes one or more task_interface_subtype_marks,
+    then if an abstract entry or entry family of a named task interface type has the
+    same identifier as an abstract entry or entry family of some other named
+    task interface type, or an abstract entry or entry family declared within the
+    task_interface_declaration, then:
+       - neither or both shall be an abstract entry family
+
+Add after 9.1(9.1/1):
+
+	A task_interface_definition defines a task interface type and its first subtype.
+	The list of abstract_entry_declarations is the visible part of the
+	task_interface_declaration.  For each abstract_entry_declaration, a task interface
+	type has an abstract entry or entry family.  In addition, if the enclosing
+	task_interface_declaration includes one or more task_interface_subtype_marks,
+	the task interface type is derived from each named task interface, and it inherits
+	each of the abstract entry or entry families of the named interface.
+
+	If a task_type_declaration includes one or more task_interface_subtype_marks,
+	the task type is derived from each named task interface.
+
+	If a task_inderface_declaration
+
+
+Add after 9.1(12/1):
+
+    The elaboration of a task_interface_declaration elaborates the
+    task_interface_definition. The elaboration of a task_interface_definition
+    creates the task interface type and its first subtype; it also includes the
+    elaboration of the abstract_entry_declarations in the given order.
+
+
   protected_interface_declaration ::=
     PROTECTED INTERFACE defining_identifier IS
       [NEW protected_interface_name {AND protected_interface_name} WITH]
       protected_interface_definition;
 
 
-  protected_interface_definition ::= {protected_interface_item} END [protected_identifier]
+  protected_interface_definition ::=
+      {protected_interface_item}
+    END [protected_identifier]
 
   protected_interface_item ::= abstract_subprogram_declaration
     | null_procedure_declaration
@@ -84,6 +152,8 @@
 protected and task interfaces should be minimized.
 
 !wording
+
+(See proposal.)
 
 !example
 

Questions? Ask the ACAA Technical Agent