CVS difference for ais/ai-00095.txt
--- ais/ai-00095.txt 1999/09/13 21:44:03 1.4
+++ ais/ai-00095.txt 1999/10/08 23:41:05 1.5
@@ -1,4 +1,4 @@
-!standard RM-3.5.4 (07) 99-08-31 AI95-00095/03
+!standard RM-3.5.4 (07) 99-10-06 AI95-00095/04
!standard RM-3.5.4 (27)
!class ramification 95-09-29
!status Corrigendum 2000 99-05-25
@@ -14,7 +14,7 @@
!summary
Implementation Permission: On a one's complement machine, the
-implementation may support non-binary modulii above
+implementation may support non-binary moduli above
System.Max_Nonbinary_Modulus.
!question
@@ -52,10 +52,10 @@
modulus, rather than one less than the modulus. It is implementation defined
for which powers of 2, if any, this permission is exercised.
@dinst
-For a one's complement machine, modulus values which are not powers of
-2 greater than System.Max_Nonbinary_Modulus may be allowed. It is
-implementation defined which values greater than System.Max_Nonbinary_Modulus,
-if any, are allowed.
+For a one's complement machine, implementations may support non-binary modulus
+values greater than System.Max_Nonbinary_Modulus. It is implementation defined
+which specific values greater than System.Max_Nonbinary_Modulus, if any, are
+supported.
!ACATS test
@@ -86,7 +86,7 @@
burden.
1's complement compilers should be able to support some (usually one)
-additional non-binary modulii above System.Max_Nonbinary_Modulus, in order
+additional non-binary moduli above System.Max_Nonbinary_Modulus, in order
to avoid the problem.
Some argument based on 1.1.3(6) (the old AI-325) probably can be used here,
@@ -145,7 +145,7 @@
be, we could write expensive versions of these operations which would work
properly.
-We would like to match the actual C compiler by supporting modulii up to
+We would like to match the actual C compiler by supporting moduli up to
2**35-1 (Integer'Last) and 2**36-1. (2**35 does not pose any particular
problem, and we probably will support that, too.) Of course, this does not
fit into the model given in 3.5.4.
@@ -174,7 +174,7 @@
> ...
> 1's complement compilers should be able to support some (usually one)
-> additional non-binary modulii above System.Max_Nonbinary_Modulus, in order
+> additional non-binary moduli above System.Max_Nonbinary_Modulus, in order
> to avoid the problem.
Agreed. The implementation permission for 1's complement machines
@@ -276,7 +276,7 @@
>> ...
>> 1's complement compilers should be able to support some (usually one)
->> additional non-binary modulii above System.Max_Nonbinary_Modulus, in order
+>> additional non-binary moduli above System.Max_Nonbinary_Modulus, in order
>> to avoid the problem.
>
>Agreed. The implementation permission for 1's complement machines
@@ -383,7 +383,7 @@
That means that the direct hardware OR, XOR, and NOT operations cannot be used,
since they could produce the all-ones value. That is OK, as that is in fact
what would naturally happen with such a modulus (and they do not have the
-overflow problems that add and subtract have with large modulii). We would
+overflow problems that add and subtract have with large moduli). We would
only have to special case Add and Subtract in generics.
I've ignored multiply, for the simple reason that no one yet has been able
@@ -458,7 +458,7 @@
Ada 95 compiler for the 2200 platform.)
Most of the interesting cases appear for the full word modular type.
-Types with smaller modulii are less interesting, so we will concentrate
+Types with smaller moduli are less interesting, so we will concentrate
on the full word type. (Note that we assume that the full word type is
intended to be supported by the standard, although its strict wording
would practically prevent that on a one's complement machine. It would
@@ -474,11 +474,11 @@
must be chosen.
Now, once the modulus of 2**36-1 is chosen, the standard says that
-Max_NonBinary_Modulus has to have the value 2**36-1. Of course, modulii
+Max_NonBinary_Modulus has to have the value 2**36-1. Of course, moduli
like 2**36-2 would then have to be supported, and this would be
difficult. The reason that Max_Binary_Modulus and Max_NonBinary_Modulus
are different is to avoid the implementation burden of large nonbinary
-modulii on the (2's complement) compiler implementor. It would be
+moduli on the (2's complement) compiler implementor. It would be
unfair, at least, to require that burden on implementors whose hardware
happens to be 1's complement.
Questions? Ask the ACAA Technical Agent