From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,57eeeab2c16b68f8 X-Google-Attributes: gid103376,public From: bobduff@world.std.com (Robert A Duff) Subject: Re: the 'small attribute and Ada95 Date: 1996/11/12 Message-ID: #1/1 X-Deja-AN: 196087596 references: <32889629.1C01@emw.ericsson.se> organization: The World Public Access UNIX, Brookline, MA newsgroups: comp.lang.ada Date: 1996-11-12T00:00:00+00:00 List-Id: In article <32889629.1C01@emw.ericsson.se>, Magnus Ericsson wrote: >When I compile this with the Ada 95 compiler (ObjectAda) I get a >message indicating that 'Small only is allowed for Fixed point types >(not for floating point that is used in the original Ada 83 code). Several floating point attributes were removed from the language. The intent was that implementations would support them anyway, as implementation-defined attributes, for upward compatibility. We just didn't want to go to the trouble of defining what they mean in the RM. Unfortunately, there was a glitch -- an implementation is allowed to define new attributes, but is not allowed to extend existing attributes. Since Small is defined for fixed point types, it would normally be illegal for an implementation to allow float'Small. However, AI-93 explicitly gives permission to support Small on floating point types. AI-93 has been approved by the appropriate ISO committees (ARG and WG9). You could ask your vendor to implement all the old attributes, and point out AI-93 to them. Or you could use the corresponding Ada 95 attribute. I think it's Model_Small, but I'm not sure, because I'm not a numerics expert either. As far as I know, there's no simple way to write code that works for both Ada 83 and Ada 95, unless Ada 95 implementers allow the old attributes. See AARM-J(1), A.5.3(67,67.a). - Bob