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

Differences between 1.2 and version 1.3
Log of other versions for file ai12s/ai12-0403-1.txt

--- ai12s/ai12-0403-1.txt	2020/10/21 04:44:45	1.2
+++ ai12s/ai12-0403-1.txt	2020/10/22 23:59:00	1.3
@@ -1,13 +1,12 @@
-!standard 4.2.1(15/5)                                    20-10-20  AI12-0403-1/02
+!standard 4.2.1(15/5)                                    20-10-21  AI12-0403-1/03
 !standard 4.2.1(17/5)
 !standard 4.2.1(18/5)
 !standard 4.2.1(19/5)
 !standard 4.3.5(93/5)
 !standard H.4.1(2/5)
-!standard H.7.1(14/5)
-!standard H.7.1(17/5)
-!standard H.7.1(18/5)
 !class binding interpretation 20-10-15
+!status Amendment 1-2012 20-10-21
+!status ARG Approved 14-0-0  20-10-21
 !status work item 20-10-15
 !status received 20-10-15
 !priority Low
@@ -39,19 +38,6 @@
 
 The second sentence seems awkward. Should it be reworded? (Yes.)
 
-(4) H.7.1(17/5) says:
-
-   Within an operation to which a Dispatching aspect applies, any dispatching 
-   call that does not match any dispatching_operation_specifier of the 
-   dispatching operation set is checked using the Nonblocking and Global'Class 
-   aspect(s) applicable to the called dispatching operation; if there is a match,
-   there is no checking against the Nonblocking or global aspects applicable at 
-   the point of call.
-
-Is it clear that this only refers to the call itself and not to any checks 
-associated with the evaluation of the parameters? (No.) In particular, the
-parameters are still considered to be read/written, right? (Yes.)
-
 !recommendation
 
 (1) Fix as suggested.
@@ -60,11 +46,6 @@
 
 (3) Reword to use "shall" rather than "require".
 
-(4) Merge this entire rule with H.7.1(14/5), as there is no actual 
-Legality Rule in it anyway, and clarify that we're only talking about
-the checks associated with the call and not any other checks that
-are nearby (including those associated with the parameters).
-
 !wording
 
 Modify 4.2.1(15/5-20/5):
@@ -108,40 +89,26 @@
     any descendants {shall}[do] not have any controlled parts. If specified, 
     the value of the expression shall be static. If not specified, the value 
     of this aspect is False.
+
+!discussion
 
-Modify H.7.1(14/5):
+(See !recommendation.)
 
-The dispatching operation set is identified by a set of 
-dispatching_operation_specifiers. It indicates that the Nonblocking and 
-global effects of dispatching calls that match one of the specifiers need 
-not be accounted for by the Nonblocking or global aspect, but are instead 
-to be accounted for by the invoker of the operation. A dispatching call 
-matches a dispatching_operation_specifier if the name or prefix of the call 
-statically denotes the same operation(s) as that of the 
-dispatching_operation_specifier, and at least one of the objects controlling 
-the call is denoted by, or designated by, a name that statically names the 
-same object as that denoted by the object_name of the 
-dispatching_operation_specifier. {
-
-}In the absence of any dispatching_operation_specifiers{, or if none of them 
-match a dispatching call C within an operation P}, Nonblocking and global 
-aspects checks are performed at the point of [a dispatching]{the} call {C} 
-within [the operation]{P} using the Nonblocking and Global'Class aspects that
-apply to the [named] dispatching operation {named in call C}. {If there is a 
-match, any global access or potential blocking within the subprogram body 
-invoked by the call C is ignored at the point of call within P. Instead, 
-when the operation P itself is invoked, Nonblocking and global aspect checks 
-are performed presuming each named dispatching operation is called at least 
-once (with the named object controlling the call), but similarly ignoring 
-those dispatching calls that would match a dispatching_operation_specifier 
-applicable at the point of invocation of P.}
+!corrigendum 4.2.1(0)
 
-Delete H.7.1(17/5) and H.7.1(18/5) [these are moved above].
+@insc
+See the conflict file for the changes.
 
-!discussion
+!corrigendum 4.3.5(0)
 
-(See !recommendation.)
+@dinsc
+See the conflict file for the changes.
 
+!corrigendum H.4.1(0)
+
+@dinsc
+See the conflict file for the changes.
+
 !ASIS
 
 No ASIS effect.
@@ -441,165 +408,5 @@
             type and any descendants shall not have any controlled parts.
 
 And I got rid of the "do", making the whole discussion moot. I hope. ;-)
