Version 1.1 of ais/ai-00093.txt

Unformatted version of ais/ai-00093.txt version 1.1
Other versions for file ais/ai-00093.txt

!standard RM-4.1.4 (12)          95-11-01 AI95-00093/02
!class binding interpretation 95-09-29
!status WG9 approved 95-06-14
!status ARG approved 10-0-0 95-11-01
!status received 95-09-29
!subject Float_Type'Small
!summary 95-09-29
An implementation may support an implementation-defined attribute Small for floating point types.
!question 95-09-29
Paragraph 4.1.4(12) says:
An implementation may provide implementation-defined attributes; the identifier for an implementation-defined attribute shall differ from those of the language-defined attributes.
AARM J(1) lists several Ada 83 floating-point attributes that have been removed from the language, including 'Small; J(1.h), however, says that "Implementations can continue to support the above features for upward compatibility".
Since 'Small is a language-defined attribute for fixed-point types, 4.1.4(12) implies that an implementation must not provide a 'Small attribute for floating-point types. This clearly contradicts the intent of J(1).
May an implementation support the 'Small attribute for floating-point types? (Yes.)
!recommendation 95-09-29
(See summary.)
!wording 95-09-29
!discussion 95-09-29
The intent is that implementations be allowed to support all Ada 83 attributes, for upward compatibility. Thus, it is important that they be allowed to support the Small attribute on floating point types. Therefore, this AI makes a specific exception to the rule in 4.1.4(12).
!appendix

!section RM-4.1.4(12)
!subject Float_Type'Small
!reference RM95-4.1.4(12)
!reference AARM95-J(1)
!from Keith Thompson 95-09-11
!reference as: 95-5283.a Keith Thompson 95-9-11>>
!discussion
 
Paragraph 4.1.4(12) says
    An implementation may provide implementation-defined attributes; the
    identifier for an implementation-defined attribute shall differ from
    those of the language-defined attributes.

AARM J(1) lists several Ada 83 floating-point attributes that have been
removed from the language, including 'Small; J(1.h), however, says that
"Implementations can continue to support the above features for upward
compatibility".

Since 'Small is a language-defined attribute for fixed-point types,
4.1.4(12) implies that an implementation may not provide a 'Small
attribute for floating-point types.  This clearly contradicts the intent
of J(1).

May an implementation support the 'Small attribute for floating-point
types?

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

Questions? Ask the ACAA Technical Agent