CVS difference for ais/ai-00077.txt
--- ais/ai-00077.txt 1998/09/30 00:17:13 1.1
+++ ais/ai-00077.txt 1999/07/08 17:28:21 1.2
@@ -1,4 +1,4 @@
-!standard 10.01.04 (03) 96-11-16 AI95-00077/02
+!standard 10.01.04 (03) 99-07-08 AI95-00077/03
!class confirmation 95-07-27
!status WG9 approved 96-12-07
!status ARG Approved 6-1-2 96-10-07
@@ -8,7 +8,7 @@
!subject Separate compilation of generic bodies
The NOTE in 10.1.4(10), which says that separate compilation of generic
bodies is required, is correct. This implies that an implementation
@@ -17,7 +17,7 @@
*not* imply that the compiler must generate code without seeing the
RM 10.1.4(3) states that the mechanisms for replacing compilation units
within an environment are implementation defined. Is it intended
@@ -32,7 +32,7 @@
given one, but nothing apparently prevents removal of compilation units
that don't have such a dependency.
10.1.4(3) is simply saying that the "commands" or "mouse clicks" that
the user gives to perform various actions are implementation defined.
@@ -45,8 +45,16 @@
An implementation may, of course, have additional commands for removing
compilation units, or performing any other actions on the environment.
+A C-Test should be constructed to check that the note 10.1.4(10) is supported.
+In addition, several ACATS tests (CA1012A, CA2009C, CA3011A) can be not
+applicable if the specification and body of a generic unit "must be in the
+same file". This restriction is no longer allowed by Ada 95, and the
+applicability criteria of these tests ought to be repaired.
!subject can implementation choose when to remove units from environment?
@@ -209,14 +217,14 @@
> Let me rephrase my question:
> Is it allowable to reject a program at link time because an
> instantiation was compiled before its body (possibly preventing
> code generation needed for the link)? Or is the linker required
> to automatically do whatever is necessary to generate the code for
> the instantiation (e.g. recompile the instantiation), so that the
> program can be successfully linked?
> If the former, then there doesn't seem much user benefit to
> getting a link-time error rather than a compile-time error
> (as is typically the case in Ada83). If the latter, then
@@ -229,12 +237,12 @@
enough normative words in the RM to force this to be accomplished
in some specific, testable way. Presumably most vendors intend
to provide some kind of automatic recompilation facility, and
-this is basically implying that automatic instantiation should fit
+this is basically implying that automatic instantiation should fit
into that facility, however it is invoked.
I'm not sure what you mean by "undocumented." Practically all of
Chapter 10 was rewritten for 9X. The words in 10.1.4(10,10.a) appeared
-first in about September 1993 (version 4.0). We didn't identify
+first in about September 1993 (version 4.0). We didn't identify
individual changes in 10.1.4, since the entire model was different.
We did try to highlight various ramifications via AARM annotations.
Questions? Ask the ACAA Technical Agent