Version 1.5 of ais/ai-00046.txt

Unformatted version of ais/ai-00046.txt version 1.5
Other versions for file ais/ai-00046.txt

!standard E.2.2 (14)          00-07-07 AI95-00046/05
!class confirmation 95-06-25
!status WG9 approved 95-06-14
!status ARG approved (subject to editorial review) 8-0-1 95-11-01
!status received 95-06-25
!qualifier Clarification
!subject Intent of "only"
!summary
For a remote access-to-classwide type, if the corresponding specific type is T, then every access parameter of a primitive subprogram of T must be a controlling parameter.
!question
E.2.2(14) says that for a remote access-to-classwide type, "The primitive subprograms of the corresponding specific limited private type shall only have access parameters if they are controlling formal parameters...."
This can be interpreted two ways:
1. Every controlling parameter of a primitive subprogram must be an
access parameter.
2. Every access parameter of a primitive subprogram must be a controlling
parameter.
Which do you mean? (2.)
!response
The first interpretation cannot be deduced from this wording. The second intrepretation is only valid meaning.
!ACATS test
ACATS test BXE2012 includes this in the test objective, but doesn't actually check E.2.2(14)! A test case for E.2.2(14) should be added.
!appendix

!section E.2.2(14)
!subject Ambiguous "only"; please clarify intent
!reference RM95-E.2.2(14);6.0
!from Norman Cohen
!reference as: 95-5134.a Norman H. Cohen 95-5-4>>
!discussion

For a remote access-to-classwide type, "The primitive subprograms of the
corresponding specific limited private type shall only have access
parameters if they are controlling formal parameters...."

This can be interpreted two ways:

1. Every controlling parameter of a primitive subprogram must be an
   access parameter.

2. Every access parameter of a primitive subprogram must be a controlling
   parameter.

Which do you mean?

****************************************************************

!section E.2.2(14)
!subject Ambiguous "only"; please clarify intent
!reference RM95-E.2.2(14);6.0
!reference 95-5134.a Norman Cohen 95-05-04
!from Tucker Taft  95-05-05
!reference as: 95-5136.a Tucker Taft 95-5-5>>
!discussion

> For a remote access-to-classwide type, "The primitive subprograms of the
> corresponding specific limited private type shall only have access
> parameters if they are controlling formal parameters...."
>
> This can be interpreted two ways:
>
> 1. Every controlling parameter of a primitive subprogram must be an
>    access parameter.
>
> 2. Every access parameter of a primitive subprogram must be a controlling
>    parameter.
>
> Which do you mean?

Number 2.  You generally aren't allowed to pass non-remote access
values between partitions.  However, when the access value is a
controlling access parameter for a remote access-to-class-wide type,
the caller passes in a remote access type, but by the time you
get to the "real" body, it is guaranteed that the access parameter
designates a local object.

****************************************************************

!section E.2.2(14)
!subject Ambiguous "only"; please clarify intent
!reference RM95-E.2.2(14);6.0
!from Offer Pazy 95-5-6
!reference 95-5134.a Norman H. Cohen 95-5-4
!reference as: 95-5140.a Offer Pazy 95-5-6>>
!discussion

> For a remote access-to-classwide type, "The primitive subprograms of the
> corresponding specific limited private type shall only have access
> parameters if they are controlling formal parameters...."
>
> This can be interpreted two ways:
>
> 1. Every controlling parameter of a primitive subprogram must be an
>    access parameter.
>
> 2. Every access parameter of a primitive subprogram must be a controlling
>    parameter.
>
> Which do you mean?

I believe that #2 is the answer. I am not sure how you can deduce the
former, but I trust that you can ...

****************************************************************

From the editor, July 7, 2000

At the Potsdam ARG meeting (the 11th ARG meeting), it was decided that this
AI should not appear in the Records of Response, as no one could find a way to
get the first interpretation from the wording. Thus, the wording is not
ambiguous, and the AI is vacuous. The !response section was updated to reflect
this.

****************************************************************


Questions? Ask the ACAA Technical Agent