Version 1.1 of ai05s/ai05-0263-1.txt

Unformatted version of ai05s/ai05-0263-1.txt version 1.1
Other versions for file ai05s/ai05-0263-1.txt

!standard H.4(24)          11-07-28 AI05-0263-1/01
!class binding interpretation 11-06-26
!status Amendment 2012 11-07-28
!status ARG Approved 10-1-0 11-06-26
!status work item 11-06-26
!status received 10-10-02
!priority Low
!difficulty Easy
!qualifier Error
!subject No_Dependence should sometimes be excluded from applying to the run-time
!summary
The use of No_Dependence equivalent to No_Unchecked_Deallocation and No_Unchecked_Conversion also does not apply to the run-time system.
!question
No_Unchecked_Deallocation and No_Unchecked_Conversion are obsolescent (See J.13). H.4(24) mentions these restrictions; should they still be mentioned here? Should the Restriction that replaced these, No_Dependence, be mentioned here as well, or instead?
!wording
Modify H.4(24): If an implementation supports pragma Restrictions for a particular argument, then except for the restrictions No_Unchecked_Deallocation, No_Unchecked_Conversion, No_Access_Subprograms, [and] No_Unchecked_Access, {and the equivalent use of No_Dependence,} the associated restriction applies to the run-time system.
!discussion
We need to have the same rule for the use of No_Dependence (Unchecked_Deallocation) and No_Dependence (Unchecked_Conversion), as otherwise the obvious intent that these be ignored in the run-time system would not be followed.
We won't answer whether eliminating an arbitrary package from the run-time system needs to be supported; it is clear that examples in both directions exist: it makes sense for No_Dependence (Ada.Execution_Time.Timers) (for one example) to be omitted from the run-time system, but it is hard to imagine how No_Dependence (Ada.Streams) or especially No_Dependence (System) could work.
!corrigendum H.4(24)
Replace the paragraph:
If an implementation supports pragma Restrictions for a particular argument, then except for the restrictions No_Unchecked_Deallocation, No_Unchecked_Conversion, No_Access_Subprograms, and No_Unchecked_Access, the associated restriction applies to the run-time system.
by:
If an implementation supports pragma Restrictions for a particular argument, then except for the restrictions No_Unchecked_Deallocation, No_Unchecked_Conversion, No_Access_Subprograms, No_Unchecked_Access, and the equivalent use of No_Dependence, the associated restriction applies to the run-time system.
!ACATS Test
None needed.
!ASIS
No change needed.
!appendix

From: Brad Moore
Sent: Saturday, October 2, 2010  2:54 PM

[Just the relevant part of the message - Editor.]

H.4(24) No_Unchecked_Deallocation, No_Unchecked_Conversion, are obsolescent (See J.13)
Should they still be mentioned here? Should the Restriction that replaced these,
No_Dependence, be mentioned here as well, or instead? I would think it would be difficult
for a compiler to support the No_Dependence for arbitrary packages to be eliminated
from the run time.

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


Questions? Ask the ACAA Technical Agent