comp.lang.ada
 help / color / mirror / Atom feed
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



  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