CVS difference for ais/ai-00359.txt

Differences between 1.3 and version 1.4
Log of other versions for file ais/ai-00359.txt

--- ais/ai-00359.txt	2003/10/29 22:54:14	1.3
+++ ais/ai-00359.txt	2004/04/06 19:57:16	1.4
@@ -657,70 +657,6 @@
-From: Randy Brukardt
-Sent: Tuesday, September 30, 2003   4:05 PM
-Tucker wrote:
-> This seems to be exactly the kind of discussion that
-> is best done in person at an ARG meeting.  I hope we
-> will get some time on the agenda for this (but I
-> recognize we should put a time limit on the discussion).
-Why? It's impossible in a very limited time to make technical arguments
-coherently. They make much more sense when written. The usual reason that
-face-to-face is preferred is to save time (writing responses takes a long
-time). And, of course, we get to hear from more people.
-But this is a black and white issue: either you believe in the corruption of
-the Ada model that is espoused here, or you don't. (Which partially depends on
-whether you believe in the program design which is suggested.)
-> I don't see this as a visibility problem.  It is
-> exactly a freezing problem.  The freezing rules for generic
-> instantiation effectively require that the actual type be
-> completely defined, whereas all the other type
-> composition constructs (arrays, records, access-to-T, protected, ...)
-> can use private types or other not-yet-completely-defined
-> types.  This is the problem, and I don't see any good
-> solution other than allowing a generic to take a
-> not-yet-completely-defined type as an actual.
-OK, here's the problem. A generic is not "a type composition construct". It's a
-program unit. It needs to be used like one, not like "a type composition
-> >>What Bob needs is a partial view of a generic to go along with partially
-> >>viewed type.
-> I doubt it. Bob really wants the flexibility afforded to
-> private types now, namely that you can define one in terms
-> of another before either is fully defined.  I don't see how
-> you can do this with a "partial view."  Presumably you are
-> only making incomplete types visible in this partial view.
-> He typically buries the level of indirection inside the
-> generic for something like an extensible sequence, so
-> he wants to be able to put the sequence-of-T as a direct
-> component of T.
-The example in the AI was of a signature package. I can imagine wanting to
-include a signature in the defining package - that potentially is worth
-However, declaring a visible container depending on a private type is a design
-fault (even if it was allowed). Putting a hodge-podge of abstractions, and
-especially a mixture of visibility on those abstractions, into a package spec
-is a no-no. I don't see why we should been over backwards to support bad
-Note that there is no problem with the example you suggest here: just put it
-into the private part where it belongs. If the user needs access to a
-sequence-of-T, let them declare their own. (Better yet, don't use containers
-for simple tasks better programmed directly -- but that's a separate issue.)
 From: Pascal Leroy
 Sent: Tuesday, September 30, 2003   3:25 AM

Questions? Ask the ACAA Technical Agent