comp.lang.ada
 help / color / mirror / Atom feed
From: Mark H Johnson <mark_h_johnson@raytheon.com>
Subject: Re: Record representation
Date: Wed, 09 Jun 2004 10:30:06 -0500
Date: 2004-06-09T10:30:06-05:00	[thread overview]
Message-ID: <c2Gxc.1$oX2.0@dfw-service2.ext.ray.com> (raw)
In-Reply-To: <40c6d3d1$1_1@baen1673807.greenlnk.net>

Martin Dowie wrote:
> Is there anything that could be done (quickly ;-) by the ARG for Ada200Y to
> do something about this common pain in the *ss?
> 
> package Record_Rep is
> 
>    type A is record
>       I : Integer;
>    end record;
>    for A'Size use Integer'Size;
> 
>    type Index is new Integer range 1 .. 10;
> 
>    type AA is array (Index) of A;
>    for AA'Size use A'Size * Index'Last;  -- Not allowed!!!!!
> 
> end Record_Rep;
> 
> Surely the language could be made smart enough to support this? This can be
> a real maintenance nightmare to change.
> 

Let's generalize the situation slightly. What do you suggest be done if 
you change the data type from an Integer to a Natural? Using GNAT on 
x86's, Natural'Size is 31 (not 32) so that would imply setting AA'Size 
to 310 (and not 320) w/ a real pain in the *ss due to packing / 
unpacking of the data.

I remember a private email exchange with Robert Dewar about something 
similar to this a few years ago. Let me see if I can dig up the 
suggestions he had to improve the portability of your code.

   --Mark




  parent reply	other threads:[~2004-06-09 15:30 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-06-09  9:14 Record representation Martin Dowie
2004-06-09 11:38 ` Martin Krischik
2004-06-09 14:11   ` Martin Dowie
2004-06-09 15:30 ` Mark H Johnson [this message]
2004-06-09 16:58   ` Martin Dowie
2004-06-09 17:44     ` tmoran
2004-06-09 20:08     ` Mark H Johnson
2004-06-09 21:12       ` Martin Dowie
2004-06-09 21:14       ` Martin Dowie
2004-06-10  0:38 ` Stephen Leake
2004-06-10  6:13   ` Randy Brukardt
2004-06-10  6:10 ` Randy Brukardt
2004-06-15  7:37   ` Martin Dowie
replies disabled

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