comp.lang.ada
 help / color / mirror / Atom feed
From: "Mark Lundquist" <mlundquist2@attbi.com>
Subject: Re: Dimensionality Checking (Ada 20XX)
Date: Tue, 11 Dec 2001 17:03:41 GMT
Date: 2001-12-11T17:03:41+00:00	[thread overview]
Message-ID: <N%qR7.7948$7y.69084@rwcrnsc54> (raw)
In-Reply-To: mailman.1008076322.18644.comp.lang.ada@ada.eu.org


"Mike Brenner" <mikeb@mitre.org> wrote in message
news:mailman.1008076322.18644.comp.lang.ada@ada.eu.org...
> Mark Lundquist said:
> > But the compiler only has to look at the generic *spec* to determine
this.
> > What you *never* see today, and what we'd really like to avoid in any
> > language revision, is this: you make a change to the generic *body*, the
> > change is legal (the generic body compiles), but suddenly one or more
> > *instantiations* become illegal as a result.  That is the problem I'm
> > talking about with units.
>
> Is this the reason why non-generic packages have been forbidden as generic
parameters?

I don't think that's so much "forbidden" as it is "nonsensical" :-)

What exactly would such a construct look like, and what exactly would it
mean?

>[...]
> In particular, permitting non-generic package parameters would give a way
to switch implementations without rewriting the code. In particular, a
configuration manager could simply swap the spec and body of the package
being used as a non-generic parameter to a generic, and that would change
the device driver from being Linux-compatible to being COM-compatible.

Well, why can't you just "swap the spec and body" of a package today?  Why
do you need an enhancement to generics for this?

Maybe I don't understand the problem you're trying to solve... can you make
your example more specific, e.g. by including a source code example for the
feature you're envisioning?

Are you aware of the generic "signature" idiom?  Also, library-level
renames?  Perhaps those devices would help with what you're after...?

It could be that your Linux/COM example is not particulary illustrative,
since mulitplatform development is typically conducted by maintaining
multiple variants, not by "switching" something back and forth...

>
> Now, a line of code has to be changed in order to swap devices supported,
so it requires a PROGRAMMER rather than a CONFIGURATION MANAGER to make that
kind of change to a large Ada system.

Since I haven't seen how your feature would work, I can't see that this is
true :-)... but I can see how a configuration manager might select a
configuration with a different variant of a package spec and body, then
rebuild to create a different system.  This is in today's Ada, and it
wouldn't take a programmer to do that...

> Also, of course, making packages second class objects like that would be
the penultimate step towards eventually making package first-class objects.
>

Have you been sharing LSD with Nick Roberts?  Please, stop before it's too
late!  Also, you should know that Nick isn't even from our planet, he's
really a Tenet from the planet Contar.  He's the Distar of Contar, actually.
You should never, ever share mind-altering substances with a Tenet, it is
just too risky.

Now then... please study the relationships between the concepts of type,
value, and object in Ada.  That is the penultimate step towards eventually
understanding why your suggestion is bonkers :-).

http://www.ada-auth.org/~acats/arm-html/RM-3-2.html
http://www.ada-auth.org/~acats/arm-html/RM-3-3.html
http://www.na.org

Good luck... with everything :-)
-- mark






  parent reply	other threads:[~2001-12-11 17:03 UTC|newest]

Thread overview: 79+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-12-11 13:11 Dimensionality Checking (Ada 20XX) Mike Brenner
2001-12-11 14:46 ` non-generic generic parameters Wes Groleau
2001-12-11 17:03 ` Mark Lundquist [this message]
  -- strict thread matches above, loose matches on Subject: below --
