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

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

--- ai05s/ai05-0215-1.txt	2011/01/27 06:06:17	1.3
+++ ai05s/ai05-0215-1.txt	2011/03/17 04:10:58	1.4
@@ -1,4 +1,4 @@
-!standard  9.5(18/3)                             10-10-25    AI05-0215-1/01
+!standard  9.5(10-18/3)                            11-03-16    AI05-0215-1/02
 !standard  9.5.4(3/3)
 !standard  9.5.4(5/3)
 !standard  9.5.4(5.1/3)
@@ -11,12 +11,14 @@
 !subject Errors in AI05-0030-2
-*** TBD ***
+The aspect Is_Synchronized is introduced as the proper way of specifying how
+a synchronized interface operation must be implemented (replacing the
+pragma Implemented of AI05-0030-2).
 (1) I don't see any rule that says that you can't write two
-    Implemented pragmas for the same subprogram.  (If the Standard
+    Implemented pragmas for the same subprogram. (If the Standard
     said that Implemented were a representation pragma, as it does
     for No_Return, this would follow automatically; but it doesn't
     say that anywhere.)
@@ -48,17 +50,34 @@
-Modify 9.5(18/3) as follows:
+Delete 9.5 (10/3-11/3).
-  A pragma Implemented {is a representation pragma, and} is [said to
-  *apply* to]{specifies the Implemented aspect of} the procedure denoted
-  by its *procedure_*local_name. {Inherited subprograms inherit the
-  Implemented aspect, if any, from the corresponding subprogram of the
-  parent or progenitor type.}  If an overriding operation does not have
-  a [pragma] {directly specified} Implemented {aspect} then [any pragma
-  Implemented applying to] {Implemented aspect of} the inherited
-  operation [applies to] {is inherited by} the overriding operation.
+Modify 9.5 (12/3) as follows:
+    Synchronization_Kind ::= By_Entry | By_Protected_Procedure | By_Any
+Modify 9.5(13/3 - 16/3) as follows:
+  For the declaration of a primitive procedure of a synchronized tagged type
+  the following language-defined representation aspect may be specified with
+  an aspect_specification:
+    Is_Synchronized.
+	If specified, the aspect definition shall be a Synchronization_Kind.
+  The Synchronization_Kind By_Protected_Procedure shall not be applied to
+  a primitive procedure of a task interface.
+  A procedure for which the specified Synchronization_Kind is By_Entry shall
+  be implemented by a an entry. A procedure for which the
+  specified  Synchronization_Kind is as By_Protected_Procedure shall be
+  implemented by a protected procedure.
+  If a primitive procedure overrides an inherited operation for which the
+  Synchronization_Kind has been specified, then any specification of the
+  Aspect Is_Synchronized applied to the overring operation shall have the
+  same Synchronization_Kind, or the inherited Synchronization_Kind shall be
+  By_Any.
 Modify 9.5.4(3/3) as follows:
   The *procedure_or_entry_*name of a requeue_statement shall resolve to
@@ -81,8 +100,8 @@
   entry, or shall denote {a view or} a prefixed view of a primitive
   subprogram of a synchronized interface, where the first parameter of
   the unprefixed view of the primitive subprogram shall be a controlling
-  parameter, and [an] {the} Implemented [pragma] {aspect shall be
-  specified} with implementation_kind By_Entry [shall apply to] {for}
+  parameter, and [an] {the} Is_Synchronized [pragma] {aspect shall be
+  specified} with Synchronization_Kind By_Entry [shall apply to] {for}
   the primitive subprogram.
@@ -391,6 +410,22 @@
 Sent: Tuesday, January 25, 2011  3:36 PM
 Not to mention By_Mistake and By_Pure_Luck.
+From: Edmond Schonberg
+Sent: Wednesday, March 16, 2011  3:55 PM
+Here is an aspect-centric version of this AI.  The new aspect is
+Is_Synchronized, and the aspect definition is a synchronization_kind:
+      Synchronization_Kind ::= By_Entry | By_Protected_Procedure | By_Any.
+I did not see the need to have an additional value to specify a default, given
+the stated inheritance rules. I guess Bob will move the skeleton of the previous
+version of the AI to annex J.
+[This is version /02 of the AI - Editor.]

Questions? Ask the ACAA Technical Agent