From: Wes Groleau <wesgroleau@despammed.com>
Subject: Re: System.Address'Size - not a static integer expression?
Date: Wed, 10 Apr 2002 12:41:27 -0500
Date: 2002-04-10T12:41:27-05:00 [thread overview]
Message-ID: <3CB47947.466E0E81@despammed.com> (raw)
In-Reply-To: 5ee5b646.0204091754.5dcfd16d@posting.google.com
> > I found something in the RM that basically insisted that
> > 'Size is non-static.
>
> Well since you are confused over what static means, I doubt
> this memory is relevant. Once again, while it is true that
Static to me (before Ada 95) meant a value that you can determine
at compile time. The RM apparently has a different meaning when
it disallowed
for xxx'size use .... (A)
because 'size is not static
The screwed up C definition of static is off in some other planet.
What I was saying was that I tried to use xxx'size somewhere
that only static values were allowed and it was rejected by both
GNAT and Apex. At the time, I considered the expression I used
static because it COULD BE determined at compile time. But
I DID find something in the RM that said 'Size cannot be used
where a static expression is required.
> all static expressions have known-at-compile time values,
> the converse is obviously false (known at compile time values are not
> always static).
>
> Why? Because it is obviously recursively undecidable whether a given
> expression has a known at compile time
> value (finding all such expressions requires being able
> to prove all possible theorems which of course is not
> possible). So the language had two choices:
>
> o Try to pin down a subset of known at compile time
> expressions and require all compilers to agree on
> this subset in cases where staticness of expressions
> has semantic significance (e.g. case tags).
My point exactly: 'Size is not in this subset, no matter
how easy it may be to determine the value.
> So most certainly GNAT and Apex (and any other correct Ada compiler)
> agree on what Size references are static and what
> are not. If the prefix is a static scalar subtype, the size
> reference is static, otherwise it is non-static. End of
So you are saying that it IS in this subset
if the prefix is a static scalar subtype?
First, this is circular, defining static (partially)
in terms that use the word static.
Second, I can no longer remember whether it was a static
scalar subtype, but I do remember (1) the rejection surprised
me after years of Ada experience and (2) the reference _I_
found for (A) above did not have the "static scalar subtype"
exception in it. It just plain said that 'Size is not static.
--
Wes Groleau
http://freepages.rootsweb.com/~wgroleau
next prev parent reply other threads:[~2002-04-10 17:41 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-03-06 17:57 System.Address'Size - not a static integer expression? Vadim Godunko
2002-03-07 1:21 ` Robert Dewar
2002-03-07 13:56 ` Wes Groleau
2002-03-08 18:34 ` FGD
2002-03-08 19:07 ` Larry Kilgallen
2002-03-08 19:43 ` Wes Groleau
2002-04-08 4:57 ` Robert Dewar
2002-04-08 15:17 ` Wes Groleau
2002-04-10 1:54 ` Robert Dewar
2002-04-10 17:41 ` Wes Groleau [this message]
2002-04-10 18:29 ` Darren New
2002-04-12 20:20 ` Robert Dewar
2002-04-12 21:10 ` Wes Groleau
2002-04-14 19:59 ` Robert Dewar
2002-04-14 20:01 ` Robert Dewar
2002-04-15 15:13 ` Wes Groleau
2002-04-15 19:57 ` Randy Brukardt
2002-04-17 3:22 ` Robert Dewar
2002-04-17 3:11 ` Robert Dewar
2002-04-17 18:27 ` Wes Groleau
2002-04-19 14:06 ` Robert Dewar
2002-04-19 15:05 ` Wes Groleau
2002-04-20 2:26 ` Robert Dewar
2002-04-20 5:11 ` Robert Dewar
2002-04-20 16:50 ` Darren New
2002-04-22 9:20 ` Ole-Hjalmar Kristensen
2002-04-22 13:24 ` Robert Dewar
2002-04-22 13:59 ` Ole-Hjalmar Kristensen
2002-04-22 13:34 ` Robert Dewar
2002-04-22 14:02 ` Ole-Hjalmar Kristensen
2002-04-22 16:11 ` Jean-Pierre Rosen
2002-04-22 23:57 ` Robert Dewar
2002-04-08 0:43 ` Nick Roberts
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox