comp.lang.ada
 help / color / mirror / Atom feed
From: Craig Carey <research@ijs.co.nz>
Subject: Re: Constant record components
Date: Sat, 15 Jul 2006 00:51:18 +1200
Date: 2006-07-15T00:51:18+12:00	[thread overview]
Message-ID: <i04fb2t4vicb69kl55gsk1surko57g16vc@4ax.com> (raw)
In-Reply-To: dlheb29gkitf7n4j9e831dvcq84nstmm61@4ax.com


Fixing renames.

On Fri, 14 Jul 2006 20:15:53 +1200, Craig Carey wrote:
>On Fri, 7 Jul 2006 16:04:13 -0500, "Randy Brukardt" wrote:
...
>>with them (only directly when the object is created), or you have to have
>>some rule like "they're read-write in the body", which is what is
>>disgusting. And remember that Initialize isn't the only routine of this
...

A mispelling got partly towards converting jersey into jess, a leather
strap sometimes attached to the leg of a hawk or falcon.

At last check, Ada was not really making any progress at interfacing
with C++, eg. in the following R.R would be written.

generic
   Debug : Integer;
package R is
   type R'Pkg_Type;	--  Prevent an extra pass or "class package" etc.
		--  R could be a subtype if tagged for interfacing with C++.

   type R'Pkg_Type (D : DT) is
      record
         A1 :    Integer;
         A2 : in Integer;
      end record;

      --  "in" means that in the view of exterior code the value
      --  can't be written to

   procedure Get_Val (X : out R, Fname : Str);
end package R

X  : R (Dbg => 0) (D => D1);

procedure Main is
begin
   Get_Val (\ X, Fname => "abc.txt");
   X.A2 := 9;  -- Syntax error.

The Ada Reference Manual does not use enough words to say what
"renames" should do. GNAT tries to know the memory addresses
finalized inside of the declaration block.

When often encountering the mistake, it seems that a 

K : Integer := 1;
while K < 10 loop
   declare
      A  : Integer;
      K  : constant;    --  Lock K down as a constant
      E  : Element renames A (K);
            --  Now it is clear E's address is now known
   begin    --  K is constant
      --  Actually making K constant after the begin would be safer




Craig Carey



  reply	other threads:[~2006-07-14 12:51 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <12ad8guf3sg1o0d@corp.supernews.com>
2006-07-01 17:06 ` Constant record components Dmitry A. Kazakov
2006-07-01 17:37   ` ME
2006-07-01 18:33     ` Georg Bauhaus
2006-07-01 21:44       ` Jeffrey R. Carter
2006-07-02  9:18         ` Georg Bauhaus
2006-07-02 16:13   ` ME
2006-07-03  7:50     ` Dmitry A. Kazakov
2006-07-03 11:46       ` Craig Carey
2006-07-04  0:06         ` M E Leypold
2006-07-03 16:31       ` ME
2006-07-03 23:53         ` Randy Brukardt
2006-07-04  1:59           ` Craig Carey
2006-07-04  7:25           ` ME
2006-07-05 21:55             ` Randy Brukardt
2006-07-06  0:59               ` tmoran
2006-07-06  7:47               ` Jean-Pierre Rosen
2006-07-06 22:29                 ` Randy Brukardt
2006-07-07  4:34                   ` Jeffrey R. Carter
2006-07-07  5:39                   ` ME
2006-07-07  9:15                     ` Georg Bauhaus
2006-07-08 16:13                       ` ME
2006-07-08 17:14                         ` Georg Bauhaus
2006-07-13  6:58                           ` ME
2006-07-13  8:39                             ` Georg Bauhaus
2006-07-07 21:04                     ` Randy Brukardt
2006-07-14  8:15                       ` Craig Carey
2006-07-14 12:51                         ` Craig Carey [this message]
2006-07-15  3:45                           ` ME
2006-07-04  0:08         ` M E Leypold
2006-07-02  5:52 ` Craig Carey
replies disabled

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