Version 1.2 of ai12s/ai12-0200-1.txt

Unformatted version of ai12s/ai12-0200-1.txt version 1.2
Other versions for file ai12s/ai12-0200-1.txt

!standard AA(3/4)          16-11-09 AI12-0200-1/02
!standard 13.11.4(21/3)
!standard 13.11.4(31/3)
!class binding interpretation 16-08-11
!status Amendment 1-2012 16-11-09
!status ARG Approved 9-0-1 16-10-08
!status work item 16-08-11
!status received 16-06-12
!priority Low
!difficulty Easy
!qualifier Clarification
!subject Improve reentrancy requirements for language-defined subprograms
!summary
Clarify that the reentrancy requirements for language-defined subprograms apply to any two language-defined subprograms with overlapping parameters.
!question
The wording in A(3/4) doesn't clearly state two (obvious?) requirements:
1) The requirement applies to calls to any pair of such subprograms,
not just to two calls to the same subprogram.
2) The requirement applies in the case where the overlapping occurs
between parameters of two different calls, not between two parameters of one call.
Should this be clarified? (Yes.)
!recommendation
(See Summary.)
!wording
Replace A(3/4) by:
The implementation shall ensure that each language-defined subprogram is reentrant in the sense that concurrent calls on any two (possibly the same) language-defined subprograms perform as specified, so long as all pairs of objects (one from each call) that either are denoted by parameters that could be passed by reference, or designated by parameters of an access type are nonoverlapping.
!discussion
Point (1) was in fact one of the purposes of AI12-0052-1, changing the wording to "any language-defined subprogram" rather than "the same subprogram".
!corrigendum A(3/4)
Replace the paragraph:
The implementation shall ensure that each language-defined subprogram is reentrant in the sense that concurrent calls on any language-defined subprogram perform as specified, so long as all objects that are denoted by parameters that could be passed by reference or designated by parameters of an access type are nonoverlapping.
by:
The implementation shall ensure that each language-defined subprogram is reentrant in the sense that concurrent calls on any two (possibly the same) language-defined subprograms perform as specified, so long as all pairs of objects (one from each call) that either are denoted by parameters that could be passed by reference, or designated by parameters of an access type are nonoverlapping.
!ASIS
No ASIS effect.
!ACATS test
The absence of race conditions isn't directly testable; tests can depend on this property which may indirectly test for correct implementation.
!appendix

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

Questions? Ask the ACAA Technical Agent