From: jeffrey.m.creem@lmco.com (Jeff Creem)
Subject: Re: Ada 95 Numerics questions for the experts
Date: 1997/08/27
Date: 1997-08-27T00:00:00+00:00 [thread overview]
Message-ID: <jeffrey.m.creem-2708971721530001@ljd155.sanders.lockheed.com> (raw)
In-Reply-To: 01bcb2f2$b512f700$928871a5@dhoos
In article <01bcb2f2$b512f700$928871a5@dhoos>, "David C. Hoos, Sr."
<david.c.hoos.sr@ada95.com> wrote:
>Just a couple of points, viz.:
>
> 1. The DEC Ada compiler for VAXen allowed biased rep clauses, as well.
> It's gratifying that gnat chose to implement this also.
>
> 2. The problem with your packed array example, however, is that what you
> are asking the compiler to do is to force array elements which are
>smaller than
> one byte to straddle byte boundaries. No compiler likes to do this,
>as far as I
> know. (Record components straddling byte boundaries, are another
>matter, and they
But VADS, Apex and GNAT all do handle this (essentially)
> are handled quite nicely without any ugly source code).
> Simply using pragma Pack instead of a "for 'size use 24" clause will
>result in your
> 8-element x 3-bit array occupying 32 bits, which is not bad at all.
> Undoubtedly, the extra code required to mask and shift the varying
>amounts as
Nope. The AdaMajic front end (Green hills in this case) rounds the
components to 8 bits even in the precense of a pragma pack
you get a 64 Byte array.
> a function of the array index would substantially exceed the one
>byte of array
> size saved. Besides, even if the compiler did give you your 24-bit
>array, it would
> probably skip to the next 32-bit boundary for the next object in
>memory, anyway.
Actually in the real code that the example came from, the array was an
element of a record with another field. The total length of the record
was then 32 bits.
> Even gnat will not give you a 24-bit array for this case (at least
>the WinNT version 3.09).
>
It gives you a 32 bit array (which Is what I would expect) but does allow
you to stick it in a record with another 8 bits and have a structure which
is a total of 32 bits long.. Again very nice
next prev parent reply other threads:[~1997-08-27 0:00 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <3401C14B.480@gsfc.nasa.gov>
1997-08-25 0:00 ` Ada 95 Numerics questions for the experts Robert Dewar
[not found] ` <dewar.872560585@merv>
[not found] ` <jcreem-2608970711210001@ljd155.sanders.lockheed.com>
[not found] ` <dewar.872630607@merv>
[not found] ` <jeffrey.m.creem-2708970802350001@ljd155.sanders.lockheed.com>
1997-08-27 0:00 ` David C. Hoos, Sr.
1997-08-27 0:00 ` Robert Dewar
1997-08-27 0:00 ` Jeff Creem [this message]
1997-08-28 0:00 ` Robert Dewar
1997-08-28 0:00 ` Jeff Creem
1997-08-29 0:00 ` Tucker Taft
1997-08-30 0:00 ` Robert A Duff
1997-08-31 0:00 ` Tom Moran
1997-09-01 0:00 ` Robert Dewar
1997-09-01 0:00 ` Robert Dewar
1997-09-02 0:00 ` Fergus Henderson
1997-09-02 0:00 ` Robert A Duff
[not found] ` <mheaney-ya023680000209972104030001@news.ni.net>
1997-09-05 0:00 ` Robert Dewar
1997-09-05 0:00 ` Matthew Heaney
1997-09-08 0:00 ` Robert A Duff
1997-09-08 0:00 ` Matthew Heaney
1997-09-09 0:00 ` Robert A Duff
[not found] ` <EFxt94.F5F@world.std.com>
1997-09-06 0:00 ` Robert Dewar
1997-09-08 0:00 ` Robert A Duff
1997-09-08 0:00 ` Matthew Heaney
1997-09-09 0:00 ` Robert A Duff
1997-08-27 0:00 ` Robert Dewar
[not found] ` <jeffrey.m.creem-2808970708260001@ljd155.sanders.lockheed.com>
1997-08-28 0:00 ` Robert Dewar
1997-08-30 0:00 ` Robert A Duff
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox