From: "Mark Lundquist" <mlundquist2@attbi.com>
Subject: Re: Dimensionality Checking (Ada 20XX)
Date: Mon, 10 Dec 2001 19:51:50 GMT
Date: 2001-12-10T19:51:50+00:00 [thread overview]
Message-ID: <qn8R7.31774$Yy.338147@rwcrnsc53> (raw)
In-Reply-To: 3C14EF19.76C85864@sparc01.ftw.rsc.raytheon.com
"Wes Groleau" <wwgrol@sparc01.ftw.rsc.raytheon.com> wrote in message
news:3C14EF19.76C85864@sparc01.ftw.rsc.raytheon.com...
> Mark Lundquist wrote:
>
> > 2) There's a bad problem with generics. Unit-safe programming totally
> > destroys the generic contract model. For example... given this:
> >
> > generic
> > type T is digits <>;
> > function F (X, Y : T) return T;
> >
> > How can you tell if this is legal?:
>
> I've seen generics that were legal (in the sense of compiling)
> but where the compiler was capable of rejecting particular
> instantiations.
Oh sure, that happens... it's as common as rocks, actually.
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.
Obviously, a solution would be to bring the unit specifications into the
contract, i.e. the generic formal part.
> I've also seen instantiations where the illegality
> was detected at run-time. My memory is fuzzy on the details, though.
Not by a conforming implementation :-). RM 1.1.5(3) prohibits an illegality
from being detected at "run-time", i.e. by the execution (as defined in
10.2) itself. Certain illegalities can be detected after compilation but
before execution (again in the strict sense), but only if they are covered
by "post-compilation rules" (1.1.5(4)). But none of the "instatiation
errors" you usually see are due to post-compilation rules (there really are
not very many post-compilation rules in the standard).
-- mark
next prev parent reply other threads:[~2001-12-10 19:51 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
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
-- strict thread matches above, loose matches on Subject: below --
2001-12-11 13:11 Mike Brenner
2001-12-11 17:03 ` Mark Lundquist
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