From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Will "renames" increase program size?
Date: Wed, 15 Jun 2011 15:15:13 +0200
Date: 2011-06-15T15:15:13+02:00 [thread overview]
Message-ID: <1ayjsy885qg2b$.13bmeo97hbau1$.dlg@40tude.net> (raw)
In-Reply-To: op.vw37bq1eule2fv@douda-yannick
On Wed, 15 Jun 2011 13:24:52 +0200, Yannick Duchêne (Hibou57) wrote:
> Le Wed, 15 Jun 2011 07:37:22 +0200, Randy Brukardt <randy@rrsoftware.com>
> a écrit:
>> Some examples where there probably would be some overhead:
>>
>> Obj : Natural renames My_Array (Some_Variable).all;
>> Obj2 : Float renames Some_Function (A, B);
>>
> Yes, because this is more an aliasing (in the symbolic sense) than a
> proper renaming.
Yes, Ada's renaming is not renaming. Consider this:
Line : String renames Get_Line;
It calls Get_Line once and keeps the result object. In fact it is an
equivalent to:
<anonymous> : constant String := Get_Line;
Line : properly renames <anonymous>;
Consider also the effect of renaming on the visibility rules:
package P1 is
End_Error : exception renames Ada.Text_IO.End_Error;
end P1;
package P2 is
End_Error : exception renames Ada.Text_IO.End_Error;
end P2;
use P1, P2;
exception
when End_Error => -- End_Error is hidden!
Ada's "renames" does not rename here, it copies, creates objects. There are
three End_Error here, all of them are equal, but not same:
exception
when Ada.Text_IO.End_Error =>
...
when P1.End_Error => -- Error! P1.End_Error has the same value
...
when P2.End_Error =>
...
A proper renaming would create identical (x≡y) entities, Ada's renaming
sometimes creates only equal ones (x=y).
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2011-06-15 13:15 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-15 2:10 Will "renames" increase program size? Adrian Hoe
2011-06-15 5:37 ` Randy Brukardt
2011-06-15 9:11 ` AdaMagica
2011-06-15 11:26 ` Yannick Duchêne (Hibou57)
2011-06-15 11:24 ` Yannick Duchêne (Hibou57)
2011-06-15 13:15 ` Dmitry A. Kazakov [this message]
2011-06-16 6:59 ` AdaMagica
2011-06-16 8:59 ` Dmitry A. Kazakov
2011-06-16 10:18 ` AdaMagica
2011-06-16 12:15 ` Dmitry A. Kazakov
2011-06-16 23:22 ` Randy Brukardt
2011-06-16 15:40 ` Adam Beneschan
2011-06-16 16:33 ` Dmitry A. Kazakov
2011-06-16 17:42 ` Adam Beneschan
2011-06-16 18:53 ` Dmitry A. Kazakov
2011-06-16 23:39 ` Randy Brukardt
2011-06-17 6:53 ` Dmitry A. Kazakov
2011-06-18 0:02 ` Randy Brukardt
2011-06-18 7:54 ` Dmitry A. Kazakov
2011-06-18 8:58 ` Yannick Duchêne (Hibou57)
2011-06-18 10:05 ` Dmitry A. Kazakov
2011-06-18 12:49 ` Yannick Duchêne (Hibou57)
2011-06-18 22:44 ` Randy Brukardt
2011-06-22 0:56 ` Shark8
2011-06-15 22: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