!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) @drepl 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. @dby 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. ****************************************************************