2001-12-07  0:09 Dimensionality Checking (Ada 20XX) Snodgrass, Britt (NM75)
2001-12-07 16:15 ` Ian
2001-12-09 17:58   ` Nick Roberts
2001-12-09 22:58     ` Nick Roberts
2001-12-10  0:17     ` Mark Lundquist
2001-12-10  1:51       ` James Rogers
2001-12-10  3:33         ` Nick Roberts
2001-12-10 19:09           ` Nick Roberts
2001-12-11  8:20             ` Thomas Koenig
2001-12-11 15:37               ` Nick Roberts
2001-12-11 20:18                 ` Thomas Koenig
2001-12-12  0:58                   ` Mark Lundquist
2001-12-12  8:19                     ` Wilhelm Spickermann
2001-12-12 14:21                     ` Stephen Leake
2001-12-12 19:10                       ` Nick Roberts
2001-12-13 19:04                         ` Stephen Leake
2001-12-13 22:56                           ` Nick Roberts
2001-12-14  0:11                             ` Nick Roberts
2001-12-14 22:14                       ` Mark Lundquist
2001-12-15  1:30                         ` Nick Roberts
2001-12-10 20:22         ` Thomas Koenig
2001-12-10 17:21       ` Wes Groleau
2001-12-10 19:51         ` Mark Lundquist
2001-12-10 19:56           ` Wes Groleau
2001-12-10 20:37             ` Mark Lundquist
2001-12-10 18:56       ` Nick Roberts
2001-12-11 15:05         ` Wes Groleau
2001-12-11 16:39         ` Stephen Leake
2001-12-11 19:05           ` Nick Roberts
2001-12-11 22:50             ` Mark Johnson
2001-12-12  1:59               ` Nick Roberts
2001-12-11 23:01             ` Stephen Leake
2001-12-12  2:21               ` Nick Roberts
2001-12-12 14:16                 ` Stephen Leake
2001-12-13 19:52                   ` Nick Roberts
2001-12-13 22:22                     ` Nick Roberts
2001-12-14  6:40                       ` Robert C. Leif, Ph.D.
2001-12-14 17:30                       ` Stephen Leake
2001-12-14 17:38                     ` Stephen Leake
2001-12-11 22:45           ` Mark Lundquist
2001-12-12  1:42             ` Nick Roberts
2001-12-12 15:17               ` Mark Lundquist
2001-12-12 14:03             ` Stephen Leake
2001-12-12  9:35           ` Dmitry A. Kazakov
2001-12-12 14:26             ` Stephen Leake
2001-12-13 17:02               ` daniele andreatta
2001-12-13 19:06                 ` Stephen Leake
2001-12-14 10:16                 ` Dmitry A. Kazakov
2001-12-14 22:01                   ` Nick Roberts
2001-12-17 11:10                     ` Dmitry A. Kazakov
2001-12-17 12:16                       ` Thomas Koenig
2001-12-17 14:30                         ` Dmitry A. Kazakov
2001-12-27 17:18                         ` Steven Deller
2001-12-15  7:07                   ` Steven Deller
2001-12-17 12:31                     ` Dmitry A. Kazakov
2001-12-17 13:46                       ` Thomas Koenig
2001-12-17 15:00                         ` Dmitry A. Kazakov
2001-12-17 16:38                         ` Thomas Koenig
2001-12-17 21:07                       ` Britt Snodgrass
2001-12-20 13:44                         ` Dmitry A. Kazakov
2001-12-13 19:33         ` Mark Lundquist
2001-12-13 22:15           ` Nick Roberts
2001-12-14 20:20             ` Mark Lundquist
2001-12-10 23:31       ` Mark Lundquist
2001-12-10 13:57     ` Ian
2001-12-10 17:24       ` Wes Groleau
2001-12-10 20:38       ` Britt Snodgrass
2001-12-02 16:01 Another Idea for Ada 20XX James Rogers
2001-12-03 14:56 ` Mark Lundquist
2001-12-03 15:12   ` Lutz Donnerhacke
2001-12-03 21:13     ` Dimensionality Checking (Ada 20XX) Nick Roberts
2001-12-04 14:00       ` Dmitry A. Kazakov
2001-12-06 19:52         ` Britt Snodgrass
2001-12-06 20:55           ` Mark Lundquist
2001-12-06 22:38           ` Wes Groleau
2001-12-06 23:12             ` Mark Lundquist
2001-12-07 14:36               ` Wes Groleau
2001-12-07  9:37           ` Dmitry A. Kazakov
2001-12-07 22:51           ` Mark Lundquist
replies disabled

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