comp.lang.ada
 help / color / mirror / Atom feed
From: Keith Thompson <kst-u@mib.org>
Subject: Re: Ada array vs C pointer (call by reference)
Date: 27 Jun 2008 09:11:24 -0700
Date: 2008-06-27T09:11:24-07:00	[thread overview]
Message-ID: <lzzlp6amdv.fsf@stalkings.ghoti.net> (raw)
In-Reply-To: 5df91e99-a972-48f7-b466-3eb05dc0a915@m3g2000hsc.googlegroups.com

Maciej Sobczak <see.my.homepage@gmail.com> writes:
> On 27 Cze, 04:55, Adam Beneschan <a...@irvine.com> wrote:
> > Oh, and you probably want to use Interfaces.C.C_Float instead of the
> > Ada type "Float", to ensure that you're using the same kind of float
> > that the C routine expects.
> 
> Don't get me wrong, but I find it a bit of handwaving.
> 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.

> In reality we have to rely on some external knowledge about the
> implementation - but then, Interfaces.C.XXX have little added value,
> because we might as well have the same knowledge about types from
> Standard.
> 
> Is there any implementation where Interfaces.C.int has different
> properties than Integer?

I don't know, and I suggest that you don't know either.

To answer that question, you'd have to look at every existing Ada
implementation, and at every existing C implementation that targets
the same systems.

To answer it usefully, you'd also have to look at every *future*
implementation on which your code might run.

There is no fundamental reason to assume that Ada's Integer and C's
int have the same properties.  That's exactly why Interfaces.C exists.

Look at it this way.  You have the choice of using
Interfaces.C.C_Float, which (assuming the Ada implementation gets it
right), is guaranteed to match C's float, or of using Float, which has
no such guarantee (but saves a little typing).  Why would you even
consider using Float?

-- 
Keith Thompson (The_Other_Keith) kst-u@mib.org  <http://www.ghoti.net/~kst>
Nokia
"We must do something.  This is something.  Therefore, we must do this."
    -- Antony Jay and Jonathan Lynn, "Yes Minister"



  parent reply	other threads:[~2008-06-27 16:11 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 [this message]
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
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