-
-****************************************************************
-
-From: Claire Dross
-Sent: Friday, September 18, 2020  9:54 AM
-
-[From her RM review.]
-
-Annex H-7-1
-
-17/5 Within an operation to which a Dispatching aspect applies, any dispatching 
-call that does not match any dispatching_operation_specifier of the dispatching 
-operation set is checked using the Nonblocking and Global'Class aspect(s) 
-applicable to the called dispatching operation; if there is a match, there is 
-no checking against the Nonblocking or global aspects applicable at the point 
-of call.
-
->> Is it clear that parameters are still considered to be read/written? should 
-we add a comment?
-
-****************************************************************
-
-From: Tucker Taft
-Sent: Friday, September 18, 2020  10:39 AM
-
-> Annex H-7-1
-> 
-> 17/5 Within an operation to which a Dispatching aspect applies, any 
-> dispatching call that does not match any 
-> dispatching_operation_specifier of the dispatching operation set is 
-> checked using the Nonblocking and Global'Class aspect(s) applicable to 
-> the called dispatching operation; if there is a match, there is no 
-> checking against the Nonblocking or global aspects applicable at the 
-> point of call.
-> 
->>> Is it clear that parameters are still considered to be read/written? 
->>> should we add a comment?
-
-Perhaps an AARM note with an example where the actual parameter is a global, 
-indicating it should be treated as a read and/or write of that global.  
-Normative wording could perhaps be clarified by saying "checking {of these 
-aspects} against the ...".  Hence:
-
-"Within an operation to which a Dispatching aspect applies, any dispatching 
-call that does not match any dispatching_operation_specifier of the 
-dispatching operation set is checked using the Nonblocking and Global'Class 
-aspect(s) applicable to the called dispatching operation; if there is a match,
-there is no checking of these aspects against the Nonblocking or global 
-aspects applicable at the point of call."
-
-****************************************************************
-
-Editor's note: A summary of private mail between me and Tucker Taft.
-
-Randy:
-
-Humm. I think this makes it worse, because it's not at all clear what "these 
-aspects" refer to. The noun here is "a Dispatching aspect"; I know you're not
-talking about that.
-
-I suspect some the confusion here is that the two parts here seem to be 
-talking about slightly different parts of the process; the first talks 
-about "checking" using the N and G aspects of the called operation, but 
-doesn't say anything about what that entails, whereas the second talks 
-about "not checking" (unidentified aspects) against some specific aspects 
-at the point of the call.
-
-It would be better if the two halves were truly equivalent, talking about 
-exactly the same thing. I realize that's not easy to do. The overly long 
-version would be something like:
-
-"Within an operation to which a Dispatching aspect applies, any dispatching 
-call that does not match any dispatching_operation_specifier of the dispatching
-operation set is checked {against the Nonblocking or global aspects applicable 
-at the point of call} using the Nonblocking and Global'Class aspect(s) 
-applicable to the called dispatching operation; if there is a match, there 
-is no checking {of the Nonblocking and Global'Class aspect(s) applicable to 
-the called dispatching operation} against the Nonblocking or global aspects 
-applicable at the point of call."
-
-It might be best to mention that we're talking about the "usual" check in the 
-first case (which of course makes it longer still):
-
-"Within an operation to which a Dispatching aspect applies, any dispatching 
-call that does not match any dispatching_operation_specifier of the 
-dispatching operation set is checked {in the normal way against the 
-Nonblocking or global aspects applicable at the point of call} using the 
-Nonblocking and Global'Class aspect(s) applicable to the called dispatching
-operation; if there is a match, there is no checking {of the Nonblocking and
-Global'Class aspect(s) applicable to the called dispatching operation} against 
-the Nonblocking or global aspects applicable at the point of call."
-
-I suspect this can be refactored to simplify and clarify it. Perhaps:
-
-"Within an operation to which a Dispatching aspect applies, the manner in 
-which the Nonblocking and Global'Class aspect(s) of a dispatching call are 
-checked against the Nonblocking or global aspects applicable at the point of 
-call depends upon the Dispatching aspect(s) that apply. In particular, for any 
-dispatching call that does not match any dispatching_operation_specifier of 
-the dispatching operation set the aspects are checked in the normal way; if 
-there is a match, there is no checking of those aspects."
-
-Maybe "in the normal way" would be better phrased as "as usual"? Or more 
-pedantically "as described elsewhere in this Standard"?
-
-Maybe there even a better way to organize this wording?
-
-Tucker:
-
-> Humm. I think this makes it worse, because it's not at all clear what 
-> "these aspects" refer to. The noun here is "a Dispatching aspect"; I 
-> know you're not talking about that.
-
-To me it seems pretty clear what "these aspects" refers to, since it is plural 
-while "dispatching aspect" is singular.  But perhaps we can avoid any hint of 
-ambiguity.
-
-...
-> Maybe there even a better way to organize this wording?
-
-I don't think "normally" or "usually" work very well here, so I think we 
-should be a bit more pedantic.
-
-In fact, I would suggest we merge this legality-rule paragraph's content 
-(and the one following) into the Static Semantics section, as they seem 
-closely related to a Static Semantics paragraph (14/5), and there is no 
-"shall" or "shall not" in these paragraphs anyway.
-
-Hence, I would suggest the following:
-
-Modify H.7.1(14/5):
-
-The dispatching operation set is identified by a set of 
-dispatching_operation_specifiers. It indicates that the Nonblocking and 
-global effects of dispatching calls that match one of the specifiers need 
-not be accounted for by the Nonblocking or global aspect, but are instead 
-to be accounted for by the invoker of the operation. A dispatching call 
-matches a dispatching_operation_specifier if the name or prefix of the call 
-statically denotes the same operation(s) as that of the 
-dispatching_operation_specifier, and at least one of the objects controlling 
-the call is denoted by, or designated by, a name that statically names the 
-same object as that denoted by the object_name of the 
-dispatching_operation_specifier. {
-
-}In the absence of any dispatching_operation_specifiers{, or if none of them 
-match a dispatching call C within an operation P}, Nonblocking and global 
-aspects checks are performed at the point of [a dispatching]{the} call {C} 
-within [the operation]{P} using the Nonblocking and Global'Class aspects that
-apply to the [named] dispatching operation {named in call C}. {If there is a 
-match, any global access or potential blocking within the subprogram body 
-invoked by the call C is ignored at the point of call within P. Instead, 
-when the operation P itself is invoked, Nonblocking and global aspect checks 
-are performed presuming each named dispatching operation is called at least 
-once (with the named object controlling the call), but similarly ignoring 
-those dispatching calls that would match a dispatching_operation_specifier 
-applicable at the point of invocation of P.}
-
--------
-
-Then we can delete H.7.1(17/5 and 18/5).
 
 ****************************************************************

Questions? Ask the ACAA Technical Agent