comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Generic package parameters not externally visible : what's the rational ?
Date: Wed, 28 Oct 2009 10:09:41 +0100
Date: 2009-10-28T10:09:41+01:00	[thread overview]
Message-ID: <10eygvuzeit9g.xwy2wanxoxgf$.dlg@40tude.net> (raw)
In-Reply-To: hc7nfq$6o7$1@munin.nbi.dk

On Tue, 27 Oct 2009 16:08:09 -0500, Randy Brukardt wrote:

> "Robert A Duff" <bobduff@shell01.TheWorld.com> wrote in message 
> news:wcciqe26w5q.fsf@shell01.TheWorld.com...
>> "Hibou57 (Yannick Duch�ne)" <yannick_duchene@yahoo.fr> writes:
>>
>>> Still the time for my two cents of the day : parameters of generic
>>> packages are not externally visible. I use to read in a few places on
>>> the web, this is so to preserve type privacy, but without any examples
>>> which could illustrate this view.
>>>
>>> What's the rational behind this ?
>>
>> I don't think there is any rationale.  It makes perfect sense
>> for them to be visible, but they're not.  I guess it was just
>> a minor mistake in Ada 83, and it's never been thought important
>> enough to fix in later versions.  I don't see any way in
>> which this rule "preserves type privacy".
> 
> I'm not sure that it "makes perfect sense" for them to be visible: it would 
> surely increase the chance of name collisions outside of the package.

Sorry, but that is a "generic" property of anything declared in a generic
package. Two instances of the same generic packages always collide when
"use"-ed.

> Indeed, I find that it makes "perfect sense" for them not the visible: they 
> are not part of the package that gets instantiated.

I argue that they are. Each formal parameter can be thought as instantiated
(from the actual) in the package, rather than passed from outside.

> That's clear from the 
> syntax (they're outside the package). You're going to say that discriminants 
> are outside of the type, too, but they're also visible. I can't argue with 
> that beyond saying that that placement of discriminants is just awful; I 
> place them in the wrong place and continually forget to include them in 
> aggregates because they're well away from the other components.

That depends on the mental model of the discriminant. If the discriminant
is a type constraint, then you are right. But in Ada this concept, if ever
existed, has been eroded. Presently discriminant is merely an immutable
component. I am also in favor the "constraint" model, and yes, in this
model it would be reasonable to make discriminants invisible, e.g. when
they are used for construction and then dropped. But that is not the Ada
model now.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  parent reply	other threads:[~2009-10-28  9:09 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-26  8:58 Generic package parameters not externally visible : what's the rational ? Hibou57 (Yannick Duchêne)
2009-10-26 11:05 ` Ludovic Brenta
2009-10-26 15:02   ` Robert A Duff
2009-10-27  1:06   ` Hibou57 (Yannick Duchêne)
2009-10-26 14:56 ` Robert A Duff
2009-10-27  3:03   ` Hibou57 (Yannick Duchêne)
2009-10-27 21:08   ` Randy Brukardt
2009-10-27 21:36     ` Jeffrey R. Carter
2009-10-27 22:03       ` Hibou57 (Yannick Duchêne)
2009-10-27 22:19         ` Jeffrey R. Carter
2009-10-28 19:07         ` Randy Brukardt
2009-10-29 12:18           ` Hibou57 (Yannick Duchêne)
2009-10-29 22:56             ` Randy Brukardt
2009-10-30  0:10               ` Hibou57 (Yannick Duchêne)
2009-10-27 22:04       ` Hibou57 (Yannick Duchêne)
2009-10-27 23:37       ` Robert A Duff
2009-10-27 23:41         ` Jeffrey R. Carter
2009-10-27 23:34     ` Robert A Duff
2009-10-28  2:19       ` Hibou57 (Yannick Duchêne)
2009-10-28 19:12         ` Randy Brukardt
2009-10-29  7:34           ` Stephen Leake
2009-10-29 12:21           ` Hibou57 (Yannick Duchêne)
2009-10-29 13:10             ` AdaMagica
2009-10-29 15:11               ` Georg Bauhaus
2009-10-29 19:28                 ` Jeffrey R. Carter
2009-10-29 20:27                   ` Georg Bauhaus
2009-10-30 10:30               ` Stephen Leake
2009-10-30 17:53             ` Ludovic Brenta
2009-10-31  2:10               ` Hibou57 (Yannick Duchêne)
2009-10-30  5:19           ` Hibou57 (Yannick Duchêne)
2009-10-28  9:09     ` Dmitry A. Kazakov [this message]
2009-10-28 19:19       ` Randy Brukardt
2009-10-29  8:36         ` Dmitry A. Kazakov
2009-10-29 23:03           ` Randy Brukardt
2009-10-30  8:51             ` Dmitry A. Kazakov
2009-10-30 10:25           ` Stephen Leake
2009-10-30 19:32             ` Dmitry A. Kazakov
2009-10-31  2:06               ` Hibou57 (Yannick Duchêne)
2009-10-31  9:14                 ` Dmitry A. Kazakov
2009-11-03  8:25                   ` Hibou57 (Yannick Duchêne)
2009-11-03  9:59                     ` Dmitry A. Kazakov
2009-11-05 10:38                       ` Hibou57 (Yannick Duchêne)
2009-11-05 11:00                         ` Dmitry A. Kazakov
2009-11-05 12:16                           ` Hibou57 (Yannick Duchêne)
2009-11-05 14:09                             ` Dmitry A. Kazakov
2009-11-06 12:19                               ` Hibou57 (Yannick Duchêne)
2009-11-06 13:27                                 ` Dmitry A. Kazakov
2009-10-31  2:08               ` Hibou57 (Yannick Duchêne)
2009-10-31 12:44               ` Stephen Leake
2009-11-01 11:37                 ` Dmitry A. Kazakov
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox