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: Tue, 3 Nov 2009 10:59:55 +0100
Date: 2009-11-03T10:59:55+01:00	[thread overview]
Message-ID: <1ueb9d0h9nmm3$.11lt1wv42yxvt.dlg@40tude.net> (raw)
In-Reply-To: 19ee7f4e-513a-4caf-9822-4610ff2155b2@m16g2000yqc.googlegroups.com

On Tue, 3 Nov 2009 00:25:24 -0800 (PST), Hibou57 (Yannick Duch�ne) wrote:

> On 31 oct, 10:14, "Dmitry A. Kazakov" <mail...@dmitry-kazakov.de>
> wrote:
>> Note that a generic child package can use formals of its parent. That is
>> the case why your proposal about visibility is so important in my eyes. It
>> is an *obvious* language bug.
> 
> A step to the side, still related to your comment ...
> 
> Although related by derivation, my packages were all along each others
> (I'm experimenting, so I try many things before I choose and know
> why). I've started to rework all package, to use child package when
> possible.
> 
> It seems it saves a lot to do so : shared generic parameters, so less
> generic parameters needed for instantiation.

There is also a competitive way of "generic interface package", so to say.
That is when generic parameters are passed with another generic package
rather than directly. E.g.:

generic
   type T is private;
   with function "+" (Left, Right : T) return T;
package Generic_Interface is
   -- No own declarations, the package promotes its formal parameters
   -- to other packages
end Generic_Interface;

with Generic_Interface;
generic
   with package Parameters is new Generic_Interface (<>);
package P is
   -- Here we can define some further operations on Parameters.T and
   -- other types based on Parameters.T
end P;

> Generic package hierarchy is nicer than I previously supposed

Yes, but beware that there are *three* hierarchies:

1. one of the generic packages
2. of the instances of generic packages (you can instantiate a generic
child of generic A as a non-generic child of non-generic B)
3. of nested packages (you can instantiate within a package)

A creative use of 1-3 may create a perfect mess out of your program...

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



  reply	other threads:[~2009-11-03  9:59 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
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 [this message]
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