Version 1.1 of acs/ac-00004.txt

Unformatted version of acs/ac-00004.txt version 1.1
Other versions for file acs/ac-00004.txt

!standard 1.1.3 (00)          00-12-21 AC95-00004/01
!class uninteresting 00-12-21
!status received 00-12-21
!subject When do approved AIs take effect?
!summary
!appendix

From: Pan, Weston
Sent: Thursday, December 21, 2000 12:22 PM

Hi,

When an Ada Issue is approved by the ARG, is a compiler vendor
required to include the AI in order to claim that their compiler
conforms to the Ada95 standard? Basically, given two compilers:

Compiler A: Implements original Ada95 + approved AIs
Compiler B: Only implements original Ada95 language

Which of the two implements _the_  standard Ada95 language?

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

From: Erhard Ploedereder
Sent: Thursday, December 21, 2000 4:56 PM

> When an Ada Issue is approved by the ARG, is a compiler vendor
> required to include the AI in order to claim that their compiler
> conforms to the Ada95 standard?

Legalistically speaking, what defines the standard is the ISO/IEC-8652:1995
document plus any subsequent Technical Corrigenda or Standard Amendments. A
Technical Corrigendum (made up of many AIs approved by ARG and WG9 so far)
is currently in the approval cycle at ISO and expected to become official in
a couple of months. A compiler is required to abide by all these documents,
once approved by ISO, in order to claim conformance.

Until it is in a Technical Corrigendum, an AI approved by ARG or WG9 has,
in principle, no binding force on implementations. Those AIs that are
classified as confirmations, however, can be seen as merely affirming
the official documents (even if their reading might be slightly unclear)
and hence could be regarded as binding. Here, in practice, the ACATS
conformance test suite might well add a test to enforce the AI
interpretation.

For the other AIs, it is up to the vendors to decide whether to comply
immediately or delay compliance until a Corrigendum or Amendment has been
approved. (Of course, if the AI fixes a real bug in the Standard, vendors
are well advised to comply immediately.)

> Basically, given two compilers:
> Compiler A: Implements original Ada95 + approved AIs
> Compiler B: Only implements original Ada95 language

> Which of the two implements _the_  standard Ada95 language?

If I equate "approved" with "officially published in a Technical
Corrigendum", the answer is: only Compiler A.

Otherwise, the answer is: both A and B.

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

From: Randy Brukardt
Sent: Thursday, December 21, 2000 6:14 PM

To expand a bit on what Erhard said:

> Until it is in a Technical Corrigendum, an AI approved by ARG
> or WG9 has, in principle, no binding force on implementations.
> ...
> Here, in practice, the ACATS
> conformance test suite might well add a test to enforce the AI
> interpretation.

The policy of the old AVO with regards to AIs was that any AI approved by
WG9 was testable, and tests often were included in the ACVC for such AIs
(even for Binding Interpretation AIs). The ACAA has continued this policy
for the ACATS, so, as a practical matter, compilers may have to conform to
those AIs well before their official inclusion in the standard. (The ACAA is
currently concentrating on adding ACATS tests for the Corrigendum, tests on
other approved AIs are not a priority.)

AIs are supposed to represent a consensus about an issue, so a vendor not
conforming to one is disregarding that consensus. Ada vendors generally have
tracked AIs closely (for this reason and others), so including tests "early"
has not generated problems.

> > Basically, given two compilers:
> > Compiler A: Implements original Ada95 + approved AIs
> > Compiler B: Only implements original Ada95 language
>
> > Which of the two implements _the_  standard Ada95 language?

While a legalistic argument could be made that B implements "the" standard,
such a compiler probably would not be validated, and would have to contain
various bugs (as there are several places where the RM is just plain wrong).
I don't think I would want to use such a compiler!

In any case, once Technical Corrigendum 1 is approved, compiler B suddenly
would become "wrong", while compiler A will become more "right".

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

Questions? Ask the ACAA Technical Agent