comp.lang.ada
 help / color / mirror / Atom feed
From: Adam Beneschan <adam@irvine.com>
Subject: Re: Ada array vs C pointer (call by reference)
Date: Fri, 27 Jun 2008 15:36:32 -0700 (PDT)
Date: 2008-06-27T15:36:32-07:00	[thread overview]
Message-ID: <44b654da-5a19-4230-a5f2-94e35f2b3aeb@d19g2000prm.googlegroups.com> (raw)
In-Reply-To: lzwska8r0k.fsf@stalkings.ghoti.net

On Jun 27, 3:14 pm, Keith Thompson <ks...@mib.org> wrote:
> Maciej Sobczak <see.my.homep...@gmail.com> writes:
> > On 27 Cze, 18:11, Keith Thompson <ks...@mib.org> wrote:
> > > > Ada *cannot* guarantee that Interfaces.C.C_Float is the *right* float,
> > > > because it does not verify how the C code was compiled and there is a
> > > > lot of freedom given to C implementers in this area.
> > > > Same for all other types.
>
> > > No, Ada can't guarantee it directly.  Instead, Ada requires the
> > > implementation to guarantee it.
>
> > And how the implementation can guarantee it without mandating the
> > representation on the C compiler?
>
> It doesn't *mandate* the representation used by the C compiler; the
> author of the Interfaces.C implementation has to *know* the
> representation used by the C compiler.

Which is, of course, impossible without a crystal ball.  Anyway, I
don't see anything in the RM that makes any such requirement.  The
language involved uses a lot of "corresponds to" phrasing, which I
think is deliberately fuzzy enough to avoid *requiring* an Ada
implementation to do something that cannot realistically be done in a
guaranteed manner.  I think the idea is that the implementor is just
expected to define the types in a way that is probably going to make
things work right.  That's about as strong a statement as one can
make.  But, of course, it's still different from the standard Ada
types like Integer and Float; there are no such expectations put on
Ada implementations that the type representations correspond at all to
C types.

                                  -- Adam



  reply	other threads:[~2008-06-27 22:36 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-27  1:39 Ada array vs C pointer (call by reference) Adrian Hoe
2008-06-27  1:42 ` Adrian Hoe
2008-06-27  2:55 ` Adam Beneschan
2008-06-27 13:02   ` Maciej Sobczak
2008-06-27 13:15     ` Adrian Hoe
2008-06-27 14:43     ` Georg Bauhaus
2008-06-27 14:47       ` Georg Bauhaus
2008-06-27 20:35       ` Maciej Sobczak
2008-06-27 22:00         ` Georg Bauhaus
2008-06-27 22:46           ` Keith Thompson
2008-06-27 16:11     ` Keith Thompson
2008-06-27 17:00       ` Robert A Duff
2008-06-27 18:15         ` Keith Thompson
2008-06-28 14:02         ` Stephen Leake
2008-06-28 21:18           ` Keith Thompson
2008-07-03 12:44         ` Rob Norris
2008-06-27 20:44       ` Maciej Sobczak
2008-06-27 22:14         ` Keith Thompson
2008-06-27 22:36           ` Adam Beneschan [this message]
2008-06-28 14:04             ` Stephen Leake
2008-06-28 21:22               ` Keith Thompson
2008-06-30 17:13               ` Adam Beneschan
2008-06-28 17:52             ` Robert A Duff
2008-06-30 17:13               ` Adam Beneschan
2008-06-30 18:55                 ` Robert A Duff
2008-07-01 21:19                 ` Randy Brukardt
2008-07-01 21:19                 ` Randy Brukardt
2008-06-28  0:56         ` Peter C. Chapin
2008-06-28 14:11           ` Maciej Sobczak
2008-06-28 17:49             ` tmoran
2008-06-28 21:46             ` Keith Thompson
2008-06-28 17:44         ` Robert A Duff
2008-07-01 21:10       ` Randy Brukardt
2008-06-27 18:13     ` tmoran
2008-06-27 20:49       ` Maciej Sobczak
2008-06-27  4:10 ` Jeffrey R. Carter
2008-06-27  8:22   ` Adrian Hoe
2008-06-27 15:07     ` Adam Beneschan
2008-06-27 22:54     ` Jeffrey R. Carter
2008-06-28  1:15       ` Adrian Hoe
2008-06-28  2:17         ` Adam Beneschan
2008-07-01 21:31           ` Randy Brukardt
2008-07-01 21:31           ` Randy Brukardt
2008-08-22  4:06           ` Adrian Hoe
2008-06-28  4:59         ` Jeffrey R. Carter
2008-06-29  3:48         ` anon
2008-06-28  1:21 ` anon
replies disabled

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