CVS difference for ai12s/ai12-0279-1.txt

Differences between 1.5 and version 1.6
Log of other versions for file ai12s/ai12-0279-1.txt

--- ai12s/ai12-0279-1.txt	2018/10/17 03:22:48	1.5
+++ ai12s/ai12-0279-1.txt	2018/10/18 23:12:54	1.6
@@ -1,4 +1,4 @@
-!standard D.2.1(1.5/2)                                18-10-14  AI12-0279-1/02
+!standard D.2.1(1.5/2)                                18-10-18  AI12-0279-1/03
 !standard D.2.1(8/2)
 !class binding interpretation 18-05-14
 !status work item 18-05-14
@@ -46,9 +46,8 @@
 Add after D.2.1 (1.5/2)
 
 For a noninstance subprogram (including a generic formal subprogram),
-a generic subprogram, an entry, or an access-to-subprogram type, the
-following language-defined aspect may be specified with an
-aspect_specification (see 13.1.1):
+a generic subprogram, or an entry, the following language-defined aspect 
+may be specified with an aspect_specification (see 13.1.1):
 
 Yield
    The type of aspect Yield is Boolean.
@@ -58,10 +57,10 @@
 
    If a Yield aspect is specified True for a primitive subprogram S of a tagged
    type T, then the aspect is inherited by descendants of T (including the
-   class-wide type T'Class).
+   class-wide type T'Class). {If the Yield aspect is specified for a
+   subprogram which inherits the value of the aspect, the specified value 
+   shall be confirming.}
 
-   The Yield aspect with value True is nonoverridable. (see 13.1.1)
-
 Add after D.2.1 (8.2)
 
 The Yield aspect specifies that a task dispatching point will be reached
@@ -75,9 +74,9 @@
 
 We considered having potentially blocking operations be task dispatching points,
 but that raised the possibility that low-level subprograms such as IO calls that
-normally do not block could generate excessive overhead if they were to block.
-In contrast, this approach gives better control to the programmer to specify
-where extra task dispatching points should be placed.
+normally do not block could generate excessive overhead if they were to yield
+on every call. In contrast, this approach gives better control to the programmer 
+to specify where extra task dispatching points should be placed.
 
 We considered specifying the Yield aspect on some of the language-defined
 subprograms such as Ada.Task_Identification.Abort_Task and
@@ -553,6 +552,45 @@
 I guess I would not include access-to-subprogram here; if someone wants to
 ensure that some call on such a value was a task dispatching point, they can add
 a Yield call manually. (I don't see this coming up often!)
+
+****************************************************************
+
+From: Tullio Vardanega
+Sent: Thursday, October 18, 2018 6:37 AM
+
+My views interspersed with the text below.
+
+...
+>I added the following paragraph (stolen from aspect Pack) to the AI wording:
+>
+>If directly specified, the aspect_definition shall be a static expression.
+>If not specified (including by inheritance), the aspect is False. 
+>
+>You didn't mention the first part, but you must be intending that based on
+>the rest of the text.
+
+Yes, correct: fine fix.
+
+...
+>Probably this should either be replaced by what you mean. Maybe add it to
+>the preceding paragraph:
+>   If a Yield aspect is specified True for a primitive subprogram S of a
+>   tagged type T, then the aspect is inherited by descendants of T (including 
+>   the class-wide type T'Class). {If the Yield aspect is specified for a
+>   subprogram which inherits the value of the aspect, the specified value 
+>   shall be confirming.}
+
+Yes, your proposed addition does what I and the IRTAW group meant.
+
+...
+>I guess I would not include access-to-subprogram here; if someone wants to
+>ensure that some call on such a value was a task dispatching point, they can
+>add a Yield call manually. (I don't see this coming up often!)
+
+---
+I appreciate the wisdom of avoiding unwanted overhead. 
+I suppose we can live with not including access-to-subprograms to this ruling 
+and let the programmer handle those cases manually.
 
 ****************************************************************
 

Questions? Ask the ACAA Technical Agent