Version 1.2 of 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